録画サーバリプレース
Core i3 2100Tを譲ってもらったので録画サーバをatomからsandy bridgeに更改してみました。
この際debianもlennyからsqueezeに更新しました。
debianに入っているxenのバージョンが上がってdomain-0でもpt2のドライバを認識しなくなったためkvmに乗り換えました。
ちなみにxenではハイパーバイザ用?にドライバをコンパイルすれば使えるみたいです。
ちょこっと情報収集してみましたがなかなか見つからなく面倒くさくなってしまい挫折しました。。。
以降はkvmインストールの覚え書きです。
インストール準備
intel VTを有効にします。biosの設定、grubの起動オプションにintel_iommu=onを追加(いらないかも)
$ sudo vi /etc/default/grub : #GRUB_CMDLINE_LINUX="" GRUB_CMDLINE_LINUX="intel_iommu=on" :
(必要なら再起動して)確認
#VTが有効(vmxが存在)になっていること $ cat /proc/cpuinfo | grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt xsave avx lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
インストール
kvm関連(kvm、ブリッジツール、コマンドライン管理ツール、VMインストールツール)をインストールします。
$ sudo aptitude install kvm bridge-utils libvirt-bin virtinst
kvmグループに実行ユーザ追加
kvm,libvirtグループに実行ユーザを追加しログインし直します。
$ sudo adduser 実行ユーザ kvm $ sudo adduser 実行ユーザ libvirt $ logout
ブリッジ接続用インタフェース作成
VMはNAT接続ではなくブリッジ接続にしたかったのでネットワークインタフェースを変更しました。
ブリッジとしてbr0を作成しました
$ sudo vi /etc/network/interfaces : allow-hotplug eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.250 network 192.168.0.0 netmask 255.255.255.0 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off : $ sudo /etc/init.d/network restart
ゲストOSのインストール
- 仮想ディスクイメージ(qcow2を使用)の準備します
$ sudo qemu-image create -f qcow2 /path/to/imagename サイズG
- virt-install起動用スクリプトを書きます
CDブート(debianネットワークインストールISO)でのインストールオプションです。細かいところはman virt-installで確認してください。
$ vi virtinst.sh #!/bin/bash virt-install \ --connect qemu:///system \ --hvm \ --virt-type=kvm \ --name=squeeze \ --vcpus=2 \ --ram=1024 \ --os-type=linux \ --os-variant=virtio26 \ --cdrom=./mini.iso \ --disk path=disk.img,format=qcow2,size=40 \ --network=bridge:br0 --mac=54:52:00:12:34:56 \ --accelerate \ --keymap=ja \ --extra-args='console=tty0 console=ttyS0,115200n8'
- ゲストインストール
といきたいところですが2点ほど問題があったので対応します。
1.インストール時の画面周り
本来ならVNCで飛ばすのが正攻法らしいのですが今回はXをクライアントに飛ばしてみました。
クライアントはwindowsを使用していますのでXWindowソフト(Xming)をインストールし起動。
インストールを実行するコンソール(putty)はsshのX11フォワーディングを有効にして接続しました。
2.仮想ディスクイメージ(qcow2フォーマット)でインストール中のディスクサイズ不正
qemu-imageで出力するのがrawの場合は問題ないらしいのですがqcow2の場合仮想OSの方でディスクサイズが作成したときのサイズに認識してくれませんでした。
以下の方法で無理矢理インストールしました。
-
- VM設定ファイルを自動生成させる
$ sudo ./virtinst.sh Xでインストール画面が立ち上がったら終了
-
- 生成されたVM設定ファイルを編集する
$ sudo virsh edit squeeze #ブートデバイスにcdromを追加します <os> : <boot dev='cdrom'/> <boot dev='hd'/> </os> #仮想ディスクのdriver設定をrawからqcow2に変更します <driver name='qemu' type='raw'/> ↓ <driver name='qemu' type='qcow2'/> #CD-ROMにインストール用isoを読み込ませた状態にします <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' unit='0'/> </disk> ↓ <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/path/to/mini.iso'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' unit='0'/> </disk>
-
- VM設定を有効にします
$ sudo virsh define /etc/libvirt/qemu/sqeeze.xml
-
- インストールを再開します(コマンドはうろ覚えです)
$ sudo virsh -c qemu:///system start squeeze か $ sudo virsh -c qemu:///system console squeeze
これでVMが動くようになりました。
kvmはPCIパススルーができるらしいので暇ができたらPT2をVM上で認識させてみたいと思います。