XenServer 5.5上でUbuntu 10.04 amd64版をPVモードで動かす方法

表題の件、出来ちゃったので公開します。ざっくりいうと、HVMでインストールしてxeコマンドよりパラメータ変更してPVモードで起動するようにしてあげれば完了です。

1. HVMモードでインストール

結論から言うとインストールは面倒です。現在のXenServerではPyGRUBの制約で拡張パーティションにある/bootパーチションが読めなかったり、GRUB2をうまく扱えなかったりします。また、ext4も/bootには使用できません。
そのため、Ubuntuの良いところであるインストールの簡単さはまったく機能しません。サーバ向けのCDイメージでインストールする必要があります。私はamd64版でインストールしました。
ただし、pv_opsの恩恵で、HVMでもPVでも同じカーネルイメージが使えるので上記の点をクリアすると逆に簡単かもしれません。

以下稼働までのポイントです。知らないと多分ハマります。実際ハマりました。

  1. HVMゲストとして起動し、CDイメージでインストールを行う
    テンプレートはWindows ServerとかOther Install Media等適当に選べば大丈夫です。ただし64bit版と32ビット版は適宜せんたくしないと動かないかもしれませんね。Debianのテンプレートではインストールできませんのでご注意ください。
  2. /bootパーティションはext3(あるいはext2)にする
    デフォルトのインストールでは、/bootは論理パーティションになってしまったかと思います。面倒ですがパーティションの設定は手作業で行う必要があります。私は sda1をext3、sda2をLVMボリュームにし、/bootはsda1、/とswapボリュームはLVM内のLVとしました。
  3. インストール後、GRUB2をGRUBと入れ替える。
    手順は簡単です。

    $ sudo aptitude remove grub-pc
    $ sudo aptitude install grub
    $ sudo rm -rf /boot/grub/* (GRUB2のファイルが残っているので消してしまいます。)
    $ sudo update-grub

    /boot/grub/menu.lst内で
    indomU=detect
    というパラメータがあるのですが、これはfalseにしておいた方がよいです。HVM,PVどちらでも同じカーネルで起動しますし、PV稼動時ではうまくdetectしてくれませんでしたので。
  4. コンソール用の設定ファイルを作成する。
    PVモード稼動後はコンソールはhvc0になります。この設定がないとコンソールが使えないので作成します。
    $ sudo cp /etc/init/tty1.conf /etc/init/hvc0.conf
    して、hvc0.confの中のtty1の部分をhvc0へ書き換えます。
  5. HVMモードからPVモードで稼働するようxeコマンドでVM設定を変更する。
    以下、コマンドです。
    $ xe vm-param-set uuid=9385314e-10d2-2685-07c1-4f4fb0f124d4 HVM-boot-policy=
    $ xe vm-param-set uuid=9385314e-10d2-2685-07c1-4f4fb0f124d4 PV-bootloader=pygrub
    $ xe vm-param-set uuid=9385314e-10d2-2685-07c1-4f4fb0f124d4 PV-args="console=hvc0"
    ## 仮想ディスクをブータブルにするためにディスクのUUIDを発掘します。
    $ xe vm-disk-list uuid=9385314e-10d2-2685-07c1-4f4fb0f124d4
    ## 発掘されたUUIDに対して下記のコマンドを発行します。
    # xe vbd-param-set uuid=d28c3e0f-41ad-99e5-82e6-5fa315470ed6 bootable=true

これでVMを起動させるとPVモードで稼働させることができます。お試しあれ。

ちなみに、64bit版のguest utilityはCitrixのサーバにdebian用が落ちているので、これを使用するとXenCenterでメモリ使用量の統計などが見られるようになります。ちょっとバージョン古いですけど。例のごとく自動起動のシンボリックは自分で貼らないといけません。

  1. No comments yet.