knqyf263's blog

記憶力の悪いエンジニアが自分のためのメモとして残しておくためのブログ。

KVM仮想環境構築

今更ですが、KVMの環境構築についてまとめます。 というのも、ちょっとしたトラブルでHVが全て消えてしまって再構築が必要になったのに、きちんとした作業メモを残して置かなかったために現在苦労しているからです。 自分用なので簡易なメモになります。 とりあえずvirt-managerを起動するところまでのメモです。

環境

環境ですが、ホストOSにはDebian 7.3を利用しています。 OSを入れただけの状態で、インターネットにはつながっている状況を想定しています。 ホストOSとゲストOSのネットワークには192.168.122.0/24を使っています。

ホストOS:Debian 7.3(wheezy)
IPアドレス:192.168.122.1
ネットワーク:192.168.122.0/24

参考サイト

4.2. インストール
SL6.3でKVM構築

事前準備

KVMのインストールを始める前に、事前準備をします。 これはインストールの時の設定によるので、人によって違うと思いますが僕の環境でのメモなので一応残しておきます。

/sbinにパスを通す

.bashrcに次の行を追加。

$ vim ~/.bashrc
+export PATH=$PATH:/sbin
欲しいパッケージをインストール

好きなエディタをインストールしてください。今回はvimを使って設定していきます。 あとはページャとしてlessを入れました。ついでにlsb-releaseも。

$ sudo apt-get install vim less lsb-release

KVMのインストール

ではKVMのインストールをしてきます。

KVMに必要なパッケージをインストール

$ sudo apt-get install kvm libvirt-bin virt-manager sasl2-bin nfs-kernel-server

大量にパッケージがインストールされるので少し待ちます。

libvirtの設定

KVM仮想マシンの管理にlibvirtを使うので、libvirtの設定を行っていきます。

非セキュアなTCP接続を待ち受ける

後にlive migrationなどするために、TLS を使わずにベアTCP を使用します。 TCPを有効にし、TLSを無効にするため、/etc/libvirt/libvirtd.confに下記の設定を行います。 コメントアウトしてあるので、コメントアウトを外すだけでも良いです。

$ sudo vim /etc/libvirt/libvirtd.conf
+listen_tls = 0
+listen_tcp = 1

libvirtの設定を変えたので、さらにlibvirtdが起動するときのパラメータも変更します。 /etc/init/libvirt-bin.confのlibvirtd_optsの行に-lを加えます。

$ sudo vim /etc/default/libvirt-bin
- libvirtd_opts=”-d”
+ libvirtd_opts=”-d -l”
libvirt APIデーモンのアカウント設定

libvirt APIデーモンのアカウントを設定しますが、ここではtestとします。 コマンドを打つとパスワードを聞かれるので、強固なパスワードを設定してください。

$ sudo saslpasswd2 -a libvirt test
Password:
Again (for verification):
libvirtの再起動
$ sudo /etc/init.d/libvirt-bin restart

ホストOSのネットワーク設定

interfacesの編集

br0というブリッジインタフェースを作成し、そこにeth0を結びつけます。 この場合、eth0はただのパケットの通り道であり、UTPが通っているのと同じような状況なので、eth0にはアドレスはつきません。 eth0について既に設定があった場合はコメントアウトして以下の設定を追加してください。

$ sudo vim /etc/network/interfaces
+ auto eth0
+ iface eth0 inet manual
+       pre-up ifconfig eth0 up
+ auto br0
+ iface br0 inet static
+       address 192.168.122.1
+       netmask 255.255.255.0
+       network 192.168.122.0
+       broadcast 192.168.122.255
+       bridge_ports eth0
+       bridge_stp off
+       bridge_maxwait 0
+       bridge_fd 0
ネットワークを再起動
$ sudo /etc/init.d/networking restart

virt-managerの起動

サーバにsshでログインする際にオプションで-Xを使うことで、X Window Systemをローカルに飛ばすことができます。 簡単にいえば、KVMの設定画面が手元のPCでGUIで見れます。 Macの場合は、XQuartzを予めインストールしておき、以下のようにします。

$ ssh -X <サーバIPアドレス>

sshでログインしたあと、そこで以下のコマンドを打ちます。

$ sudo XAUTHORITY=~/.Xauthority virt-manager

これで手元のMacvirt-managerが見られれば成功です。