Добавить в FacebookДобавить в Google BookmarksДобавить в TwitterДобавить в OdnoklassnikiДобавить в Vkcom

Переносим образ .vmdk из VirtualBox в Xen на Ubuntu 13.10.

Сейчас я буду рассказывать страшные страшности.
Как я предполагаю, Вы имеете успешно работающую в VirtualBox виртуальную машину с установленной Windows7, или другой системой и решили попробовать как она работает в Xen. Нет проблем. В моем случае виртуальная машина находилась в образе .vmdk. В первую очередь нам необходимо конвертировать образ vmdk в img. Создайте папку, где будет находиться iso-образ для xen. Напимер /home/xen. Далее выполняете следующую команду:

VBoxManage internalcommands converttoraw название-виртуальной-машины.vmdk /home/xen/название-виртуальной-машины.img.

Вы увидите следующее сообщение:

Converting image "название-виртуальной-машины.vmdk" with size "размер вашего образа" bytes (MB) to raw...

В итоге вы получите iso-образ Вашей виртуальной машины. Далее установим xen: sudo apt-get install xen-hypervisor-4.3-amd64 xen-tools xenwatch qemu-utils qemu-common. Необходимые пакеты подтянутся при установке. Нужно раскомментировать строчку # (network-script network-bridge) в файле /etc/xen/xen-config.sxp для того, чтобы работала сеть. Также, необходимо создать этот самый мост.Обязательно проверьте установлен ли у Вас пакет bridge-utils.

Согласно конфигурации своей сети, я дописал в файле /etc/network/interfaces следующие строки:

auto xenbr0
iface xenbr0 inet static
address 192.168.2.77
broadcast 192.168.2
gateway 102.168.2.1
bridge_ports eth0

auto eth0
iface eth0 inet manual.

И перезапустил сеть командой root@darkeye:~#service networking restart.

После, я проверил пингуется ли мост:

root@darkeye:~# ping 192.168.2.77
PING 192.168.2.77 (192.168.2.77) 56(84) bytes of data.
64 bytes from 192.168.2.77: icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from 192.168.2.77: icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from 192.168.2.77: icmp_seq=3 ttl=64 time=0.083 ms.

Отлично пингуется. Поехали дальше. Нужно создать конфигурационный файл виртуальной машины. Я создал файл /etc/xen/win7.cfg с таким содержимым:

kernel = "hvmloader"
builder='hvm'
memory = 1512
shadow_memory = 8
name = "winda"
vcpus = 2
vif = [ 'type=ioemu, bridge=xenbr0, mac=F8:D1:11:31:F1:A2' ] # мак-адрес ставьте свой
disk = [ 'file:/home/xen/win7.img,hda,w' ]
device_model = 'qemu-dm'
boot="c"
sdl = 0
opengl = 1
vnc = 1
vncpasswd = ' '
stdvga = 0
serial = 'pty'
restart = 'never'
on_poweroff = 'destroy'
usbdevice = 'tablet'
on_reboot = 'restart'
on_crash = 'destroy'
usb = 1

Вот основные параметры, которые нужно задать для запуска системы. Описывать параметры конфигурационного файла  я не буду - в сети интернет очень много описаний. Теперь необходимо сделать так, чтобы загружалось ядро с гипервизором xen. Тут есть нюанс. Если Вы сейчас перезагрузите компьютер, то у вас загрузится обычное ядро по умолчанию. Для того чтобы иметь возможность выбрать ядро для загрузки нужно немного подправить конфигурацию grub. Следует учесть что в Ubuntu 13.10 загрузчик grub2, а конфигурируется он иначе. В конфигурационном файле /etc/default/grub нужно проставить параметр GRUB_HIDDEN_TIMEOUT=3. Три секунды вполне достаточно чтобы нажать клавишу ESC для вызова меню загрузки и последующего выбора в меню соответствующего ядра с гипервизором. После установки этого параметра нужно обновить конфигурацию grub2:

root@darkeye:~# update-grub2
Генерируется grub.cfg …
Найден образ linux: /boot/vmlinuz-3.11.0-15-generic
Найден образ initrd: /boot/initrd.img-3.11.0-15-generic
....
Found memtest86+ image: /boot/memtest86+.bin
завершено.

Если вы хотите чтобы ядро с гипервизором грузилось по умолчанию, в консоли вы должны выполнить команду mv /etc/grub.d/10_linux /etc/grub.d/50_linux и, после, update-grub2. То есть, Вы поставили обычное ядро последним в очередь загрузки. После всего этого перезагружаем компьютер. Проверяем работает ли xen:

root@darkeye:~# xm list
Name                              ID          Mem       VCPUs   State     Time(s)
Domain-0                        0           2332               2     r-----       2060.2

Работает. Запускаем виртуальную машину с windows7 командой xm create win7.cfg. Если не выдала ошибок значит виртуальная машина запустилась. Можно снова проверить командой xm list. Подключиться к ней можно используя, например, клиент удаленного доступа к рабочему столу remmina. Установить его можно набрав apt-get install remmina. Подключение проводится по протоколу VNC. Адрес 127.0.0.1:0.

 

Подключившись к windows7 нужно настроить сеть. К примеру, задать в windows сетевой адрес 192.168.2.78. Потом перезапустить виртуальную машину и проверить доступность пингом.

 

Настроив удаленный доступ к windows-машине можно подключаться и по протоколу RDP. 

В итоге изрядно поигравшись делаю вывод - xen конечно быстрее за счет паравиртуализации. Однако VirtualBox гораздо гибче и проще в сетевых настройках. У каждого несомненно есть преимущества и недостатки. 

Основные команды управления виртуальными машинами в xen:

xm console — вызывает первый терминал виртуальной машины
xm create — запускает виртуальную машину на основе конфигурационного файла
xm pause — временно останавливает виртуальную машину
xm unpause — запускает виртуальную машину после остановки
xm save — сохраняет состояние виртуальной машины
xm restore — восстанавливает состояние виртуальной машины
xm reboot — перезагружает виртуальную машину
xm shutdown — выключает виртуальную машину
xentop — показывает текущую загрузку всех виртуальных машин
xm list — список запущенных виртуальных машин
xm dmesg — показывает dmesg виртуальной машины
xm delete — удаляет виртуальную машину
xm destroy — принудительно удаляет виртуальную машину

Вот пожалуй и все.

Удачи.

Автор: Darkeye.  

Еще интересное в сети.

  

 

Похожие материалы

Перейти к ленте статей

Добавить комментарий