Назад | Перейти на главную страницу

XenServer преобразовывает HVM в паравиртуализированный

Недавно мне поручили выполнить сложный процесс преобразования виртуальных машин с поддержкой HVM (работающих на Citrix XenServer 5.6.0) в контейнеры PV (паравиртуализированные).

Ограничения проекта заключались в следующем:

  1. После миграции операционная система должна быть функционально идентичной.
  2. минимальная модификация операционной системы (за исключением сопоставления ядра / диска)

Мне также разрешили изменить загрузчик (т.е. grub) любым способом, который я считаю нужным.

Однако я попытался это сделать, сначала я хочу показать вам свои шаги, которые я предпринял.

На данный момент это специфично для CentOS5.5:

Шаги:

  1. yum установить kernel-xen

    Установлено: 2.6.18-194.32.1.el5xen

  2. отредактировал: /boot/grub/menu.lst изменил мои спецификации, чтобы они соответствовали:

    title CentOS (2.6.18-194.32.1.el5xen)    
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.32.1.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0
    initrd /initrd-2.6.18-194.32.1.el5xen.img
    

    Затем я изменил параметры xenserver, чтобы они соответствовали:

    xe vm-param-set uuid=[vm uuid] PV-bootloader-args="--kernel /vmlinuz-2.6.18-194.32.1.el5xen --ramdisk /initrd-2.6.18-194.32.1.el5xen.img"
    xe vm-param-set uuid=[vm uuid] HVM-boot-policy=""
    xe vm-param-set uuid=[vm uuid] PV-bootloader=pygrub 
    xe vbd-param-set uuid==[Virtual Block Device/VBD uuid] bootable=true
    

Несколько замечаний, я использую VolGroup LVM;)

В любом случае, после всех этих шагов (а их немного!) Я загружаю виртуальную машину, и она отлично загружает исходное ядро, однако я получаю эту ошибку:

Загрузочный экран:

device-mapper: dm-raid45: initialized v0.2594l
Waiting for driver initialization.
Scanning and configuring dmraid supported devices
Scanning logical volumes
  Reading all physical volumes.  This may take a while...
Activating logical volumes
  Volume group "VolGroup00" not found
Creating root device.
Mounting root filesystem.
mount: could not find filesystem '/dev/root'
Setting up other filesystems.
Setting up new root fs
setuproot: moving /dev failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed: No such file or directory

Теперь я намекаю, что он не может обнаружить / из-за того, что когда вы переходите из режима HVM в PV, он что-то делает (не так очевидно)

Когда вы создаете SR (хранилище) на HVM, вы подключаете его к гостевой ОС как / dev / hda.

Однако в режиме PV это отображается как / dev / xvda ...

Может ли это быть ответом? и если да, то как, черт возьми, мне это реализовать ??

Обновить:
Итак, я продвинулся немного дальше в своих поисках, поскольку теперь он обнаруживает LVM ...

Для этого мне потребовалось перекомпилировать образ initrd xen-kernel.

Команда: mkinitrd -v --builtin=xen_vbd --preload=xenblk initrd-2.6.18-194.32.1.el5xen.img 2.6.18-194.32.1.el5xen

Теперь, когда я загружаюсь, я получаю следующее:

Загрузочный экран:

Loading dm-raid45.ko module
device-mapper: dm-raid45: initialized v0.2594l
Scanning and configuring dmraid supported devices
Scanning logical volumes
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2
Activating logical volumes
  3 logical volume(s) in volume group "VolGroup00" now active
Creating root device.
Mounting root filesystem.
mount: error mounting /dev/root on /sysroot as ext3: Device or resource busy
Setting up other filesystems.
Setting up new root fs
setuproot: moving /dev failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

Пытаться: xe vm-param-set uuid=[vm uuid] PV-args="root=/dev/VolGroup00/LogVol00"