The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Экспорт установленной системы в домен Xen (xen virtual migrate linux export qemu)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: xen, virtual, migrate, linux, export, qemu,  (найти похожие документы)
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. Операционная система, загруженная в родном режиме: Конфигурационный файл домена Xen: %$ egrep -v '^#|^\ *$' /etc/xen/win2003 kernel = "hvmloader" builder='hvm' memory = 512 shadow_memory = 8 name = "win2003" acpi=1 vif = [ 'type=ioemu, bridge=br0' ] disk = ['phy:/dev/hda,hda,w' ] device_model = 'qemu-dm' boot="c" sdl=0 vnc=1 vnclisten="127.0.0.1" stdvga=0 serial='pty' soundhw='sb16' В данном случае операционная система 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: %$ egrep -v '^#|^\ *$' /etc/default/dhcp INTERFACES="br0" Сам конфигурационный файл /etc/dhcpd.conf: %$ egrep -v '^#|^\ *$' /etc/dhcpd.conf option domain-name "clinika.com"; option domain-name-servers 82.144.192.130, 82.144.192.131, 82.144.192.32, 82.144.192.30; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.200 192.168.7.220; option routers 192.168.7.254; filename "pxelinux.0"; } host clinika { hardware ethernet 00:13:8f:49:b0:31; fixed-address 192.168.7.253; } TFTP %$ egrep -v '^#|^\ *$' /etc/default/tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot/ltsp/i386/" PXE Наполнение каталога TFTP-сервера. Здесь присутствуют файлы загрузчика PXELINUX. %$ ls -l /var/lib/tftpboot/ltsp/i386/ -rw-r--r-- 1 root root 203 2007-10-04 21:35 boot.msg -rw-r--r-- 1 root root 80023 2007-07-11 09:55 config-2.6.21-2-486 lrwxrwxrwx 1 root root 23 2007-10-04 21:09 initrd.img -> initrd.img-2.6.21-2-486 -rw-r--r-- 1 root root 3691052 2007-10-04 21:09 initrd.img-2.6.21-2-486 -rw-r--r-- 1 root root 9519 2007-10-04 21:35 logo.16_1 lrwxrwxrwx 1 root root 20 2007-10-04 21:09 nbi.img -> nbi.img-2.6.21-2-486 -rw-r--r-- 1 root root 5019136 2007-10-04 21:09 nbi.img-2.6.21-2-486 -rw-r--r-- 1 root root 13944 2007-10-04 21:09 pxelinux.0 drwxr-xr-x 2 root root 104 2007-10-05 15:00 pxelinux.cfg -rw-r--r-- 1 root root 780664 2007-07-11 09:55 System.map-2.6.21-2-486 lrwxrwxrwx 1 root root 20 2007-10-04 21:09 vmlinuz -> vmlinuz-2.6.21-2-486 -rw-r--r-- 1 root root 1319152 2007-07-11 09:55 vmlinuz-2.6.21-2-486 Конфигурационный файл загрузчика PXELINUX: clint:Dom0~$ cat /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default DISPLAY boot.msg TIMEOUT 150 DEFAULT vmlinuz PROMPT 1 LABEL 2.6.21.2 KERNEL vmlinuz APPEND nfsdir=192.168.7.254:/opt/ltsp/i386 lang=ru ramdisk_size=1000000 \ root=/dev/nfs rw nfsroot=192.168.7.254:/opt/ltsp/i386/ ip=dhcp initrd=initrd.img Корневая файловая система, загружаемая по сети В каталоге /opt/ltsp/i386/ развёрнута операционная система Linux. Инсталляция выполняется с помощью debootstrap или аналогичным способом. В системе должны быть установлен пакет vblade Экспорт диска старой машины по сети Сервер, который будет экспортирован, перезагружается и загружается по сети. После этого необходимо выполнить следующие действия. Будем считать, что экспорт выполняется с помощью протокола ATA over Ethernet. Можно использовать другой протокол доступа к диску по сети. Убедитесь, что загружен модуль aoe: ltsp:~# lsmod | grep aoe aoe 24416 0 Экспортируйте диск /dev/hda (или другой -- тот, на котором установлена система) с помощью vblade: ltsp:~# vblade 1 0 eth0 /dev/hda pid 3344: e1.0, 78165360 sectors O_RDWR Запуск домена с экспортированного образа На системе виртуализации загрузите модуль aoe: clint:Dom0~$ ls -l /dev/etherd ls: /dev/etherd: Heт такого файла или каталога %# modprobe aoe aoe: aoe_init: AoE v22 initialised. aoe: 00138f49b031 e1.0 v400c has 78165360 sectors %# sudo lsmod | grep aoe aoe 23456 0 При этом в /var/log/messages должны появиться сообщения: Oct 5 21:46:29 serzh kernel: aoe: aoe_init: AoE v22 initialised. Oct 5 21:46:29 serzh kernel: aoe: 00138f49b031 e1.0 v400c has 78165360 sectors Oct 5 21:46:29 serzh kernel: etherd/e1.0: p2 < p5 p6 p7 p8 p9 > p3 В каталоге /dev/etherd должны появиться новые файлы устройств, соответствующие обнаруженным дискам ATA over Ethernet: %# ls -l /dev/etherd/ c-w--w---- 1 root disk 152, 3 2007-10-05 21:46 discover brw-rw---- 1 root disk 152, 256 2007-10-05 21:57 e1.0 brw-rw---- 1 root disk 152, 258 2007-10-05 21:46 e1.0p2 brw-rw---- 1 root disk 152, 259 2007-10-05 21:46 e1.0p3 brw-rw---- 1 root disk 152, 261 2007-10-05 21:46 e1.0p5 brw-rw---- 1 root disk 152, 262 2007-10-05 21:46 e1.0p6 brw-rw---- 1 root disk 152, 263 2007-10-05 21:46 e1.0p7 brw-rw---- 1 root disk 152, 264 2007-10-05 21:46 e1.0p8 brw-rw---- 1 root disk 152, 265 2007-10-05 21:46 e1.0p9 cr--r----- 1 root disk 152, 2 2007-10-05 21:46 err c-w--w---- 1 root disk 152, 4 2007-10-05 21:46 interfaces c-w--w---- 1 root disk 152, 5 2007-10-05 21:46 revalidate Далее необходимо создать конфигурационный файл нового домена Xen или модифицровать существующий. %$ egrep -v '^#|^\ *$' /etc/xen/win2k kernel = "hvmloader" builder='hvm' memory = 512 shadow_memory = 8 name = "win2k" acpi=1 vif = [ 'type=ioemu, bridge=br0' ] disk = ['phy:/dev/etherd/e1.0,hda,w' ] device_model = 'qemu-dm' boot="c" sdl=0 vnc=1 vnclisten="127.0.0.1" stdvga=0 serial='pty' soundhw='sb16' После чего запустить домен: %@ xm create win2k Результат запуска Старая машина, загруженная самостоятельно. * Процессор Sempron 2600 * 457968KB ОЗУ Домен Xen, загруженный удалённо с жёсткого диска старой системы: * Процессор AMD 3000+ * 523800KB ОЗУ Перенесение образа старой машины Если старый сервер должен быть выведен из эксплуатации, необходимо скопировать данные на новое место. Домен соответствующий виртуализируемому серверу должен быть потушен в момент копирования! Например, если перенос выполняется на том LVM: %# lvcreate -L 20G -n server2003 /dev/XEN %# dd if=/dev/etherd/e1.0 of=/dev/XEN/server2003 %# sed -i -e s@/dev/etherd/e1.0@/dev/XEN/server2003@ /etc/xen/win2003

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру