web-dev-qa-db-ja.com

XenServerがHVMを準仮想化に変換

最近、HVM対応のVM(Citrix XenServer 5.6.0で実行)のセットアップをPV(準仮想化)コンテナーに変換するという困難なプロセスを担当しました。

プロジェクトの制約は次のとおりです。

  1. 移行後、オペレーティングシステムは機能的に同一である必要があります。
  2. オペレーティングシステムへの最小限の変更(カーネル/ドライブマッピングを除く)

また、ブートローダー(つまり、grub)を適切と思われる方法で変更することも許可されました。

しかし、私はこれを試みました。最初に、私が取った私のステップをお見せしたいと思います。

これは現時点ではCentOS5.5固有です。

手順:

  1. yum install 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を実行しています;)

とにかく、これらすべての手順の後(それほど多くはありません!)、VMを起動すると、初期カーネルが正常に起動しますが、次のエラーが表示されます。

起動画面:

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に変更すると何かをするという事実のために/を検出できないということです(それほど明白ではありません)

HVMでSR(ストレージ)を作成すると、/ dev/hdaとしてゲストOSにマウントされます。

ただし、PVモードでは、これは/ dev/xvda ...として表示されます。

これが答えでしょうか?もしそうなら、私はそれをどのように実装するのですか?

更新:
それで、LVMを検出するようになったので、私は探求を少し進めました...

これを行うには、xen-kernelinitrdイメージを再コンパイルする必要がありました。

コマンド: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!
3

試してください:xe vm-param-set uuid=[vm uuid] PV-args="root=/dev/VolGroup00/LogVol00"

1
phresus