2012年12月22日土曜日

Step 5 改 : VMware の VM を KVM に

Step 5 改です。おさらいですが Step 5 改 は
  1. ESXi 上で動いていた VM たちを KVM にコンバート
になります。 CentOS が無事インストールできたので、ESXi 上で動いていた VM たちを KVM で動かすことにします。こちらのサイトを参考にさせていただきました。ESXi -> 物理マシン は結果として失敗したわけですが ESXi -> KVM は果たして。

では実際に作業。もともと ESXi 上で VM を停止した上でイメージファイルをコピーしておきます。Virtual Machine Manager を起動して、必要なら Edit > Connection Details で Storage Pool を作っておきます。
# qemu-img convert <esxi_image_name>.vmdk -O raw <kvm_image_name>.img
新規VMを作るときにその img ファイルをインポートする。起動。おおお、ちゃんと起動するじゃん!・・・失敗した。この VM は今度はディスクをマウントしないので、今まであった LV を探しにいってないといわれて失敗してる。どうしようか。

いろいろ調べていたら物理ディスクを KVM に見せられると。これなら通過できそう。この件についても書いてる方たくさんおられますが、私は
# virsh edit <vm_name>
でデバイスの情報を書き込みました。
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sdc'/>
      <target dev='vdb' bus='virtio'/>
    </disk>
のような感じで。恒久的に運用するんだったら、source のところはちゃんと /dev/disk/by-id/... のように書いたほうがいいですね。/dev/sd. はディスク抜き差しすると変わるので。

そして起動したところ、LV のほうは無事通過!だけどべたでデバイスをマウントしてた(/dev/sdc2) ほうが相変わらずだめって言われる。・・・ということは単に /etc/fstab に指定を残したままにしちゃったのが原因か?

この状態になると single user mode になりますが、read only でマウントされちゃうのでそこでは訂正できず。なので OS のインストールに使った ISO イメージをコピーし、デバイスの追加で Storage を選び、タイプのところを IDE CD-ROM にして"Select managed..." のほうでコピーした ISO ファイルを指定。Boot Options のところで "Enable boot menu" をオンにして、起動して F12 を押すと起動メニューが出るのでそこで DVD/CD-ROM を選ぶ。
ここで Rescue を選んで進むと /mnt/sysimage だったかにマウントした状態で起動してくれるので、その中の etc/fstab を編集し、/dev/sdc2 をコメントアウトしてもう一度起動すると・・・。

起動したー!

怪我の功名って感じもしますが、結局のところ KVM のマシンからホストマシンにあるディスク2つ(=RAID 1のメンバー=LV)がそのまま見えててマウントもできました。

で、もともと VM たちは bridge 接続してたので、その設定を。これも(ほんと便利ですね)いろんなところで解説されてますが、今回参考にさせていただいたのはこちら。ややはまったのは、ifcfg-eth0 や ifcfg-br0 を修正していたら、NetworkManager が勝手に(?)まだ出来てない状態のものを読み込んだのかつながらなくなってしまったことですね。なので NetworkManager の停止等は先にやっておいたほうがよさそうです。
# service NetworkManager stop
# chkconfig NetworkManager off
# service network restart
# chkconfig network on 
それからてっきり br0 は各VMごとに作るのかと誤解していてそのままだとホストはどうなるんじゃい!とか思ってましたが、基本 eth0 のアドレスの設定とかを br0 に持っていけばいいようですね。そこらへんの原理はあまりしっかり理解しませんでしたが。

さてそれが終わったら KVM の VM の設定のところでネットワークの Source Device に "Host device eth0 (Bridge 'br0')" というのが出てくるのでそれを選択して起動。

おおお、見事にホストOS以外のマシンからも直接アクセスできました!この時点でこの VM については ESXi で動いていた状態に完全に戻ったのでいろんなサービスにもアクセスできます。あとのステップは徐々に行えばよいと。すばらしい。

これ以外の VM も同じようにすればいけるのではと期待できます。おそらく Debian のやつは同じように問題なく、Windows XP はもしかすると青画面が出るような予感もしますが・・・。うまくいっても activation をもう一度迫られて、OEM 版なので失敗してお蔵入りになるかもですね。そうだ、あまっている Vista のライセ (ry

0 件のコメント:

コメントを投稿