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

2013/11/30

[KVM]KVM + libvirt でいろいろやったよ

KVM + libvirt でいろいろやったよ

半年くらい前のメモを発掘したのでとりあえずブログに保管する。


# パッケージインストール
sudo aptitude install qemu-kvm libvirt-bin virtinst

# OS 再起動(/dev/kvm の権限を更新するため)

# USER が kvm を使えるようにする
# 多分再起動とか必要。ログアウトでいいのかな?
sudo adduser USER kvm

# 仮想マシン作成 & Debian インストール
# 最小構成 + vim + ssh
sudo virt-install --connect qemu:///system --name debian_org --ram 512 --disk path=/var/lib/libvirt/images/debian_org.img,size=5 --network network=default,model=virtio --nographics --location='http://ftp.jp.debian.org/debian/dists/wheezy/main/installer-amd64/' -x console=ttyS0,115200

仮想マシン設定ファイルの場所

/etc/libvirt/qemu/DOMAIN_NAME.xml

イメージファイル等の場所

/var/lib/libvirt/*

仮想マシン以外の設定も、 /etc/libvirt の中にある。 autostart 内のもの(普通は設定ファイルへのシンボリックリンク)は libvirtd 起動時に実行される。

基本操作

sudo virt-install --connect qemu:///system --name DOMAIN_NAME --ram RAM_SIZE --disk /PATH/TO/DISK,size=GB --network network=default,model=virtio --vnc --cdrom /PATH/TO/CDROM
sudo virsh list --all
sudo virsh dominfo DOMAIN_NAME
sudo virsh start DOMAIN_NAME
sudo virsh suspend DOMAIN_NAME
sudo virsh resume DOMAIN_NAME
sudo virsh reboot DOMAIN_NAME #KVMでは使えないらしい
sudo virsh shutdown DOMAIN_NAME
sudo virsh destroy DOMAIN_NAME
sudo virsh undefine DOMAIN_NAME

ストレージ

libvirt にはストレージプールなるものがあるらしい。 まだ使ってないのでいつか調べる。

sudo virsh pool-list
sudo virsh vol-list POOL_NAME
sudo virsh vol-delete VOL_NAME

qemu-img create -f qcow2 IMG_NAME IMG_SIZE

Windows7 のインストール

virtio ドライバ

WindowsGuestDrivers/Download Drivers - KVM(http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers)

VM 作成

sudo virt-install --connect qemu:///system --arch=x86_64 -n voice -r 24000 --vcpus 4 --vnc --vnclisten 0.0.0.0 --noautoconsole --os-type windows --os-variant win7 --disk path=/var/lib/libvirt/images/voice.img,size=10 --disk path=/home/mikoto/iso/virtio-win-0.1-59.iso,device=cdrom,perms=ro --cdrom /dev/cdrom --boot cdrom,hd --prompt

これで、サーバの 5900 ポートに VNC クライアントでアクセスすれば画面が表示される。 (windows7 の Real VNC では、 64bit color よりも上の色だと接続できなかった...)

インストール途中で、追加のドライバ(virtio)をインストールする。

これだと NIC も HDD も virtio として追加されないようだ。 disk のオプションに "bus=virtio" を追加するとか、 ネットワークオプションとして "--network bridge=br0,model=virtio" を追加するとかが必要なようだ。 いつか再インストールの機会があれば試す。

ボリュームのリサイズ

10GB は小さすぎた...。

# ボリュームの情報確認
sudo virsh vol-info --pool default voice.img
# リサイズ
# virsh vol-resize は未サポートらしい(2013/5/25,Debian7,KVM)
sudo qemu-img resize voice.img +20G

その後、コンピュータの管理からパーティションを拡張すれば OK.

2012/08/23

[作業記録][Debian][KVM] Debian 最小構成から KVM 仮想マシンを作成するまで

Debian で KVM

事前準備

  1. 最初の HDD に ESXi が残ったままだったので、 grub がインストールできなかった...。
  2. grub インストールをスキップし、とりあえずインストールを完了させる。
  3. netinst CD を使って、レスキューモードで起動。
  4. なんか使い方解らんかった...。
  5. ということで再インストール。
  6. ssh をインストール。

結局のところ、 Debian 最小構成 + SSH からのスタートということで。 さて、ここから KVM.

事前準備

aptitude install kvm
adduser mikoto kvm
shutdown -r now

※ mikoto を kvm グループに入れてますが、ブリッジ接続の為に、 sudo(or root ユーザ) で起動することになりました。

VM 作成

mkdir -p ~/vms/vdebian
kvm-img create -f qcow2 ~/vms/vdebian/vdebian.img 10GB

VM 実行してみる

iso はたまたま HDD にあった Debian の LiveCD イメージを流用。 インストール不要ですぐ動作確認・環境確認ができて意外と便利でした。

ホスト OS に X サーバを入れていないので、 VNC 接続でインストールする。

kvm -hda vdebian.img -cdrom ~/debian-live-6.0.4md64-standard.iso -boot d -m 2048 -vnc :0,password -monitor stdio 
cQEMU 0.12.5 monitor - type 'help' for more information
(qemu) change vnc password
Password: **********
(qemu) 

これで、 VNC クライアントで VM に接続できるようになった。

今は、 qemu への入力をファイルに書いてリダイレクトで流し込むようにしている。 本当は設定ファイルとかありそうですがね。

kvm -hda vdebian.img -cdrom ~/debian-live-6.0.4md64-standard.iso -boot d -m 2048 -vnc :0,password -monitor stdio < vdebian.conf
cQEMU 0.12.5 monitor - type 'help' for more information
(qemu) change vnc password
Password: **********
(qemu) 

これだけだと、 NAT 接続の設定のようなので、ブリッジの設定を行う必要がある。

ブリッジの設定

/etc/network/interfaces の編集

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo br0
iface lo inet loopback

iface eth0 inet manual

# The primary network interface
allow-hotplug eth0
iface br0 inet static
    address 192.168.1.111
    netmask 255.255.255.0
    gateway 192.168.1.1
    bridge_ports eth0
    bridge_stp off

ネットワークの再起動

service networking restart

VM 起動

最終的に起動はこんな感じで。

  • ブートでバイスを sda に設定
  • qemu コンソールに接続したい場合は telnet を使用
  • ホストに X が無いので、 -vnc は設定しておく。(無いとエラーで怒られるので)
  • (基本的にコンソールでしか使わないので、 ssh の設定さえしてしまえばこっちのもの)
  • デーモンとして起動
kvm -hda vdebian.img -boot c -m 2048 -monitor telnet:127.0.0.1:10023,server,nowait -net nic,macaddr=12:34:56:78:90:12,model=e1000 -net tap,ifname=tap0 -vnc none -daemonize

参考文献

openSUSE 12.2: 第13章 QEMU モニタを利用した仮想マシンの管理

vnc設定に挑戦してみる - ymkoの日記

KVMを使う(ネットワーク設定編) « さくらインターネット研究所

DebianにインストールしたKVMの仮想OSで、ブリッジ接続が使えるようにする - Symfoware