Debian 7 WheezyにKVMをインストールした際の手順をまとめます.
まず, qemu-kvmとlibvirt-binをインストールします. これらはKVMを利用するにあたって必ず必要になります.
$ sudo aptitude install qemu-kvm libvirt-bin
GUIを用いた仮想マシンの管理を行いたい場合は, virt-managerもインストールします.
$ sudo aptitude install virt-manager
一般ユーザーからも仮想マシンを管理できるようにlibvirtグループにユーザーを追加しておきます. rootからのみ使用する場合は必要ないですが, X上でGUIを用いて管理する場合は追加しておいた方が良いです.
$ sudo adduser <user> libvirt
次に, VMをネットワークに接続するためのブリッジインターフェースを作成します. VMをネットワークに接続するためにNATを用いる場合はこの手順は不要です. ブリッジを作成するためのユーティリティをインストールします.
$ sudo aptitude install bridge-utils
ブリッジの設定を/etc/network/interfacesに記入します. NetworkManagerが有効になっていると上書きされてしまう可能性があるので, 事前に無効化しておく必要があります. ここではeth0で接続していたものを, br0にブリッジすると仮定して設定します.
元の設定
auto eth0 iface eth0 inet static address 192.168.1.10 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1
ブリッジ追加後の設定
auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.1.10 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0
設定を変更したら, ネットワークを再起動します.
$ sudo service networking stop $ sudo service networking start
これで, ブリッジの作成は出来ましたが, iptablesを使ってパケットフィルタリングを行っている場合, 設定によってはブリッジへパケットが通らなくなります. ブリッジ上でされたトラフィックは iptables を通らないようにするため, /etc/sysctl.conf
に以下を追記しておきます.
net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-arptables=0
以下を実行して, 設定変更を反映させます.
sudo sysctl -p /etc/sysctl.conf
起動時に確実に sysctl.conf の設定が読み込まれるようにするため /etc/rc.local に以下を追記します.
# 〜〜〜 省略 〜〜〜 # 以下の行を追記 /sbin/sysctl -p /etc/sysctl.conf exit 0
以上で, Debian 7 Wheezy上でKVMを使ったVMを作成できるようになります. VMの作成方法などについては以下を参考にして下さい.
参考
更新
- 2015/5/9 一部表現を改善
- 2015/5/14 sysctl について追記