ラベル 作成 の投稿を表示しています。 すべての投稿を表示
ラベル 作成 の投稿を表示しています。 すべての投稿を表示

2012年11月11日日曜日

KVM (Kernel-based Virtual Machine) のゲストOS (guest OS) を、仮想マシンマネージャーでマイグレーションを実行すると「No such file or directory」のエラーが発生する場合の対処

質問

KVM (Kernel-based Virtual Machine) のゲストOS (guest OS) を、仮想マシンマネージャーでマイグレーションを実行すると「No such file or directory」のエラーが発生する場合があります。その場合の対処はどのようになっていますか?

回答

このファイルは、仮想ハードディスクのファイルです。

dd コマンドにて、そのファイルをダミーで作成します (= 内容は全く無関係のファイルを作成)。

ここでは、pc111(ホストOS)上の「pc162」というゲストOS(仮想マシン) を、pc121(ホストOS) にマイグレーションする場合を例に説明します。

具体的には、「pc111というホストOS上の、『pc162』というゲストOSの仮想ハードディスクファイルの『pc162.img』を、pc121というホストOSに作成する」場合を例に説明します。

  1. 「コピー『元』ホストOSのマシン」にて、コピー元のオリジナルの仮想ハードディスクファイルのファイルサイズを確認します。

    KVM (Kernel-based Virtual Machine) の仮想ハードディスクファイルはデフォルトでは、「/var/lib/libvirt/images/」ディレクトリ内に存在します。

    [root@pc111 ~]# cd /var/lib/libvirt/images

    「ls -al」を実行して、ファイルサイズを確認します。ここでは例として「pc162.img」のファイルサイズを確認します。

    [root@pc111 images]# ls -al
    合計 608174148
    drwx--x--x. 2 root root 4096 8月 24 03:31 2012 .
    drwxr-xr-x. 9 root root 4096 9月 19 07:07 2012 ..
    -rwxr-xr-x. 1 qemu qemu 128849018880 11月 11 21:21 2012 pc154.img
    -rwxr-xr-x. 1 qemu qemu 128849018880 11月 11 21:19 2012 pc155.img
    -rwxr-xr-x. 1 qemu qemu 128849018880 11月 11 21:21 2012 pc156.img
    -rwxr-xr-x. 1 qemu qemu 128849018880 11月 11 21:20 2012 pc157.img
    -rw-------. 1 qemu qemu 42949672960 11月 11 21:21 2012 pc162.img
    -rw-------. 1 root root 42949672960 9月 6 14:11 2012 pc163.img
    -rw-r--r--. 1 root root 21474836480 9月 6 23:17 2012 pc171.img
    [root@pc111 images]#

    「pc162.img」のファイルサイズは「42949672960」バイトです。これは「40」GB と同じ意味です。

  2. 「コピー『先』ホストOSのマシン」にて、dd コマンドを利用して、ダミーのファイルを作成します。「/var/lib/libvirt/images/pc162.img」というファイルを、40GB のファイルサイズで作成する場合の例は以下の通りです。

    まずは、「/var/lib/libvirt/images/pc162.img」というファイルが既に存在しているかを確認します。

    [root@pc121 ~]# cd /var/lib/libvirt/images
    [root@pc121 images]# ls
    [root@pc121 images]#

    ls コマンドを実行しても、「pc162.img」というファイルは表示されませんでした。

    次に、dd コマンドで「pc162.img」というファイルを作成します。

    [root@pc121 images]# dd if=/dev/zero of=/var/lib/libvirt/images/pc162.img bs=1G count=40

    上のとおりに入力して「Enter」キーを押すと、dd コマンドが実行されます。時間がかかるので待ちます。

  3. dd コマンドの実行が終了した時の画面表示の例です。

    以下の画面では 40GB ではなく、43GB と表示されていますが、正しく 40GB のファイルが作成されているので心配する必要はありません。

    [root@pc121 images]# dd if=/dev/zero of=/var/lib/libvirt/images/pc162.img bs=1G count=40
    40+0 records in
    40+0 records out
    42949672960 bytes (43 GB) copied, 444.256 s, 96.7 MB/s
    [root@pc121 images]#
  4. これで、仮想マシンマネージャーで「オフラインでマイグレーション」を実行すると、(時間はかかりますが) マイグレーションが実行できるようになります。

