2013年5月30日 星期四

在 Debian 使用 KVM / libvirt 的虛擬化系統

Step 1.

sudo aptitude install libvirt-bin virt-manager kvm

Step 2.

將使用者帳號 [username] 加入 libvirt 群組以方便遠端控制。

sudo gpasswd -a [username] libvirt

Step 3.

修改 /etc/network/interfaces 修改 /etc/networking/interfaces,將原本 eth0 的部份取消,加入以下這段:

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp on
bridge_maxwait 0
bridge_fd 0

Step 4.

修改 /etc/sysctl.conf,加入這段:

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Step 5.

修改 /etc/rc.local,在 exit 0 之前加入一行:

/sbin/sysctl -p /etc/sysctl.conf

在重新載入設定並重啟 KVM 後,就可以執行 virt-manager 來使用及管理 Virtual Machine 了。

以下是簡易的示範。

執行 virt-manager 時會出現如下的 Virtual Machine Manager 視窗,由於 KVM 和 virt-manager 均在 localhost 端,預設會看到連線上的是 localhost (QEMU):

查看 localhost (QEMU) 的細節,在 Network interfaces 頁面可以看到 br0 藉由 eth0 提供了橋接 (Bridge) 的架構:

在 Virtual Networks 裡則預設提供了 default 這個選項,它提供 Virtual Machines 使用的 NAT 網路,如下圖所示使用的 192.168.122.0/24 這個網域:

在 Storage 裡預設也提供了 default 的選項,它的路徑在 /var/lib/libvirt/images。這裡我另外添加一個位於 /home/kvm/images 的空間。

以下示範如何建立一個 Virtual machine。

在執行 virt-manager 開啟的 Virtual Machine Manager 視窗裡按下 NEW 按鈕開始建立 Virtual machine,首先要給它一個名字:

接著選擇安裝媒體的來源,一般容易使用的是採 ISO image 來安裝:

接著指定記憶體大小,及 CPU 數量:

接著指定 Hard disk 的大小:

接著在最後一步驟時,點開 "Advanced options",確認它使用了 Host device eth0 (Bridge 'br0') 作為網路介面:

設定完成後,就可以啟動 Virtual machine,並安裝系統:

以本文的示範為例,我在 Virtual machine 上安裝了 FreeNAS,安裝完成後這個 Virtual machine 會呈現如下圖的畫面:

由於我在 Virtual machine 裡指定使用 Host device eth0 (Bridge 'br0) 作為網路介面,如上圖所示在啟後取得的 IP 位址是 192.168.1.111。而執行 KVM 的 Debian 也位於同一個 192.168.1.0/24 的網路裡。

而在這個網路裡有另一台執行 Windows 的電腦,下圖就是它以 Google Chrome 瀏覽器開啟 http://192.168.1.111 的畫面:

延伸閱讀: