KVMで仮想マシンを作成
目次
概要
QEMUとlibvirtを利用して仮想マシンを作成します。
構成
想定環境
サーバ構成
OSバージョン
CentOS 6.4 x86_64
ソフトウェア・パッケージ一覧
qemu-img-0.12.1.2-2.355.el6.x86_64
qemu-kvm-0.12.1.2-2.355.el6.x86_64
libvirt-0.10.2-18.el6.x86_64
libvirt-client-0.10.2-18.el6.x86_64
クライアント構成
OSバージョン
Windows 7 Ultimate 64bit
ソフトウェア・パッケージ一覧
Tera Term Version 4.74
TigerVNC Viewer
環境構築
QEMUで仮想マシンの作成
ディスクイメージの作成
ゲストOSのディスクイメージを作成します。 ファイル名は /data/img/centos65.img で、サイズは 40GB とします。 ディスクのタイプは可変サイズ(qcow2)を指定します。
ディスクのタイプに固定サイズ(raw)を指定した場合は、指定したサイズの ディスクイメージが作成されます。可変サイズ(qcow2)を指定した場合は OSのインストールやデータの保存などによってゲストOS上に書かれたデータ分だけ ディスクイメージのサイズが大きくなります。ディスクイメージを作成した 直後は256KBとなっています。
# cd /data/img/ # qemu-img create -f qcow2 centos65.img 40G Formatting 'centos65.img', fmt=qcow2 size=42949672960 encryption=off cluster_size=65536 # ls -l 合計 3282052 -rw-r--r--. 1 root root 262144 5月 5 19:16 2014 centos65.img
仮想マシンの起動とOSのインストール
作成したディスクイメージを使用して仮想マシンを起動します。 起動時にはディスクイメージは空なので、CentOS 6.5のDVD(インストーラ)から起動するようにします。 インストーラではGUIが起動するので、VNC Viewerで接続できるようにします。 仮想マシンのメモリは1GB(1024MB)とします。
# /usr/libexec/qemu-kvm -hda /data/img/centos65.img \ > -cdrom /data/media/CentOS-6.5-x86_64-bin-DVD1.iso -vnc 192.168.0.90:0 -boot d -m 1024
上記例でVNC Viewerで接続する際には、192.168.0.90:5900 を指定して接続します。 その後のOSインストールは通常通りの手順にて。
qemu-kvmで仮想マシンを起動すると、フォアグラウンドで実行されるため、 プロンプトが占有されるため、運用上あまり使い勝手が良くありません。 QEMUで作成した仮想マシンをlibvirtで管理する方法は後述します。
libvirtで仮想マシンの作成
仮想マシンの起動
libvirtで仮想マシンを作成する際には、事前にディスクイメージを作成する必要はありません。 以下の例では rhel65 という名前の仮想マシンを作成して、RHEL 6.5のDVD(インストーラ)を 起動するようにしています。 TeraTermから実行しているので「ディスプレイをオープンできません」というメッセージが 出力されています。この後個別にVNC Viewerを起動して接続します。
# virt-install --name rhel65 --vcpus 1 --ram 1024 \ > --disk path=/data/img/rhel65.img,size=40,sparse=true \ > --network network:default --graphics vnc --os-variant rhel6 \ > --cdrom /data/media/rhel-server-6.5-x86_64-dvd.iso Starting install... Creating storage file rhel65.img | 40 GB 00:00 ドメインを作成中... | 0 B 00:00 ディスプレイをオープンできません: Run 'virt-viewer --help' to see a full list of available command line options Domain installation still in progress. You can reconnect to the console to complete the installation process.
VNCポートの確認
仮想マシンを起動すると、GUI画面へ接続するためのVNCサーバが起動します。 VNCサーバがTCPの何番ポートでリッスンしているか確認します。 使用されるポートは仮想マシンが起動した順に、5900/tcp、5901/tcp、5902/tcp、・・・と 割り当てられるようです。
# netstat -tanp | grep kvm tcp 0 0 192.168.0.90:5900 0.0.0.0:* LISTEN 18790/qemu-kvm
TigerVNC Viewerで接続
TigerVNC Viewerを起動し、VNCサーバがリッスンしているIPアドレスとポートで接続します。 [VNC server]欄に IPアドレス:ポート番号 をを入力し、[Connect]ボタンをクリックします。
その後、ゲストOSのGUI画面が表示され、DVDのインストーラが起動していますので、 通常通りOSのインストールを行ってください。
QEMUで作成した仮想マシンをlibvirtにインポート
QEMUで作成した仮想マシン centos65 をlibvirtで管理するためにインポートします。
# virt-install --connect=qemu:///system --import --name=centos65 \ > --ram=1024 --disk path=/data/img/centos65.img,device=disk,bus=virtio,format=qcow2 \ > --network=network:default --vnc --keymap=ja Starting install... ドメインを作成中... | 0 B 00:00 ディスプレイをオープンできません: Run 'virt-viewer --help' to see a full list of available command line options Domain creation completed. You can restart your domain by running: virsh --connect qemu:///system start centos65
仮想マシンを一覧表示すると、インポートした仮想マシン centos65 が表示されます。 あとはlibvirtで作成した仮想マシンと同様に管理できます。
# virsh list --all Id 名前 状態 ---------------------------------------------------- - centos65 シャットオフ 12 rhel65 実行中 #