2012年6月13日水曜日

KVM (Kernel-based Virtual Machine) の仮想PC、仮想マシン (仮想PC の OS は CentOS 6.2 x86_64) をコピーして、新しい仮想PCを作る手順


KVM (Kernel-based Virtual Machine) の仮想PC、仮想マシン (仮想PC の OS は CentOS 6.2 x86_64) をコピーして、新しい仮想PCを作る手順


ここでは、pc100 を pc200 にコピーする場合を例に説明します。


◆手順1.仮想HD ファイルのコピー

仮想HD ファイルをコピーします。
cp コマンドでも、GNOME のファイルブラウザを利用してコピーしても
どちらでも構いません。
必要に応じてリネームします。

コピー元
/var/lib/libvirt/images/pc100.img

コピー先
/var/lib/libvirt/images/

コピー終了後、以下の 2 つのファイルが存在する状態が正しい状態です。
/var/lib/libvirt/images/pc100.img
/var/lib/libvirt/images/pc200.img


◆手順2.xml ファイルのコピー
cp コマンドでも、GNOME のファイルブラウザを利用してコピーしても
どちらでも構いません。
必要に応じてリネームします。


コピー終了後、以下の 2 つのファイルが存在する状態が正しい状態です。
/etc/libvirt/qemu/pc100.xml
/etc/libvirt/qemu/pc200.xml


◆手順3.pc200.xml の編集
vi や gedit などのテキストエディタで「pc200.xml」を編集します。


変更1箇所目...name
変更前
 <name>pc100</name>
変更後
 <name>pc200</name>


変更2箇所目...uuid (コメント化する)
変更前(例)
 <uuid>dc182d1a-44f2-bc49-5b0e-xxxxxxxxxxxx</uuid>

変更後
<!--
 <uuid>dc182d1a-44f2-bc49-5b0e-xxxxxxxxxxxx</uuid>
-->

変更3箇所目...仮想HD イメージファイルのフルパスの修正
変更前
     <source file='/var/lib/libvirt/images/pc100.img'/>
変更前
     <source file='/var/lib/libvirt/images/pc200.img'/>


変更3箇所目...MACアドレスの修正
変更前
     <mac address='52:54:xx:xx:xx:a5'/>
変更後 (例)
     <mac address='52:54:xx:xx:xx:a6'/>

他のPCのMACアドレスと重複しないMACアドレスを指定します。
具体的には、一番右側の2桁の16進数を修正します。
上の説明の例ではa5に+1して、a6に変更しています。


上の修正が終了したら、ファイルを保存します。

◆手順4.「virsh define」
コンソールを起動します。

以下のように入力します。
virsh define /etc/libvirt/qemu/pc200.xml


◆手順5.仮想マシンマネージャーを一旦終了して、再度起動する

仮想マシンマネージャーを起動します。
もし仮想マシンマネージャーを実行中の場合はいったん終了してから、もう一度起動します。


仮想マシンの一覧に、pc200 が存在することを確認します。





◆手順6.仮想マシン(pc200) の起動
仮想マシンを起動します。

◆手順7.仮想マシン(pc200) のホスト名 (Linuxの場合。Windows の場合はコンピュータ名に相当)、IPアドレスの変更

ホスト名と、IP アドレスを変更します。



# vi /etc/sysconfig/network

変更前
HOSTNAME=pc100

変更後
HOSTNAME=pc100



# vi /etc/sysconfig/network-scripts/ifcfg-eth0

変更前
IPADDR=192.168.1.100

変更後
IPADDR=192.168.1.200



◆手順8.同仮想PCの再起動
ホスト名の変更を有効にするために、PC200を再起動します。

# shutdown -r now

◆手順9.再起動後の動作確認
再起動後、必要に応じて動作確認を行います。

ファイルサーバー(CIFS、NFS) を利用している場合は、そのファイルサーバーをマウントできていること
Webブラウザで、www.google.co.jp や www.yahoo.co.jp へ接続して、ページが表示されること