以前、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で簡単に作れるようになる。
ブリッジの設定
何もしなければ、仮想化ドメインのネットワークは、専用のサブネットが割り当てられる。なので、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 を使って新規の仮想化ドメインを作成時に、ブリッジが選択できるようになる。
まとめ
Linux KVM よ〜、賢くな〜れ
0 件のコメント:
コメントを投稿