顯示具有 Virtualization 標籤的文章。 顯示所有文章
顯示具有 Virtualization 標籤的文章。 顯示所有文章

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 的畫面:

延伸閱讀:

2008年9月11日 星期四

如何使用 Open Virtual Machine Tools

目前的工作需要同時使用 Windows 及 GNU/Linux 兩個作業系統,這幾個月來使用 VirtualBox 跑 GNU/Linux 一直很順利,但前幾個星期不知怎麼搞得,原本可以正常使用的 VirtualBox 1.6.2 卻莫名其妙老是出現錯誤訊息,即使移除再重新安裝也是一樣,偏偏手頭的工作正趕著進度,而 VMware Server 在 32 位元的 Vista Business 又總會使整個系統呈現無法回應的超高負載,只好先下載了試用版的 VMware Workstation。

不過當時下載的 VMware Workstation 6.0.4 在安裝了 Ubuntu 8.04 (Linux Kernel 2.6.24) 後,即使安裝了 VMware Tools,Shared Folders 仍不會被正確掛載,到 Google 爬文後,發現可以用 Open Virtual Machine Tools 解決這個問題。

Open Virtual Machine Tools (open-vm-tools) 是 VMware 公司在 2007 年 11 月 11 日的「VMworld 2007」會議上宣佈釋出的 VMware Tools 開放源碼實作。可以在以下的網站取得:使用 open-vm-tools 的方法非常簡單,編譯後取出生成的 vmblock、vmhgfs、vmmemctl、vmsync 及 vmxnet 等模組,用它們取代 VMware Workstaton's VMware Tools 所帶的模組,然後再執行 vmware-install.pl 安裝 VMware Workstaton's VMware Tools 就可以了。 首先編譯 open-vm-tools 之前需要先確認已經安裝以下的軟體套件:

一、當前 Linux Kernel 的 Headers 檔案。

apt-get install linux-headers-$(uname -r)
二、C/C++ 編譯器及 make 工具,由於為了平時使用的方便,所以我一向習慣將 GCC 3.x 版也都裝上。

apt-get install make gcc build-essential \
  gcc-3.3 g++-3.3 gcc-3.4 g++-3.4
三、Fortran 77 編譯器及 AWK。

apt-get install g77 gawk
四、GTK+ 開發套件。

apt-get install libgtk2.0-dev
五、X Window System (X11) 開發套件。

apt-get install xorg-dev
  實際上編譯 open-vm-tools 並不需要這麼完整的 X Window System 開發套件,如果磁碟空間有限,可以只安裝以下幾項:

apt-get install libx11-dev libxtst-dev libxrandr-dev \
  libxinerama-dev libxext-dev libxrender-dev \
  x11proto-xinerama-dev x11proto-xext-dev \
  x11proto-randr-dev x11proto-render-dev
六、libdnet、libicu、libproc 函式庫

apt-get install libdumbnet-dev libicu-dev libproc-dev
當安裝妥所有需要的軟體套件後,就可以開始編譯 open-vm-tools 了。

tar zxvf open-vm-tools-2008.07.01-102166.tar.gz

cd open-vm-tools-2008.07.01-102166

./configure

make
成功編譯完成後,接著要以 open-vm-tools 生成的 module 取代 VMware Workstaton's VMware Tools 的 module:

cd module/linux/

for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done

cd ../../..

mv -f open-vm-tools-2008.04.14-87182/modules/linux/*.tar \
  vmware-tools-distrib/lib/modules/source/
接著安裝 VMware Workstaton's VMware Tools 就可以了。

cd vmware-tools-distrib/

./vmware-install.pl
後記:

如果下載的 open-vm-tools 版本是 2008 年 8 月 8 日發佈的 2008.08.08-109361 版或目前最新的 2008.09.03-114782 版,則執行 configure 時會提示還需要 uriparser 函式庫的支援,不過即使用安裝 liburiparser-dev 後仍會出現以下的錯誤:
configure: error: uriparser library not found or is too old. Please
configure without Unity (using --disable-unity) or install the
liburiparser devel package.
這時只好改成執行 ./configure --disable-unity 關閉 uriparser 函式庫的需求。