2008年7月21日

Ubuntu + KVM + libvirt で仮想化

以前、Xenで完全仮想化ができるのでAthlon64x2 を購入したのだが、 ちょっとしか試していなかった。 変な結構制約があったりで比較的安定している VMware Server を使っていた。

時は経って、Linux KVM というのが活発に開発が行われており、前途有望である。 同時に、色々な仮想化技術を統一したAPIで扱えるlibvirtも整備されてきている。 特に、virt-managerは、 VMware Server Console を彷彿し、ローカルからリモートまで管理が可能になりつつある。

なので、Ubuntu+KVM+libvirt に移行してみようと思う。

インストール

KVM と virt-manager のパッケージをインストール。

# apt-get install kvm libvirt-bin virt-manager
# addgroup <自分> libvirtd

ついでに、QEMU/KQEMU も入れとくと何かと便利かも、、、仮想化命令をサポートしないCPUを使っている場合はこっちがメインになると思う。

# apt-get install qemu kqemu-source
# module-assistant prepare
# module-assistant build kqemu
# module-assistant install kqemu
# modprobe kqemu
# echo "kqemu" >> /etc/modules

あとは、virt-managerを使うと仮想化ドメインがGUIで簡単に作れるようになる。

20080721virt-manager

ブリッジの設定

何もしなければ、仮想化ドメインのネットワークは、専用のサブネットが割り当てられる。なので、NATで外に出るか、ルーティングをせっせと張ることになる。

外からサーバ用途としてアクセスしたければ、bridge が簡単でいい。 Ubuntu libvirt guide を参考にして。 そいつの設定をする

まず、現在のNetworkManager/dhcdbd等の自動ネットワーク設定機能切る。

# /etc/dbus-1/event.d/26NetworkManagerDispatcher stop
# /etc/dbus-1/event.d/25NetworkManager stop
# echo "exit" > /etc/default/NetworkManager
# echo "exit" > /etc/default/NetworkManagerDispatcher
# /etc/init.d/dhcdbd stop
# update-rc.d -f dhcdbd remove
# /etc/init.d/networking stop

固定IPアドレスと bridge の設定を行う。

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
	address 192.168.1.123
	netmask 255.255.255.0
	network	192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.254
	bridge_ports eth0
	bridge_fd 9
	bridge_hello 2
	bridge_maxage 12
	bridge_stp off

ネットワークを有効化する。

# cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
EOF
# sysctl -p /etc/sysctl.conf
# /etc/init.d/networking start

virt-manager を使って新規の仮想化ドメインを作成時に、ブリッジが選択できるようになる。

20080720virt-manager.png

まとめ

Linux KVM よ〜、賢くな〜れ

0 件のコメント:

Cocoa Emacs 24.3 構築 (2013/03版)

暫く使っている Cocoa Emacs を更新していなかったので、24.3 に上げてみた。 当てるパッチは inline patch と ポップアップフリーズ対応パッチ くらい。 24.3 には既にフルスクリーン実装が入っているので、よく使われているフルスクリーンパッチは外し...