とらりもん - KVM Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
* 2015/05/30 Kenlo Nasahara
* 2011/01/17 Kentaro Tanaka
* 2011/01/16 Toshiaki Kumagai
* 2011/01/12 Kentaro Tanaka
!1. インストール環境の確認
KVMのインストールは、Intel VT もしくは AMD-V に対応している必要がある。
!!!!!確認方法
$ egrep -c '(vmx|svm)' /proc/cpuinfo
を実行した際、1以上であればOK。
!2. kvm のインストール (Ubuntu)
!!!!!Lucid 10.4 or later (14.04もこれでOK)
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
※qemu-kvmは、依存関係よりbridge-utilsも一緒にインストールするようである。
!!!!!Karmic 9.10 or earlier
$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
!!!!!kvmおよびlibvirtdグループへユーザ追加
$ sudo adduser kentaro kvm
$ sudo adduser `id -un` libvirtd
※id -un ----> username
!!!!!動作確認
$ sudo virsh -c qemu:///system list
id Name State
----------------------------
と表示されればOK
!3. ネットワーク設定 (bridged 接続)
$ sudo apt-get install qemu
!!!!!64bit
# setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64
↑これだけでOK。
!!!!!32bit
# setcap cap_net_admin=ei /usr/bin/qemu
# invoke-rc.d networking stop
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual <---必要であれば staticとし、IPアドレス等を設定する。
auto br0
iface br0 inet static
address 192.168.0.48
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
# /etc/init.d/networking restart
!!!!!環境構築の完了
動作確認
IntelVTの場合
lsmod |grep kvm
kvm_intel 35536 0
kvm 123688 1 kvm_intel
AMD-Vの場合
lsmod |grep kvm
kvm_amd 29580 0
kvm 127457 1 kvm_amd
!4. OSのインストール
以下の三種類がある。
1. virt-manager (GUI)
2. virt-install (CUI)
3. qemu-kvm
ここでは、3.の方法を使う。(上手く行かなかったので、2. virt-install を使う方が良い。下で説明。)
!!3. qemu-kvm を使った方法
!!!!!OSのイメージを準備 (qcow2フォーマット)。imgファイルの作成
$ kvm-img create -f qcow2 test.img 4GM
(fedora の場合 qemu-kvm)
(sudo apt-get install qemu-img)
※4GBは、仮想環境で実際に使用するサイズである。
※ただし、qcow2フォーマットは必要に応じて拡張していくという特徴を持つ。
!!!!!imgファイルの中にOSをインストール
CD-ROMからのインストール
$ kvm -hda test.img -cdrom /dev/cdrom -boot d -m 512
-hda ディスクイメージファイル, -boot d, -m 仮想環境のメモリサイズ
(fedora の場合 qemu-kvm)
ISOファイルからのインストール (VineLinux 5.2)
32bit
$ wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-5.2/IMAGES/Vine52-i386-CD.iso
64bit
$ wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-5.2/IMAGES/Vine52-x86_64-CD.iso
インストール
$ kvm -hda test.img -cdrom Vine52-i386-CD.iso -boot d -m 512
!!!!!ゲストOSの起動テスト
$ kvm -hda test.img -boot c -m 512
※ctrl + Alt を押しながらクリックすると、仮想Desktopから出られる。
!!!!!OSをvirshへ登録
xml形式のファイル作成
$ echo "kvm -hda test.img -boot c -m 512" > kvm.sh
$ virsh domxml-from-native qemu-argv kvm.sh > test.xml
$ vi test.xml
<domain type='kvm'>
<name>ryuiki</name> # <---- ここを適切な名前に変更する。
<uuid>9bd37384-3070-b09f-2839-b6a7c7acfa20</uuid>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>kvm</emulator>
<disk type='file' device='disk'>
<source file='test.img'/>
<target dev='hda' bus='ide'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='sdl'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>
xml形式のファイルをvirshへ登録
$ virsh define test.xml
$ sudo ls -l /etc/libvirt/qemu
drwxr-xr-x 3 root root 4096 2010-12-28 11:01 networks
-rw------- 1 root root 798 2011-01-09 17:08 ryuiki.xml <-----作成される。
起動する
$ virsh start ryuiki
が、なんか上手く行かない。
エラー: ドメイン ryuiki の起動に失敗しました
エラー: could not remove profile for 'libvirt-9affe72c-8839-6cdb-688b-55758f5febdd'
libvirt のバグか??
とりあえず 3. qemu-kvm による方法を諦めてみる。
!!2. virt-install (CUI) を使った方法 (4. OSのインストールまで戻る)
* インストールCDやDVDのイメージファイルをどっかのディレクトリに置いておく。
$ sudo apt-get install virt-manager virt-viewer
方法その1 (オプションで指定)
$ sudo virt-install --connect qemu:///system --name ryuiki --ram 512 \
--disk path=/var/lib/libvirt/images/ryuiki.img,size=4 \
--network=bridge:br0 \
--vnc \
--cdrom Vine52-i386-CD.iso
方法その2 (対話形式)
$ virt-install --prompt
※その1と同じ情報を入力すればよい。
↑これが簡単でよい。Ubuntu 14.04にDebian Wheezyを一発でインストールできた(2015/05/30 奈佐原)
!5. 仮想マシンの管理
一般的な操作はGUIが楽
$ virt-manager
仮想マシンの管理は、コマンドライン上で管理が出来る virshを用いて行う。(他にもある)
virshの起動
$ virsh
シャットダウン
virsh # shutdown ryuiki
ドメイン ryuiki をシャットダウンしています
状態の表示 (--allをつけるとシャットダウンのドメインも表示される。)
virsh # list --all
Id 名前 状態
----------------------------------
- ryuiki シャットオフ
ドメインの起動
virsh # start ryuiki
ドメイン ryuiki が起動されました
状態の表示
virsh # list
Id 名前 状態
----------------------------------
9 ryuiki 実行中
ドメイン情報の表示
virsh # dominfo ryuiki
Id: 9
名前: ryuiki
UUID: 9d794109-5d68-9b3b-9eb5-006d7ecfad50
OS タイプ: hvm
状態: 実行中
CPU: 1
CPU 時間: 19.9s
最大メモリー: 524288 kB
使用メモリー: 524288 kB
自動起動: 無効にする
セキュリティモデル: apparmor
セキュリティ DOI:
セキュリティラベル: libvirt-9d794109-5d68-9b3b-9eb5-006d7ecfad50 (enforcing)
ドメインの強制終了 (virt-installによるインストール後の初回のみ、このコマンドでないと終了できない。)
virsh # destroy ryuiki
ドメイン ryuiki は強制停止されました
!6. 仮想マシンの削除
!!!!!設定ファイルの削除 (拡張子xml)
$ sudo virsh undefine ryuiki <----設定ファイルは削除されるが、imageファイルは残る。
$ ls -l /var/lib/libvirt/images
合計 2190764
-rw------- 1 root root 4294967296 2011-01-10 14:58 ryuiki.img <----imageは残っている。
!!!!!imageの削除 (拡張子img)
削除するimageが存在するストレージプールの確認。
$ virsh pool-list
名前 状態 自動起動
-----------------------------------------
default 動作中 yes
削除するimageを確認。
$ virsh vol-list default
名前 パス
-----------------------------------------
ryuiki.img /var/lib/libvirt/images/ryuiki.img
今回削除するのは、defaultに属するryuikiボリュームであることがわかる。
$ virsh vol-delete /var/lib/libvirt/images/ryuiki.img
これで削除完了
!7. Virshで端末起動
$ sudo virsh console ryuiki3
ここでのryuiki3はドメイン名.
!8. 追記
上記 7 において、
/dev/pts/0 のパーミッションがないと、言われた場合。
$ vncviewer
127.0.0.1:0
paswd
$ su
# vi /etc/inittab
「con:2345:respawn:/sbin/agetty 9600 ttyS0」を追記
# init q
# vi /etc/securetty
ttyS0を追記。
# exit
$ exit <---- ホストOSへ戻る。
$ sudo chown ユーザ名 /dev/pts
$ virsh start ryuiki2
!!virt installの際に、ゲストOSをGUIをインストールした場合 (Kumagai)
*GUIでインストールしてしまうと,virshでコンソールが立ち上がらない.
virshで端末を使うには,'''Vine LinuxのインストールでCUIを選択しないといけない'''
原因は不明.
!!!!!ゲストOS(Vine Linux)上での設定
*CUIでインストールしたら,以下の設定を行う.
$ vi /etc/inittab
で最後に「con:2345:respawn:/sbin/agetty 9600 ttyS0」を追加
$ init q
$ vi /etc/securetty
最後に「ttyS0」を追加
ホストOS(Ubuntu)から
$ sudo virsh console ドメイン名
を実行.エンターを数回押せばログイン画面になる.
!! Ubuntu 14.04の上にDebian Wheezyをインストール
egrep -c '(vmx|svm)' /proc/cpuinfo
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
sudo adduser nishida kvm
sudo adduser nishida libvirtd
sudo virsh -c qemu:///system list
sudo apt-get install qemu
sudo setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64
sudo invoke-rc.d networking stop
lsmod |grep kvm
sudo apt-get install virt-manager virt-viewer
mv Dropbox/debian-7.8.0-amd64-netinst.iso ./
sudo virt-install --prompt
sudo virt-manager
* 2011/01/17 Kentaro Tanaka
* 2011/01/16 Toshiaki Kumagai
* 2011/01/12 Kentaro Tanaka
!1. インストール環境の確認
KVMのインストールは、Intel VT もしくは AMD-V に対応している必要がある。
!!!!!確認方法
$ egrep -c '(vmx|svm)' /proc/cpuinfo
を実行した際、1以上であればOK。
!2. kvm のインストール (Ubuntu)
!!!!!Lucid 10.4 or later (14.04もこれでOK)
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
※qemu-kvmは、依存関係よりbridge-utilsも一緒にインストールするようである。
!!!!!Karmic 9.10 or earlier
$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
!!!!!kvmおよびlibvirtdグループへユーザ追加
$ sudo adduser kentaro kvm
$ sudo adduser `id -un` libvirtd
※id -un ----> username
!!!!!動作確認
$ sudo virsh -c qemu:///system list
id Name State
----------------------------
と表示されればOK
!3. ネットワーク設定 (bridged 接続)
$ sudo apt-get install qemu
!!!!!64bit
# setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64
↑これだけでOK。
!!!!!32bit
# setcap cap_net_admin=ei /usr/bin/qemu
# invoke-rc.d networking stop
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual <---必要であれば staticとし、IPアドレス等を設定する。
auto br0
iface br0 inet static
address 192.168.0.48
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
# /etc/init.d/networking restart
!!!!!環境構築の完了
動作確認
IntelVTの場合
lsmod |grep kvm
kvm_intel 35536 0
kvm 123688 1 kvm_intel
AMD-Vの場合
lsmod |grep kvm
kvm_amd 29580 0
kvm 127457 1 kvm_amd
!4. OSのインストール
以下の三種類がある。
1. virt-manager (GUI)
2. virt-install (CUI)
3. qemu-kvm
ここでは、3.の方法を使う。(上手く行かなかったので、2. virt-install を使う方が良い。下で説明。)
!!3. qemu-kvm を使った方法
!!!!!OSのイメージを準備 (qcow2フォーマット)。imgファイルの作成
$ kvm-img create -f qcow2 test.img 4GM
(fedora の場合 qemu-kvm)
(sudo apt-get install qemu-img)
※4GBは、仮想環境で実際に使用するサイズである。
※ただし、qcow2フォーマットは必要に応じて拡張していくという特徴を持つ。
!!!!!imgファイルの中にOSをインストール
CD-ROMからのインストール
$ kvm -hda test.img -cdrom /dev/cdrom -boot d -m 512
-hda ディスクイメージファイル, -boot d, -m 仮想環境のメモリサイズ
(fedora の場合 qemu-kvm)
ISOファイルからのインストール (VineLinux 5.2)
32bit
$ wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-5.2/IMAGES/Vine52-i386-CD.iso
64bit
$ wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-5.2/IMAGES/Vine52-x86_64-CD.iso
インストール
$ kvm -hda test.img -cdrom Vine52-i386-CD.iso -boot d -m 512
!!!!!ゲストOSの起動テスト
$ kvm -hda test.img -boot c -m 512
※ctrl + Alt を押しながらクリックすると、仮想Desktopから出られる。
!!!!!OSをvirshへ登録
xml形式のファイル作成
$ echo "kvm -hda test.img -boot c -m 512" > kvm.sh
$ virsh domxml-from-native qemu-argv kvm.sh > test.xml
$ vi test.xml
<domain type='kvm'>
<name>ryuiki</name> # <---- ここを適切な名前に変更する。
<uuid>9bd37384-3070-b09f-2839-b6a7c7acfa20</uuid>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>kvm</emulator>
<disk type='file' device='disk'>
<source file='test.img'/>
<target dev='hda' bus='ide'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='sdl'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>
xml形式のファイルをvirshへ登録
$ virsh define test.xml
$ sudo ls -l /etc/libvirt/qemu
drwxr-xr-x 3 root root 4096 2010-12-28 11:01 networks
-rw------- 1 root root 798 2011-01-09 17:08 ryuiki.xml <-----作成される。
起動する
$ virsh start ryuiki
が、なんか上手く行かない。
エラー: ドメイン ryuiki の起動に失敗しました
エラー: could not remove profile for 'libvirt-9affe72c-8839-6cdb-688b-55758f5febdd'
libvirt のバグか??
とりあえず 3. qemu-kvm による方法を諦めてみる。
!!2. virt-install (CUI) を使った方法 (4. OSのインストールまで戻る)
* インストールCDやDVDのイメージファイルをどっかのディレクトリに置いておく。
$ sudo apt-get install virt-manager virt-viewer
方法その1 (オプションで指定)
$ sudo virt-install --connect qemu:///system --name ryuiki --ram 512 \
--disk path=/var/lib/libvirt/images/ryuiki.img,size=4 \
--network=bridge:br0 \
--vnc \
--cdrom Vine52-i386-CD.iso
方法その2 (対話形式)
$ virt-install --prompt
※その1と同じ情報を入力すればよい。
↑これが簡単でよい。Ubuntu 14.04にDebian Wheezyを一発でインストールできた(2015/05/30 奈佐原)
!5. 仮想マシンの管理
一般的な操作はGUIが楽
$ virt-manager
仮想マシンの管理は、コマンドライン上で管理が出来る virshを用いて行う。(他にもある)
virshの起動
$ virsh
シャットダウン
virsh # shutdown ryuiki
ドメイン ryuiki をシャットダウンしています
状態の表示 (--allをつけるとシャットダウンのドメインも表示される。)
virsh # list --all
Id 名前 状態
----------------------------------
- ryuiki シャットオフ
ドメインの起動
virsh # start ryuiki
ドメイン ryuiki が起動されました
状態の表示
virsh # list
Id 名前 状態
----------------------------------
9 ryuiki 実行中
ドメイン情報の表示
virsh # dominfo ryuiki
Id: 9
名前: ryuiki
UUID: 9d794109-5d68-9b3b-9eb5-006d7ecfad50
OS タイプ: hvm
状態: 実行中
CPU: 1
CPU 時間: 19.9s
最大メモリー: 524288 kB
使用メモリー: 524288 kB
自動起動: 無効にする
セキュリティモデル: apparmor
セキュリティ DOI:
セキュリティラベル: libvirt-9d794109-5d68-9b3b-9eb5-006d7ecfad50 (enforcing)
ドメインの強制終了 (virt-installによるインストール後の初回のみ、このコマンドでないと終了できない。)
virsh # destroy ryuiki
ドメイン ryuiki は強制停止されました
!6. 仮想マシンの削除
!!!!!設定ファイルの削除 (拡張子xml)
$ sudo virsh undefine ryuiki <----設定ファイルは削除されるが、imageファイルは残る。
$ ls -l /var/lib/libvirt/images
合計 2190764
-rw------- 1 root root 4294967296 2011-01-10 14:58 ryuiki.img <----imageは残っている。
!!!!!imageの削除 (拡張子img)
削除するimageが存在するストレージプールの確認。
$ virsh pool-list
名前 状態 自動起動
-----------------------------------------
default 動作中 yes
削除するimageを確認。
$ virsh vol-list default
名前 パス
-----------------------------------------
ryuiki.img /var/lib/libvirt/images/ryuiki.img
今回削除するのは、defaultに属するryuikiボリュームであることがわかる。
$ virsh vol-delete /var/lib/libvirt/images/ryuiki.img
これで削除完了
!7. Virshで端末起動
$ sudo virsh console ryuiki3
ここでのryuiki3はドメイン名.
!8. 追記
上記 7 において、
/dev/pts/0 のパーミッションがないと、言われた場合。
$ vncviewer
127.0.0.1:0
paswd
$ su
# vi /etc/inittab
「con:2345:respawn:/sbin/agetty 9600 ttyS0」を追記
# init q
# vi /etc/securetty
ttyS0を追記。
# exit
$ exit <---- ホストOSへ戻る。
$ sudo chown ユーザ名 /dev/pts
$ virsh start ryuiki2
!!virt installの際に、ゲストOSをGUIをインストールした場合 (Kumagai)
*GUIでインストールしてしまうと,virshでコンソールが立ち上がらない.
virshで端末を使うには,'''Vine LinuxのインストールでCUIを選択しないといけない'''
原因は不明.
!!!!!ゲストOS(Vine Linux)上での設定
*CUIでインストールしたら,以下の設定を行う.
$ vi /etc/inittab
で最後に「con:2345:respawn:/sbin/agetty 9600 ttyS0」を追加
$ init q
$ vi /etc/securetty
最後に「ttyS0」を追加
ホストOS(Ubuntu)から
$ sudo virsh console ドメイン名
を実行.エンターを数回押せばログイン画面になる.
!! Ubuntu 14.04の上にDebian Wheezyをインストール
egrep -c '(vmx|svm)' /proc/cpuinfo
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
sudo adduser nishida kvm
sudo adduser nishida libvirtd
sudo virsh -c qemu:///system list
sudo apt-get install qemu
sudo setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64
sudo invoke-rc.d networking stop
lsmod |grep kvm
sudo apt-get install virt-manager virt-viewer
mv Dropbox/debian-7.8.0-amd64-netinst.iso ./
sudo virt-install --prompt
sudo virt-manager