とらりもんHOME  Index  Search  Changes  Login

とらりもん - 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