2010年10月24日日曜日

KVM 上に RH7.3 を p2v

古いサーバ(RH7.3)を、最新サーバ(CentOS5.5 x86_64)上の KVM に p2v しようとして調査&実験中。
RH7.3 は、Web サーバとして使っている程度なのだが、これまで7年ほど安定して動いていたし、全く新しくサーバを作るというのも面倒(と思えるだけ?)なので、そのまま丸ごと p2v しようと調査している。
まずは、CentOS5.5 の KVM 上で、RH7.3 がどの程度動くものか調査。RH7.3 を最小インストールしたところ、まあ普通に動いた。が、どうにもI/O性能が低い。これは、KVM の設定で、writeback に変更して解決。
    <disk type='block' device='disk'>
      <driver name='qemu' cache='writeback'/>
      <source dev='/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part5'/>
      <target dev='hda' bus='ide'/>
    </disk>
次に、パワーオフ(shutdown -h now)がうまくいかず。ブートオプション apm=power_off を追加して解決。ここで、apm=power_off,realmode_power_off のように、後ろに realmode_power_off をつけてしまうと、パワーオフ(shutdown -h now)をやっても、リブートしてしまうので注意。
title Red Hat Linux (2.4.20-46.7.legacysmp)
        root (hd0,0)
        kernel /vmlinuz-2.4.20-46.7.legacysmp ro root=/dev/hda2 apm=power_off
        initrd /initrd-2.4.20-46.7.legacysmp.img
ちなみに、KVM ゲストが RHEL3 の場合も、これでパワーオフできるようになります。

2011-02-19追記
VMware 上で RHEL3 を動かす場合にも、apm=power_off は効きます。わたしが利用しているのは、VMware Server 1.0 と VMware Player です。

2011-03-27追記
realmode_power_off を打ち間違えて、real_mode_power_off と記載していましたので、修正しました。なお、この辺のパラメータに対応するコードは、arch/i386/kernel/apm.c にあります。
static int __init apm_setup(char *str)
{
...
                if ((strncmp(str, "power-off", 9) == 0) ||
                    (strncmp(str, "power_off", 9) == 0))
                        power_off = !invert;
                if ((strncmp(str, "allow-ints", 10) == 0) ||
                    (strncmp(str, "allow_ints", 10) == 0))
                        apm_info.allow_ints = !invert;
                if ((strncmp(str, "broken-psr", 10) == 0) ||
                    (strncmp(str, "broken_psr", 10) == 0))
                        apm_info.get_power_status_broken = !invert;
                if ((strncmp(str, "realmode-power-off", 18) == 0) ||
                    (strncmp(str, "realmode_power_off", 18) == 0))
                        apm_info.realmode_power_off = !invert;
...
2014-05-02追記
その後、実際に引っ越して一年以上運用しているが、問題なし。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