CentOS5.5/KVM/覚書

Last-modified: 2011-03-27 (日) 22:24:51
最終更新:2011-03-27 (日) 22:24:51
アクセス数(合計):?
利用者; ? アクセス数(本日):? アクセス数(昨日):?

仮想サーバ構築 KVM 覚書

仮想化サーバ環境であるKVMを導入する。
KVMはKernel-based Virtual Machineの略。Intel VTまたはAMD-VをサポートするCPU上で完全仮想化を実現する。


目的

仮想化KVM覚書

構築条件

構築機器

  • 東芝ノートPC(Satellite K30)上で構築
     CPU:インテル Core2Duo P8400
     メモリ:4GB (メモリ増設)

作成環境

OS    CentOS 5.5 64bit版

※動作CPUがIntel VT(インテルCPU)またはAMD-V(AMDCPU)をサポートしていること。
 インテルのどのCPUがサポートしているかは以下URLにて確認
http://www.pc-koubou.jp/info/win7_vt.php

サーバ作成条件

ホストOSサーバIP10.107.16.100/24
サーバMAC00:1C:7E:7B:E3:B7
ホスト名KVMServer
user   hogehoge
userpasswdhogehogepass
ゲストOSサーバIP10.107.16.102/24
ホスト名KVMhogehoge
user   hogehoge
userpasswdhogehogepass

手順記入ルール

  • コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
  • コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。

ゲストOS実行管理

ゲストOS起動/停止

  • 仮想化起動
# virsh start KVMhogehoge
  • 確認
# virsh list --all
  • 停止
# virsh shutdown KVMhogehoge

※うまく停止しないことが多い。ゲストOSログイン後シャットダウンのほうが確実

  • 強制電源断
# virsh destroy KVMhogehoge

ゲストOS一時中断/再開

  • 一時中断
# virsh suspend KVMhogehoge
  • 再開
# virsh resume KVMhogehoge

ゲストOS追加(qemuコマンド)

VNC設定

※Windows標準のリモートアクセスが使えない環境でリモート管理を行う場合VNCを利用する 

サーバのリモート管理を可能とするため「VNC」をインストールする。

  • 手順に従いインストールする。

qemuコマンドによるゲストOSインストール

  • イメージ作成
# qemu-img create -f qcow2 /var/lib/libvirt/images/KVMhogehoge.qcow2 8GB
Formatting '/var/lib/libvirt/images/KVMhogehoge.qcow2', fmt=qcow2, size=8388608 kB

★qcow2イメージで8GBのHDDイメージ作成

  • インストール
# /usr/libexec/qemu-kvm -hda /var/lib/libvirt/images/KVMhogehoge.qcow2 \
-cdrom /home/hogehoge/CentOS5.5_32bit.iso -boot d -m 512 -vnc :0
  • VNC接続
    realvncツールで、「10.107.16.100:5900」に接続
    ★「-vnc :x」の指定で「port 590x」接続となる。 -vnc:1 指定の場合は 10.107.16.100:5901 となる。

ゲストOS削除

ゲストOS削除

  • 定義削除
# virsh undefine KVM_test
ドメイン KVM_test の定義は削除されています
  • イメージ確認
# virsh pool-list
名前               状態     自動起動
-----------------------------------------
default              動作中  yes
# virsh vol-list default
名前               パス
-----------------------------------------
KVMhogehoge.img      /var/lib/libvirt/images/KVMhogehoge.img
  • イメージ削除
# virsh vol-delete /var/lib/libvirt/images/KVMhogehoge.img
ボリューム /var/lib/libvirt/images/KVM_test.img は削除されました
  • 確認
# virsh vol-list default
名前               パス
-----------------------------------------
# ls -l /var/lib/libvirt/images/
# ls -l /etc/libvirt/qemu/

ゲストOSイメージqcow2

KVMのゲストOSイメージファイルには以下2形式がある

  • raw形式 :指定サイズ分のHDDエリアを確保、ゲストOSイメージをそのまま記録
  • qcow2形式:使用する分のみHDDエリアを確保、ゲストOSファイル使用に伴いHDD使用サイズを拡張

通常の手順でゲストOSを作成すると「raw形式」となるため、qcow2形式を使用するには、予めqcow2形式イメージを作成しておく。

qcow2形式を使用する場合、バックアップイメージとしてsnapshootも取れる。

qcow2イメージファイル作成

★qcow2形式8GBイメージファイルを「KVMhogehoge.qcow2」で作成

  • イメージ作成
# qemu-img create -f qcow2 /var/lib/libvirt/images/KVMhogehoge.qcow2 8GB
Formatting '/var/lib/libvirt/images/KVMhogehoge.qcow2', fmt=qcow2, size=8388608 kB
  • モード変換
# chmod 600 /var/lib/libvirt/images/KVMhogehoge.qcow2

ー確認

# ls -l /var/lib/libvirt/images/
-rw------- 1 root root     262144  3月 16 14:33 KVMhogehoge.qcow2

qcow2イメージ変換

★raw2形式イメージファイル「KVMhogehoge.img」をqcow2形式ファイル「KVMhogehoge.qcow2」に変換

  • 変換
# qemu-img convert /var/lib/libvirt/images/KVMhogehoge.img -O qcow2 \
/var/lib/libvirt/images/KVMhogehoge.qcow2
  • 確認
# ls -l /var/lib/libvirt/images/
-rw------- 1 root root 8388608000  3月 16 15:08 KVMhogehoge.img
-rw-r--r-- 1 root root 2807693312  3月 16 15:05 KVMhogehoge.qcow2

qcow2最適化

★raw2形式イメージファイル「KVMhogehoge.img」を最適化qcow2形式ファイル「KVMhogehoge.qcow2.new」に変換

  • 最適化
# qemu-img convert -f qcow2 -O qcow2 /var/lib/libvirt/images/KVMfugafuga.qcow2 \
/var/lib/libvirt/images/KVMfugafuga.qcow2.new
  • 確認
# ls -l /var/lib/libvirt/images/
-rw-r--r-- 1 root root 2556821504  3月 16 15:43 KVMfugafuga.qcow2
-rw-r--r-- 1 root root 2473197568  3月 16 16:22 KVMfugafuga.qcow2.new

qcow2スナップショット

★snapshot(バックアップ差分)を「snapshot1」という名前で作成

  • 作成
# qemu-img snapshot -c snapshot1 /var/lib/libvirt/images/KVMhogehoge.qcow2
  • 確認
# qemu-img snapshot -l /var/lib/libvirt/images/KVMhogehoge.qcow2
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         snapshot1                 0 2011-03-16 15:37:48   00:00:00.000
  • 復元(snapshot1イメージに戻し)
# qemu-img snapshot -a snapshot1 /var/lib/libvirt/images/KVMhogehoge.qcow2

ゲストOS定義ファイル

  • ファイルの所在地
# vi /etc/libvirt/qemu/KVMhogehoge.xml
  • XML定義ファイル修正後の反映
# virsh define /etc/libvirt/qemu/KVMhogehoge.xml
ドメイン KVMhogehoge が /etc/libvirt/qemu/KVMhogehoge.xml から定義されました

参照:
http://www.asterisk-works.jp/wiki/index.php/Kvm%2Bqemu

謝辞

テキスト作成にあたり、以下サイトを参考にさせて頂きました。ありがとうございます。

http://tipspc.blogspot.com/2009/09/qemu-kvm.html
http://www.asahi-net.or.jp/~aa4t-nngk/kvm.html#differentnetways
http://libvirt.org/formatdomain.html
http://d.hatena.ne.jp/int128/20090720/1248063548