From: Сергей Черепенин, Игорь Чубин
Date: Mon, 26 Jan 2008 18:21:07 +0000 (UTC)
Subject: Экспорт установленной системы в домен Xen
Оригинал: http://xgu.ru/wiki/Xen/export
На этой странице описывается как выполнять систему, установленную на
компьютере, внутри домена Xen или с помощью эмулятора QEMU,
исполняющегося на другом компьютере.
Может быть полезно при консолидации и виртуализации систем, при работе
с устаревшими системами, при тестировании.
Идея
В связи с постоянным увеличением вычислительной мощности и объёма
оперативной памяти машин, наблюдающимся в настоящее время, большую
популярность приобретает идея виртуализации систем. В особенности
популярным этот подход становится при построении серверной
инфраструктуры.
Виртуализированная серверная инфраструктура редко строится с нуля.
Чаще всего существует парк физических (не виртуализированных)
серверов, которые безостановочно работают, выполняя возложенные на них
задачи. Нередко для хранения информации (операционной системы,
программного обеспечения и данных) эти серверы используют не внешние
хранилища, а собственные жётские диски.
Виртуализация сервера в данном случае может быть выполнена одним из
указанных способов:
1. Миграция служб. В виртуальной системе новый сервер разворачивается
с нуля. Затем на него переносятся службы старого сервера. После
чего старый сервер выводится из эксплуатации.
2. Миграция операционной системы. Старый сервер останавливается, а
затем на нём по сети (с компакт-диска или другого внешнего
носителя информации) загружается другая операционная система,
которая экспортирует установленный в сервере жёсткий диск системе
виртуализации. Система виртуализации исполняет операционную
систему, проинсталированную на этом диске. При условии, что
виртуализация удалась, данные переносятся на хранилище системы
виртуализации и старый сервер выключается.
Последний способ проще и быстрее, но он должен допускать возможность
временной, непродолжительной остановки сервера (на время запуска
другой операционной системы, экспорта, запуска виртуальной машины
поверх экспортированных данных). В случае правильного выполнения всех
операций простой в этом случае составит до 10 минут.
Обратите внимание что данные, расположенные на жёстком диске , при
загрузке новой операционной системы, выполнящей экспорт, никак не
используются. Загрузка выполняется по сети, с компакт-диска или
другого внешнего носителя. Диск экспортируется для доступа к нему
системы виртуализации. Изменения на диске может делать только сама
операционная система, установленная на этом же диске, после того как
она запущена в виртуальном домене.
Ниже детально рассматривается процесс миграции, выполненный по второму
сценарию.
Постановка задачи
Пусть есть две системы:
* Старая система (old) - система, которая должна быть
экспортирована.
* Xen-система (xen) - система, внутри которой должен исполняться
домен под управлением экспортированной системы.
Необходимо создать новую виртуальную машину, которая будет
использовать в качестве жёсткого диска жёсткий диск удалённого хоста,
экспортированный для доступа по сети с помощью протоколов сетевого
доступа к дисковым хранилищам.
Запуск второй операционной системы в домене Xen установленной на том же компьютере
Рассмотрим для начала простейший случай, когда на одном компьютере
установлено две операционные системы. Он отличается от интересующей
нас задачии тем, что не нужно выполнять экспорт диска как сетевого
устройства.
Если на компьютере установлено две операционные системы, и одна из них
это Xenolinux (Xen + Linux), то вторую можно запустить как
пользовательский домен Xen.
Запуск систем, не работающих в паравиртуальном домене Xen, внутри Xen
возможен только в том случае, если центральный процессор системы
поддерживает аппаратную виртуализацию. В противном случае вместо Xen
можно использовать QEMU.
Операционная система, загруженная в родном режиме:
В данном случае операционная система Windows установлена на жёсткий
диск IDE, подключенный в системе в режиме Primary Master (блочное
устройство /dev/hda).
Старт домена выполняется стандартным образом:
%# xm create win2003
%# vncviewer 127.0.0.1:0
Здесь вместо 0 может быть указан другой номер, в зависимости от номера
VNC-сеанса, который будет соответствовать заданному домену Xen.
Подробнее см. руководство пользователя Xen.
Домен Xen, загруженный с жёсткого диска:
* Процессор AMD 3000+
* 512 Mb ОЗУ
На домен, в котором работает установленная операционная система
распространяются все те же законы, которые распространяются на
систему, которая установлена в домен с нуля традиционным способом.
Подробнее:
* Linux в Xen
* FreeBSD в Xen
* Windows XP в Xen
* Windows Vista в Xen
Запуск домена с экспортированного образа
Если операционная система установлена не локально, а на другом
компьютере, необходимо каким-то образом его донести системе
виртуализации, так чтобы, грубо говоря, виртуальный домен увидел диск.
Процедура:
* Выполнить бездисковую загрузку старой системы old под управлением
Linux;
* Выполнить экспорт диска загруженной системы old с помощью AoE
или iSCSI;
* На работающей Xen-системе xen запустить домен, который будет
использовать экспортированный старой машиной.
Подготовка сервера бездисковой загрузки
Детально процедура подготовки описана на странице PXE. Ниже
приводятся только примеры конфигурационных файлов ключевых систем,
использующихся в работе.
DHCP
Конфигурация демона dhcpd в файле /etc/default/dhcp:
В каталоге /opt/ltsp/i386/ развёрнута операционная система Linux.
Инсталляция выполняется с помощью debootstrap или аналогичным
способом.
В системе должны быть установлен пакет vblade
Экспорт диска старой машины по сети
Сервер, который будет экспортирован, перезагружается и загружается по
сети.
После этого необходимо выполнить следующие действия.
Будем считать, что экспорт выполняется с помощью протокола ATA
over Ethernet. Можно использовать другой протокол доступа к диску по
сети.
Убедитесь, что загружен модуль aoe:
ltsp:~# lsmod | grep aoe
aoe 24416 0
Экспортируйте диск /dev/hda (или другой -- тот, на котором установлена
система) с помощью vblade:
Домен Xen, загруженный удалённо с жёсткого диска старой системы:
* Процессор AMD 3000+
* 523800KB ОЗУ
Перенесение образа старой машины
Если старый сервер должен быть выведен из эксплуатации, необходимо
скопировать данные на новое место.
Домен соответствующий виртуализируемому серверу должен быть потушен в
момент копирования!