Version 15 (modified by yuna, 55 years ago) (diff) |
---|
KVMメモ
このページは、KVMのメモです。簡単に使いたい人は、virt-managerを使ってください。
Windowsゲストドライバ
Windowsゲストドライバを利用すると、ネットワークI/OやディスクI/Oが速くなります。 ゲストドライバの取得とインストール方法は下記のURLを参照。
準備
kvmを利用するのに、libvirtを利用します。libvirtをインストールしておきます。virt-managerをインストールすると必要なパッケージが一通り入って便利です。また、kvmで仮想マシンを実行するのに必要なqemu-kvmもインストールしておきます。
# yum install virt-manager # yum install qemu-kvm
次に、kvmのモジュールをカーネルにロードします。AMDの場合は、kvm_intelの代わりにkvm_amdを使ってください。
# modprobe kvm # modprobe kvm_intel
libvirtを利用するには、libvirtdの起動が必要です。libvirtdを起動しておきます。
# /etc/init.d/libvirtd start
virshを利用したKVM仮想マシンの作り方
イメージ作成
# qemu-img create -f raw ubuntu.img 10G
libvirt XMLファイルの作成方法
下記のXMLを適当に編集。特に、
- name(他の仮想マシンとユニークな名前になるように)
- memory(メモリ容量)
- vcpu(CPUの数)
- diskとcdromのsource file
- clock offsetをWindowsの場合localtimeに。
- mac addressを他と被らないように
辺りに注意しておく。
domain type='kvm' id='3'> <name>UbuntuVM</name> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='fedora-13'>hvm</type> <boot dev='hd'/> <boot dev='cdrom'/> </os> <clock offset='utc'/> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <!-- DISKの定義 --> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/mnt/sda5/ubuntu.img'/> <target dev='hda' bus='ide'/> </disk> <!-- CDROMの定義 --> <disk type='file' device='cdrom'> <driver name='qemu'/> <source file='/mnt/sda5/iso/ubuntu-ja-10.04-desktop-i386-20100512.iso'/> <target dev='hdc' bus='ide'/> <readonly/> </disk> <!-- ネットワークインタフェースの定義 --> <interface type='network'> <mac address='52:54:00:1d:18:5e'/> <source network='default'/> <target dev='vnet0'/> </interface> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5902' autoport='yes' keymap='ja'/> </devices> </domain>
virshに登録して起動
# virsh (virsh実行。以下、virshのコンソールで実行) virsh # define virt-kvm.xml
defineで仮想マシンを定義したXMLを登録すると、/etc/libvirt/qemuディレクトリに定義ファイルが作られる。
# ls /etc/libvirt/qemu UbuntuVM.xml hoge.xml kvmtest.xml networks
virsh # start UbuntuVM virsh # list Id 名前 状態 ---------------------------------- 1 UbuntuVM 実行中
VNCクライアントのスクリーン1で接続可能( vnc://localhost:1)
停止はshutdownを使う。
virsh # shutdown UbuntuVM
ハイバネートとレジューム
virsh # save UbuntuVM UbuntuVM.mem virsh # restore UbuntuVM UbuntuVM.mem
ネットワーク接続
- ゲスト側のネットワークを適当設定(例えば192.168.100.2,GWを192.168.100.1)。ネットワークセグメントはホストと別にする。
- ホスト側のネットワークを設定する。
# ifconfig vnet0 192.168.100.1 netmask 255.255.255.0
IPフォワードの設定をしていなければ、IPフォワードの設定を行う。
# echo 1 > /proc/sys/net/ipv4/ip_forward
図で説明すると、上記の設定で次のようなネットワークが構築できる。
+--------------+ +---------------+ +--+-+ +-+---+ +--+-+ | LAN---|eth0| ホストOS |vnet0|-----|eth0| 仮想マシン | +--+-+ +-+---+ +--+-+ | +--------------+ +---------------+ vnet0:192.168.100.1 eth0:192.168.100.2
KVMのもうちょっと高度な使い方
そのうち書く予定
- 仮想マシンIPでVNCのコンソールに繋げる(ポートフォワード)
- iscsiのDISKから起動
- ライブマイグレーション
- pythonからの操作