:::
顯示具有 Virtual Machine/VirtualBox 標籤的文章。 顯示所有文章

快速建立開箱即用的系統!VirtualBox匯入應用裝置教學 / How to Import a OVF Format Virtual Appliance to VirtualBox

快速建立開箱即用的系統!VirtualBox匯入應用裝置教學 / How to Import a OVF Format Virtual Appliance to VirtualBox

image

建立一個應用系統已經不需要從基本的作業系統開始安裝起,現在流行的是使用虛擬應用範本(Virtual Appliance)來建立開箱即可用的應用系統。當然,在不同的虛擬機器管理器(Hypervisor,或稱為Virtual Machine Monitor, VMM)上,使用虛擬應用範本建立虛擬機器的操作方式都有所不同。以前我介紹的大多都是偏伺服器管理的Proxmox VE,這次要為大家介紹的在較為流行的VirtualBox中匯入OVF格式虛擬應用範本(在VirtualBox中,稱為虛擬應用裝置)的做法。

(more...)

在VirtualBox建立Ezilla 2.0 Cluster記錄 / Setup Ezilla 2.0 Cluster on VirtualBox

在VirtualBox建立Ezilla 2.0 Cluster記錄 / Setup Ezilla 2.0 Cluster on VirtualBox

Ezilla_logo_all_big

Ezilla國家高速網路與計算中心發展出來的簡易雲端平台。為了測試安裝過程,我使用VirtualBox建立master跟slave兩台虛擬主機來架設Ezilla。這篇是簡單記錄建立Ezilla Cluster架構的安裝記錄。

Ezilla is developed by National Center for High-Performance Computing for deploying cloud platform. I try to setup Ezilla cluster on VirtualBox. Following is my setup process.


安裝環境 / Installation Environment

image

跟前一篇安裝Proxmox VE時一樣,這次我也是用VirtualBox 4.2.6來安裝。一開始建立兩台伺服器,命名為master跟slave兩種不同的伺服器角色。

這次安裝的系統是Ezilla v 2.0,帳號設定很多東西跟前一版v1並不相同,安裝時請特別注意到版本的問題。


安裝master虛擬機器 / Install “master” Virtual Machine

因為Ezilla的Linux發行版是CentOS 6.3,所以我安裝時選用RedHat 64bit來安裝。記憶體跟硬碟大小都用預設,但是網路的部份則是設定成「內部網路」,取名為「ezilla」。

安裝Ezilla,設定網路 / Install Ezilla and Setup Network

掛載ezilla-disk-2.0.1-3.iso進行安裝,安裝步驟中只有決定網路設定而已。在這邊要特別注意,網路請用手動設定(Manual configuration)。安裝時的選項如下:

image

因為master要擔任DHCP的角色,IP的尾碼必須要用254,例如「10.0.0.254」,設定如下圖:

image

安裝之後master會重開機。第一次開機時還要執行很多安裝腳本,會花相當久的時間。但是第二次之後開機速度就很快了。

增加master網路卡 / Add Network Card for “master”

安裝時讓master主要使用內部網路,可是為了讓其他人能夠開啟Ezilla的網頁管理介面,我們還需要幫master加裝一張網路卡。

我安裝一張NAT網路卡給master,設定如下圖:

image

因為Ezilla的管理介面是使用9869連接埠,所以我們還要設定連接埠轉遞為9869,如下圖:

image

設定master網路卡 / Setup Network in “master”

裝了NAT網路卡,master也不會自動把它啟動,這邊還需要額外的軟體設定。

我們先開啟master,然後登入作業系統。

  • 登入帳號:root
  • 登入密碼:release_v2_master

master跟slave都會用相同的帳號密碼喔。

image

接著我們用「ifconfig –a | more」來調查NAT網路卡的編號。我們可以從VirtualBox上看到NAT網路卡的MAC碼為「08002759679F」,比對ifconfig列出的網卡(如下圖),我們可以知道NAT網路卡的編號是eth1。

image

接著編輯以下檔案,注意最後是檔案的編號:

/etc/sysconfig/networking/devices/ifcfg-eth1

設定網卡為DHCP,並將ONBOOT=yes設為開機時自動啟動。全部如下圖:

image

然後我們用ifup指令開啟eth1:

ifup eth1

這樣子Host OS就能夠連線到master了。


安裝 slave / “slave” Installation

接著我們要準備安裝slave節點,而master還必須多做一點設定。

開啟master的網頁管理介面 / Open “master”’s Web Administration GUI

透過以下網址,我們可以開啟Ezilla的網頁管理介面:

  • 預設登入帳號:oneadmin
  • 預設登入密碼:release_v2_ezilla

你可以注意到這裡的帳號密碼跟Linux端的帳號密碼是分開的。

image

設定slave節點安裝 / Set up Slave Node

進入左邊的「Set up Slave Node」,把Ezilla Auto-Installation Service for Slave node打開到ON。

image

然後進入Set up Your Slave environment設定。如果要配置長久可運作的雲端架構,請將檔案系統設成MooseFS

image

建立slave虛擬機器與自動安裝Ezilla / Create “slave” Virtual Machine and Install Ezilla Automatically

slave的建立跟master都一樣是RedHat 64bit,網路也設成Ezilla內部網路。需要特別注意的是開機順序要把「網路」打勾並調到第一順位,如下圖:

image

這樣子slave開機的時候,會以網路連線狀態自動去抓取master的Ezilla安裝資訊。slave安裝大概也只要五分鐘不到就可以完成。

完成之後,先不要把slave重開機,我們要先做個動作:

關閉master的slave節點安裝功能 / Disable Slave Node Installation

回到master的網頁管理介面,我們把Ezilla Auto-Installation Service for Slave node關閉成OFF。

image

這個步驟可以防止slave重開機的時候會再次抓取master的安裝資訊並安裝Ezilla。

關閉slave的網路開機功能 / Disable “slave”’s PXE

接著我們把slave關機,然後關閉開機順序中的「網路」。

image

因為已經安裝好Ezilla了,slave只要正常開機即可。

slave自動加入到master當中 / Join “slave” to “master”’s Cluster Automatically

最後我們把slave開機。slave會自動抓取master的DHCP來配置網路,然後master也會偵測到slave的加入。

我們可以從master的網頁管理介面中看到slave加入的情況。選取「基礎設施」中的「主機」之後,就可以看到剛剛加入的slave,名稱預設使用IP:10.0.0.3,

image

因為在VirtualBox中slave沒有能力執行KVM,所以也不能建立任何虛擬機器。到此為止只能算是練習安裝Ezilla而已。


結語:Ezilla好像省略很多控制功能 / Conclusion: Ezilla Hides Many Functions.

為了方便使用者安裝,Ezilla省略了很多原本網管會很在意的功能。像是安裝時的密碼設定,網頁管理介面也需要網路卡的設定。而且Ezilla預設似乎只有一張網卡,所以我這種兩張網卡、一張給slave連線、一張給其他人的網路配置,就需要額外去做設定。

操作介面雖然簡單好用,不過沒能真正架一個KVM來試,到這邊為止也算是白搭。

其他的有機會弄到實體電腦再練習吧。

(more...)

在VirtualBox架設Proxmox VE 3.0 Cluster記錄 / Setup Proxmox VE 3.0 Cluster on VritualBox

在VirtualBox架設Proxmox VE 3.0 Cluster記錄 / Setup Proxmox VE 3.0 Cluster on VritualBox

image

Proxmox VE可以整合多台Proxmox VE串聯成一個「叢集」(cluster),這樣就能從其中一台Proxmox VE統一管理所有叢集中的Proxmox VE,非常地方便。這概念跟其他雲端平台使用的master / slave架構有點不一樣,但是統一管理的功能卻是共通的。

我用VirtualBox來試著架設Proxmox VE,以下是我的安裝過程記錄。

Proxmox VE can integrate multiple Proxmox VE servers to a cluster for unified management. I try to set up Proxmox VE cluster on VirtualBox. Following is my installation process.


安裝環境 / Installation Environment

image

我在Oracle VirtualBox 4.2.6上安裝Proxmox VE 3.0。

建立虛擬機器兩台,個別擔任master跟slave的角色,設Domain Name為「master-proxmox2.dlll.nccu.edu.tw」與「slave-proxmox2.dlll.nccu.edu.tw」。不過在Proxmox VE的Cluter中並沒有master跟slave的概念,我這篇只是用這兩種相對地位來表示操作順序的差異。

以下開始是步驟,請特別注意網卡設定跟安裝時的IP設定。

建立虛擬機器master / Create “master” Virtual Machine

我將master建為Debian 64bit,記憶體特別要設成512MB以上,其他都用預設值即可。

網路設定為「內部網路」 / Use “intranet” network for “master”

image

建立完成之後,將網路修改成「內部網路」,並給定內部網路名稱「proxmox2」。待會slave也會連到相同名稱的內部網路,表示兩者之間有所連接。這步驟很重要,因為VirtualBox預設建立虛擬機器時是用「NAT」,但這會對Proxmox VE建立cluster的時候造成混亂,千萬不能在NAT的狀態下安裝Proxmox

在master安裝Proxmox VE 3.0 / Install Proxmox VE 3.0 on “master”

然後在光碟機掛上Proxmox VE 3.0的ISO光碟,開始安裝。

由於是使用沒有DHCP的內部網路,所以Proxmox VE會自動選用區域網路IP「192.168.100.2」,這個IP要先記好。

安裝程序中要注意的僅有輸入Domain Name那邊,請輸入可以辨別不同節點的名稱,在此用「master-proxmox2.dlll.nccu.edu.tw」作為範例。

很快地就安裝完成了。安裝完成之後需要重新啟動,然後再登入Proxmox。預設帳號是root,密碼就是你安裝時候設定的密碼。

順利登入之後,我們先把master放著,來安裝slave吧。

建立虛擬機器slave/ Create Virtual Machine “slave”

image

slave建立的參數跟master一樣,都用Debain 64bit,記憶體512MB,建立完成之後網路修改成「內部網路」,並設名稱「proxmox2」。

在slave安裝Proxmox時的注意事項 / Points of Installing Proxmox VE for “slave”

在slave安裝Proxmox時,他也會用預設IP「192.168.100.2」,但這會跟master衝突,所以在此改為「192.168.100.3」。

然後Domain Name設為「slave-proxmox2.dlll.nccu.edu.tw」,其他就照常普通設定安裝即可。

安裝完成之後一樣重新啟動再登入root帳號。順利登入之後,我們就可以準備來建立Cluster了。

建立Cluster / Create Proxmox VE Cluster

在master跟slave都安裝好之後,我們就可以來建立Proxmox VE Cluster了。建立的說明網頁在此,以下我直接把步驟記錄下來:

在master的設定 / Setup on “master”

輸入以下指令:

pvecm create CLUSTER-NAME

其中CLUSTER-NAME是指這個Cluster的辨識名稱,不可修改,而且要刪除非常困難,請慎選!在此我用「DLLL」作為Cluster的名稱。

建立過程應該沒什麼特別問題,大概三分鐘就完成了。這時候這個Cluster裡面只有master一個節點。接著我們要把slave加入這個節點中。

在slave的設定 / Setup on “slave”

輸入以下指令:

pvecm add 192.168.100.2

其中192.168.100.2就是master的IP。其實只要加入任意已經建立好Cluster的節點都可以。前一步我們在master建立了Cluster,所以在此就可以透過pvecm add指令來讓slave加入到master。

輸入指令並執行之後,slave會以SSH連線到master。這時候先要求儲存金鑰,請回答「yes」,然後接著會要求master的密碼,請輸入之後登入。

image

接著過沒多久,看到「successfully added node ’slave-proxmox2’ to cluster.」就表示順利加入成功了。

開啟master的網頁操作介面 / Open “master”’s Web Administration GUI

到目前為止,master跟slave都在內部網路proxmox2底下互相連線,但是在這狀態下,其他人(包括Host OS的本機端)都無法開啟master的管理介面。所以我們要動點手腳,讓master多一張可以連線到外面的網卡。

VirtualBox中新增NAT網路卡 / Add “NAT” Netwrok Card for “master”

要變更硬體得先把master關機才行。關機指令是「halt」。

關機之後再幫master新增網路介面卡2,附加到NAT,如下圖:

image

然後再幫這張網卡設定連接埠轉遞,方面主機連線。主機連接埠設為「38006」,可以自由設定;客體連接埠則是固定的「8006」,如下圖:

image

設定完成之後再把master開機。但是光有網路卡沒用,我們還得在master中設定網路卡的連線方式呢。

修改/etc/network/interfaces  / “master” Network Setup

在master作業系統裡面,新加入的網路卡叫做eth1(原本的內部網路那張卡叫做eth0),但是eth1並沒有設定,預設也不會啟動。我們得設定eth1這張網路卡。

用vi修改網路設定吧,vi的用法請參考鳥哥

vi /etc/network/interfaces

在最後加入eth1的設定:

auto eth1
iface eth1 inet dhcp

設定好之後,interfaces整個檔案如下圖:

image

儲存,然後用以下指令啟動eth1:

ifup eth1

開啟master的Proxmox VE網頁管理介面 / Proxmox VE Web Administation GUI

開啟瀏覽器,建議使用Google Chrome。網址列輸入https並帶有連接埠的網址:

接著就會出現以下登入畫面:

image

帳號與密碼如同在master登入本機端一樣。預設帳號是root,密碼就是安裝時設定的密碼。最後下圖就是順利登入的樣子。

image

你可以發現到,master也可以管理slave的資源,這就是統合多個Proxmox VE組合起來的Cluster,可以方便網管人員進行資源分配與調度喔。


結語:NAT不適合新手操作 / Conclustion: Don’t Use “NAT” When You Setup Cluster At Initial Stage

像這種要串連多台伺服器的結構,通常預設的安裝環境中,網路都會是單純到只是接著一台網路分享器(hub或switch),不會有路由器跟DHCP來讓網路變得更複雜。

因此以後要測試虛擬機器遇到網路上的問題,不妨也跟我一樣,先讓機器本身只使用內部網路就好。確認安裝沒問題之後,再給他一張NAT網卡來操作吧。

希望這點經驗可以幫助到大家。現在半夜三點,好睏,我要回家了。

image

(more...)

安裝Proxmox VE遇到「command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 177」錯誤時的解決方法

安裝Proxmox VE遇到「command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 177」錯誤時的解決方法

2013-06-16_14-39-23

如果在安裝P`roxmox VE 3.0的時候遇到了「command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 177」的錯誤訊息,表示你的伺服器記憶體不足512MB。讓伺服器記憶體超過512MB就沒問題了。

When installing Proxmox VE 3.0, if you encounter the error “command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 177”, please increase server’s memory more than 512MB. Proxmox VE need 512MB memory at least.


為何使用Proxmox VE與OpenVZ / Why I use Proxmox VE and OpenVZ?

190px-OpenVZ-logo

我從2011年開始安裝Proxmox VE(以下簡稱Proxmox) 1.9版開始,就深深地受到OpenVZ的魅力所吸引。OpenVZ是一種非主流的虛擬化技術,它是將Linux的執行緒(process)分隔成不同的容器(container),每個容器都執行完整的Linux作業系統。因此它的缺點在於只能限制於Linux、硬體環境配置較難,但是它在執行效率上的優點卻是其他技術所遠遠不及的。也因為OpenVZ執行時就像是在容器裡面運作一樣,所以Proxmox把它簡稱為CT,意即ConTainer。

proxmox-logo

Proxmox VE是一款整合OpenVZ與KVM的虛擬機器管理平台,並以開放原始碼的形式釋出。安裝時僅需要從光碟直接安裝即可,安裝過程不到三十分鐘,一台可以建置OpenVZ與KVM的虛擬機器環境就可以上線運作了。

不過那是安裝1.9版時的經驗,現在安裝更新的版本時,似乎遇到了一些問題。

使用VirtualBox安裝Proxmox VE發生錯誤 / Install Proxmox VE failed on VirtualBox

那時我安裝1.9版時並沒有遇到什麼問題,倒是後來想用VirtualBox來安裝2.3與3.0版時就發生了錯誤。

VirtualBox的機器配置參數如下圖:

image

安裝3.0版時的錯誤訊息是:

command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 177

而安裝2.3版時也會遇到一樣的錯誤,錯誤訊息只有行數的差別:

command 'chroot /target dpkg --force-confold --configure -a' failed with exit code 1 at /usr/bin/proxinstall line 172

如果要安裝Proxmox VE,記憶體必須是512MB以上 / If you want to install Proxmox VE, server’s memory must be more than 512MB.

經過Proxmox的論壇解答之後,我才知道原來記憶體要設成512MB以上。仔細一看,Proxmox VE的系統安裝需求中,記憶體居然要求要1GB耶。而VirtualBox建立Debian作業系統時,預設只會給予384MB而已,這樣子難怪會失敗。

所以我調整了記憶體數量到896MB(隨便設的),設定細節如下圖:

2013-06-17_201318

然後再安裝Proxmox VE,這次就能順利成功了。

2013-06-17_201348

謝謝Proxmox Staff Member的dietmar回答,真是幫了很大的忙啊。


結語:證實了虛擬機器中的虛擬機器不能使用KVM的疑惑 / Conclusion: VM in VM could not use KVM.

其實這次主要要測試一件事情。那就是即使在Intel VT-x指令集的支持中,在VirtualBox裡面使用Debian 64Bit的Proxmox VE,依然不能使用KVM。終於解決了我長久以來的疑惑了,雖然中間花了不少時間就是。

(more...)

用Acronis True Image來實作實體機器虛擬化(P2V)

用Acronis True Image來實作實體機器虛擬化(P2V)

image

繼上一篇介紹了使用EaseUS Todo Backup 4.0.0.2來實作P2V,這次要介紹的是另一種作法:用Acronis True Image來備份硬碟映像檔,再用VMware vCenter Converter Standalone來轉換成虛擬機器的作法。

(more...)

用EaseUS Todo Backup Free 4.0.0.2實作實體機器轉成虛擬機器(P2V)

用EaseUS Todo Backup Free 4.0.0.2實作實體機器轉成虛擬機器(P2V)

image

最近在重灌電腦的時候試著用用看其他的備份軟體,意外地發現EaseUS Todo Backup Free 4.0.0.2具備P2V功能。我一直以來都對虛擬機器相當感興趣,P2V──實體機器虛擬化當然也是其中一個關切重點。

使用EaseUS Todo Backup Free備份電腦並轉換成虛擬機器的過程並沒有很困難。更重要的是,這些工具全部都是免費可取得的!非常適合虛擬機器入門者拿來練習P2V。

在此記錄使用EaseUS Todo Backup Free來實作P2V的過程。

(more...)

VDI轉換成KVM可用之VMDK

VDI轉換成KVM可用之VMDK

image

早期我常使用的虛擬機器環境為VirtualBox,但是因為效能不彰、管理不易,之後我開始使用Proxmox VE平台來取代,並獲得不錯的成果。

要讓VirtualBox使用的VDI檔案能在Proxmox VE平台中的KVM虛擬機器中運作,必須先將之轉換成KVM可用之VMDK。奇怪的是,這並不能夠用VirtualBox GUI介面中的「匯出」功能,而必須要用「VBoxManage.exe」直接轉換VDI才行。

以下簡單說明作法。


虛擬機器使用的硬碟映像檔

本文所用的平台轉換方式是將VirtualBox使用的硬碟放到Proxmox VE的KVM中使用,你可以單純地想像成實體電腦中硬碟換到另一台插上去的感覺。只是VirtualBox用的VDI跟KVM支援的VMDK這兩者格式上有所不同,在實作前有必要先介紹一下。

VDI:虛擬硬碟映像檔

VDI是VirtualBox使用的虛擬硬碟映像檔,全名為Virtual Disk Image。他可以在最大2TB的檔案大小之間動態地佔用實際上需要的檔案數量。

舉例來說,設定一個大小為2TB、但內容並沒有檔案的硬碟,在Host端看起來該檔案大概只有幾MB而已。隨著VDI內容檔案的增加,VDI的檔案大小也會隨之增加。以一個CentOS來說,VDI大概會高達10GB左右。

VDI似乎並不會壓縮檔案。實際上內容用了多少、外面看起來就是說大。我之前用7-Zip壓縮VDI檔案的時候,可以將26GB的VDI壓縮到3GB左右的大小。當然,壓縮的時間也是非常地久就是了。

VMDK:虛擬機器硬碟

VMDK是VMware虛擬機器使用的映像檔,全名為Virtual Machine Disk。作為虛擬機器市場第一把交椅,各種虛擬機器都將支援VMware作為噱頭,而VMDK格式映像檔也在VirtualBox跟KVM的支援範圍之內。因此,將VirtualBox使用的VDI檔案轉換成KVM也支援的VMDK,就是本篇的主要重點囉。

2012-04-24_062535 vmdk 2012-04-24_064813 oracle vm

必須註明的是,只有VirtualBox 2.1.2之後的版本,也就是後期的Sun VirtualBox跟Orcale VirtualBox才有支援VMDK格式。早期的xVM VirtualBox跟更早的Inno Tek VirtualBox都沒有支援喔。關於VirtualBox的歷史請看新聞頁面

VMDK格式似乎會稍微壓縮資料,讓硬碟實際使用量不會太過暴增。VirtualBox支援匯出功能的時候,也會將硬碟檔案直接匯出成VMDK,而不是早期的VDI。但是透過匯出功能匯出的VMDK並無法讓KVM使用,這點真是令人匪夷所思。

VirtualBox將VDI轉換成VMDK指令

VirtualBox 2.1.2之後支援VMDK虛擬機器硬碟格式,可以使用內建的工具VboxManage來轉換。操作時必須以指令列的方式執行,Windows中就必須先叫出命令提示字元。

其指令為:

VBoxManage.exe clonehd source.vdi target.vmdk --format vmdk

舉例來說,我的VirtualBox裝在「D:\Program Files\Oracle\VirtualBox\」路徑底下,而我要將dspace-dlll.vdi轉換成dspace-dlll.vmdk的話,那麼指令要這樣下:

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd dspace-dlll.vdi dspace-dlll.vmdk --form vmdk

2012-04-24_065054 cmd

如果指令正確的話,就會看到下面出現「0%…」的訊息。進度每隔10%都會顯示一次,你也可以看到目錄底下的「dspace-dlll.vmdk」逐漸變大。

因為VMDK會稍微壓縮資料的樣子,轉換完成之後,原本26.5GB的VDI居然只剩下11.4GB的VMDK。這對硬碟空間老是抓襟見肘的我們來說,真是件好事。

Proxmox VE執行VMDK結果

接著將轉換完成的dspace-dlll.vmdk放到Proxmox VE上執行看看。

基於Proxmox VE特殊的目錄架構,你必須先將硬碟檔案透過網路上傳到指令目錄底下。舉例來說,我現在要建立的KVM虛擬機器是VMID 103,名稱「test-dspace-dlll」。那麼vmdk檔名就要改成「vm-103-disk-1.vmdk」,並上傳到目錄「/var/lib/vz/images/103/」。

2012-04-24_182234 proxmox

至於建立KVM虛擬機器與掛載vm-103-disk-1.vmdk這些細節我就不說明了。

2012-04-24_065449 on kvm

設定好之後就能夠直接運作,上圖就是正常開啟的成果囉。


小結:KVM也需要Virtual Appliance

既然KVM支援VMDK,那麼也應該可以支援VMware大力推廣的虛擬應用(Virtual Appliance)吧?我之前介紹過Proxmox VE內建的OpenVZ系列虛擬應用樣板,以及最近發現的Turnkey Linux ,而KVM的虛擬應用就比較少。儘管Proxmox VE都已經進入第二版,但是這部份並沒有什麼加強就是了。

透過上述的轉換工具,各種虛擬機器之間的隔閡越來越低。下一步就是對各種虛擬機器的整合管理,根據機器負載需求即時地遷移需要的資源。這個議題已經有不少計畫進行中,許多工具也放在網路上等我去研究。可惜近期內我應該沒什麼時間好好摸索就是了。

(more...)

學校實驗室的伺服器虛擬化方案評比(三):綜合比較

學校實驗室的伺服器虛擬化方案評比(三):綜合比較

5BE1364F-74A0-9288-304C-124E9DD7732Awallpaper

經過前面個別測試安裝六個伺服器虛擬化方案之後,接下來我先綜合比較各個方案的功能,再來決定要選擇哪個方案。


綜合比較

由於評比的時間並不長、使用的功能也沒有很完整地評估,在此我只看成本、虛擬化技術、安裝、管理介面安裝、管理介面操作、虛擬機器網路、虛擬裝置支援等七個面向。

成本

由於我是先以免費或開放原始碼方案來挑選,所以這七個方案基本上都可以免費取得。

其中,下載、安裝之後可以自由使用的是OpenNode、Proxmox VE。它們都是開放原始碼軟體,各基於不同的Linxu發佈版整合而成。

Oracle VM也是可以免費取得、安裝,應該也是不需要輸入認證序號就能使用。

VirtualBox也有OSE(開放原始碼版本),但通常大家用的都是具有VRDP跟USB 2.0支援的普通版本,在商業使用上需要收費,個人及教育用途則沒有任何限制。

VMware ESXi跟Citrix XenServer都要申請免費的序號。其中XenServer每年都要申請一次;ESXi只要輸入一次序號就可以永久使用,但輸入序號後就從60天評估版降低到免費版,功能有所縮減。

虛擬化技術

這幾個伺服器虛擬化方案往往整合了多種虛擬化技術,以因應不同的虛擬化需求。然而,在沒有VT-x / AMD-V硬體虛擬化技術的輔助下,各方案可以支援客端電腦就有很大的差別。

即使沒有VT-x / AMD-V也能進行全虛擬化的VirtualBox以及半虛擬化技術的VMware ESXi(感謝網友指正,關於全虛擬與半虛擬技術詳細可以參考TKG的說明)都可以安裝Windows作業系統,可以支援大多數的作業系統。其中,ESXi是空機安裝特製的伺服器,比起VirtualBox容易受到主端電腦作業系統影響,ESXi的效率較高。

沒有VT-x / AMD-V輔助,只能使用半虛擬化的方案為Citrix XenServer、Oracle VM。在半虛擬化的限制之下,客端電腦也僅能安裝特定版本的Linux而已,而且通常搭配要安裝修改核心的工具才能發揮客端電腦的真正效能。儘管如此,效能還是比全虛擬化還要高些。

OpenVZ技術的容器虛擬化不需要VT-x / AMD-V的輔助,OpenNode、Proxmox這兩個方案也只能製作特定版本的Linux客端電腦。效能運作較高,從虛擬裝置/樣板建立虛擬機器的手續也相當簡單。

反過來說,如果實體機器有VT-x / AMD-V技術支援的話,那麼採用Xen與KVM技術的方案就可以使用全虛擬化,全部就都能安裝Windows作業系統,因此虛擬化技術的差異就不是很大了。

安裝

空機安裝是建立虛擬電腦伺服器的最佳方案,你可以讓主端電腦能夠在預先配置好的最佳狀態中執行虛擬機器。提供空機安裝的方案有VMware ESXi、Citrix XenServer、OpenNode、Proxmox VE、Oracle VM。

大部分的方案也同時提供安裝檔供人安裝於特定作業系統中,VirtualBox是了個人用的桌面虛擬化應用程式,因此僅有提供安裝檔,可以安裝於Windows與多數Linux中。但是由於安裝VirtualBox之前,必須要先準備好作業系統才能安裝Virtual,配置上比較麻煩。

管理介面安裝

一般來說,管理虛擬機器的工作都不會在本機的電腦螢幕上進行,而是由遠端的電腦(通常是Windows作業系統)來管理。各方案的管理介面都有所不同,光是在安裝、配置管理介面的方式,就有很大的差異。

安裝完虛擬機器軟體之後,就能從瀏覽器直接啟用是最簡單的作法,這是Proxmox VE的特色。

安裝完虛擬機器之後,需要再安裝額外的客戶端管理程式。Citrix XenServer、VMware ESXi跟VirtualBox都是如此。其中VirtualBox的遠端管理程式是裝在伺服器上的網站系統phpVritualBox,比起前兩者的Windows安裝精靈來說安裝起來更複雜。

為了能達到進階的管理,許多方案採用建立獨立管理伺服器的方式。你可以將管理伺服器建置成虛擬機器,不過要注意到管理伺服器的硬體要求通常不低。OpenNode跟OracleVM都要建立管理伺服器,才能讓管理者遠端控制虛擬機器。其中我在OracleVM的管理伺服器時失敗了,也無從評估OracleVM的使用細節。

管理介面操作

好的管理介面能夠控制主端電腦的開關機與網路、控制虛擬機器的建立與設定、以及各種效能的監控。更重要的是,操作起來也要流暢。VMware ESXi、Citrix XenServer與Proxmox VE都有達到基本的要求。其中Proxmox VE的操作方式與前兩者有很大的差異,但是至少操作上都沒什麼問題,整合度也相當高。

相反地,VirtualBox的phpVirtualBox與OpenNode的OMS操作起來十分不流暢,OracleVM管理伺服器建置失敗,因此都不合格。

虛擬機器網路

本來我以為各種虛擬化方案都會提供NAT模式,但事實上似乎只有個人用的桌面虛擬化應用才會有這樣的功能。

在這次評比的方案中,只有VirtualBox有提供NAT與各種常見的網路模式,其他五個方案都只有虛擬內部網路與橋接模式。

虛擬裝置 / 樣板支援

有時候我們建立虛擬機器的目的只是為了架一些常見的網站,像是WordPress、Joomla、DSpace(這在我們實驗室還蠻常見的),而不是真的想要搞一台Linux主機或Windows主機讓你慢慢設定、調整。

虛擬裝置 / 樣板的應用,可以讓你快速建立起需要的虛擬機器。其中虛擬裝置支援數量最多的應該就是普遍受到市場歡迎的VMware系列,雖然我不清楚是不是ESXi也可以使用,但應該是可以吧?而VirtualBox兼容VMware的虛擬機器,所以一樣可以使用VMware的虛擬裝置。

如果是要求簡單、高效率的虛擬裝置,Proxomox也提供了一系列各種網站的虛擬裝置可供下載取用,而且安裝也是十分方便。

OpenNode也有OpenVZ提供的Linux樣板,可以建立各種Linux發佈版,但是空空的作業系統還是不如已經有內建特定應用的虛擬裝置來得方便。

Citrix XenServer跟Oracle VM也有樣板,但是我並沒有成功使用過,因此評語保留。


最終決定

經過以上考量之後,最後我選擇的是Proxmox VE。選擇的理由是基於以下幾點:

  • 適合舊硬體:老舊伺服器只有記憶體2G、硬碟空間256GB,不適合安裝需要吃太多資源的Windows,還是建立Linux虛擬機器拿來架架網站即可。
  • 簡單高效率:Proxmox VE整合度相當高、操作步驟簡單、OpenVZ可以動態調整虛擬機器的資源。
  • 快速建置:當有人需要快速建立常見的網站時,Proxmox VE是最簡單的選擇。

其他議題

預設網路環境有NAT路由器比較好

經過這次比較之後,我發現大多數的伺服器虛擬化方案都需要直接配給IP。然而考量到高可用、負載平衡等機制的需求上,我想他們應該都是配置在一個內部網路中,以DHCP配置內部IP、透過NAT路由器來連線。

原本我這邊的網路環境是要配給獨立的公開IP,但經過這次架設的經驗之後,我也想用pfSense架一個NAT路由器了。

管理介面的安全性

管理虛擬機器時大多都是在遠端電腦進行,但這個遠端電腦可不能毫無限制地讓任何電腦都可以連線,我們可不希望有莫名其妙的人嘗試連線到虛擬機器搞破壞。

雖然管理介面都有帳號與密碼的認證機制,但這只是防君子不防小人,真的有心的駭客可以用暴力法猜測密碼,帳號密碼被猜到的可能性依然存在。

最好的方法還是限定內部網路或特定IP能夠連線到虛擬機器伺服器進行管理,防止不認識的電腦嘗試登入,這樣就能大幅提高安全性。

大部分防火牆都能做到這種限制,例如iptables。有些基於Linux的方案,例如OpenNode,就能夠安裝iptables來提高安全性。其他的方案能不能做到,則還需要謹慎的評估。


結語

終於寫完啦!粗淺的評估提供給他人的價值不多,但是對自己來說,這是學習虛擬化技術的一個成果交代。

然後,就繼續鑽研吧。

題外話,我好想要一台有VT-x / AMD-V的伺服器啊……

(more...)

學校實驗室的伺服器虛擬化方案評比(二):方案比較

學校實驗室的伺服器虛擬化方案評比(二):方案比較

image

我先從維基百科的虛擬機器比較表格中KVM管理工具選擇伺服器虛擬化方案,再以免費、開放原始碼、客端電腦可運作的作業系統等條件篩選,然後再選擇活躍的、知名度較高的方案來安裝,並用用看各種功能。由於時間並不多,我主要關注安裝、管理、虛擬機器的建立與網路設定等部分功能,並沒有將每個方案的所有細節都摸透。詳細請看下面各方案的評比內容。

這一週多的時間內,我評比了7個方案,包括VirtualBoxHyper-V Server 2008 R2VMware ESXiCitrix XenServerOpenNodeProxmox VEOracle VM,不過實際安裝到能夠成功使用的只有其中5個而已。以下一一介紹:


VirtualBox

2011-08-06_165936 VirutalBox Version

簡介

Oracle VirtualBox是由德國InnoTek軟體公司出品的虛擬機器軟體,現在則由甲骨文公司進行開發,是甲骨文公司xVM虛擬化平臺技術的一部份。它提供使用者在32位元或64位元的Windows、Solaris及Linux 作業系統上虛擬其它x86的作業系統。使用者可以在VirtualBox上安裝並且執行Solaris、Windows、DOS、Linux、OS/2 Warp、OpenBSD及FreeBSD等作業系統作為客端電腦。

與同性質的VMware及Virtual PC比較下,VirtualBox獨到之處包括遠端桌面協定(RDP)、iSCSI及USB的支援,VirtualBox在客端電腦上已可以支援USB 2.0的硬體裝置,不過要安裝 virtualbox extension pack.。

VirtualBox跟Oracle VM Server的差異在於,前者是個人用的桌面虛擬化軟體,後者才是伺服器虛擬化的用途。因此跟以下我安裝的幾個伺服器虛擬化方案比起來,VirtualBox的功能有很大的差異。

豐富的網路設定

對我來說,我覺得VirtualBox最好用的地方在於網路設定:NAT模式。VirtualBox預設使用了NAT模式(Network Address Translation),客端電腦僅需要以DHCP設定網卡,就能從VirtualBox取得IP、連到網路,而幾乎所有客端電腦作業系統都預設採用這種方式連上網路。比起大多數虛擬機器都僅有提供橋接模式(Bridged Networking),安裝客端電腦時還需要特定配給IP、做額外的網路設定,擁有NAT模式的VirtualBox架設虛擬機器時就方便許多。

桌面虛擬化應用

此外,VirtualBox的3D加速與無接縫(seamless windows)功能相當實用,可以將模擬出來的虛擬機器當做Windows中的一個應用程式來使用。但是這個特色主要是用於個人的桌面虛擬化應用的目的,並不是伺服器虛擬化所關注的焦點。

即時遷移:Teleportation

VirtualBox在3.1版之後已經有即時遷移的功能,叫做「Teleportation」。與大多數提供即時遷移的虛擬機器一樣,都需要一個共享儲存環境作為暫存的角色。但是在使用即時遷移的時候,多伺服器整合的監控管理介面是很重要的工具,而Teleportation目前卻仍是以指令列操縱為主,也沒有高可用的相關技術可以一起搭配使用,因此實用度有待評估。

phpVirtualBox簡介

VirtualBox提供了本機端的圖形化管理介面,但也僅有供本機端使用。儘管我們可以用遠端桌面、VNC等遠端操控伺服器的工具來管理,但仍有所不便。為了遠端管理VirtualBox,phpVirtualBox提供了一套管理系統,並成為VirtualBox專案中相當火熱的焦點議題。

如果要用大量管理虛擬化伺服器的角度來評比VirtualBox,那麼應該要連phpVirtualBox也一併介紹才行。

2011-08-06_171137 VBox test-xenserver 2011-08-06_171159 phpVBox test-xenserver

VirtualBox管理介面

phpVirtualBox管理介面

phpVirtualBox幾乎把VirtualBox圖形化管理介面都模擬出來了,還加上了遠端管理時需要有的權限控管功能:除了帳號密碼設定之外,還能規範哪個IP的電腦才能連到phpVirtualBox進行管理,這點相當貼心。

phpVirtualBox的限制

phpVirtualBox必須搭配apachePHP執行環境才能運作,此外也要一併開啟VirtualBox的VBoxWebSrv功能。安裝phpVirtualBox前置作業較為繁雜,而必須額外開啟VBoxWebSrv才能順利連線,這又是為自動運作為目標的伺服器加上了額外的麻煩。

phpVirtualBox支援多台VirtualBox伺服器的整合管理。例如我有三台設有VirtualBox的伺服器,那麼我可以在phpVirtualBox的設定中將這三台伺服器列入管理設定,登入時就能夠一併管理。

但是由於phpVirtualBox需要對應VirtualBox的版本才能正常運作,如果我們要管理的伺服器各別安裝了不同版本的VirtualBox,例如一台是3.x版本、另一台是4.1.0版本,那麼就不能用一個phpVirtualBox來整合管理這些伺服器了。不過這只要規劃時有所考量,就不會是什麼問題。

VirtualBox安裝過程

Windows中安裝

我在Windows 7作業系統中安裝VirtualBox,然後再把phpVirtualBox配置到Apache中。配置phpVirtualBox的時候遇到了些問題,像是phpVirtualBox版本跟VirtualBox不合、不小心用管理者模式開啟VBoxWebSrv.exe等自己操作的錯誤,都不是什麼大問題。搞定後就可以開啟phpVirtualBox來管理VirtualBox了。

phpVirtualBox太慢了

2011-08-06_170543 phpVbox非常慢

但是phpVirtualBox的開啟速度可說是出乎意料的慢。我自認為我現在用的四核心電腦並不差,而且目前也沒有執行太多需要吃資源的軟體。但即使如此,從登入phpVirtualBox到看到操作畫面,至少讓我等了個5分鐘左右吧。而裡面要做任何的動作,也都要等相當久才有反應。

此外,虛擬機器主控台的功能也無法順利開啟,真不知道是我哪裡架設錯誤了,十分讓人灰心。

然而光是緩慢的問題,就足以讓人決定捨棄VirtualBox與phpVirtualBox的組合方案了。


Hyper-V Server 2008 R2

2011-08-07_003240 logo

Microsoft Hyper-V Server 2008 是一項獨立的產品,提供了空機安裝的方式,達到簡易、可靠、符合成本效益且最佳化的虛擬化解決方案,協助公司提升伺服器的使用率並降低成本。

它可將工作負載整合至單一實體伺服器;提供適用於開發與測試環境的基本簡易虛擬化解決方案;支援現有的 IT 基礎結構,協助公司降低成本、提升使用率,及佈署新的伺服器;充分利用現有的修補 / 佈署 / 管理與支援工具 / 程序。

Windows的管理介面

在官方介紹中看不太出來Hyper-V跟其他產品有啥差別。最大的決定性差異,應該就是管理介面使用了大家熟悉的Windows 2008。你可以用熟悉的方式進入Windows、設定防火牆等工作。這對已經習慣Linux的我來說,這並不是什麼特別的優勢,但對未來的管理者來說應該還是一件好事。

相較於大多數虛擬化技術對於Windows支援較差,XenServer等方案在沒有VT-x / AMD-V的加持之下甚至是不能以全虛擬化安裝Windows,Hyper-V絕對是Windows作業系統使用者的不二選擇。

Windows授權

Hyper-V的另一個優勢,就是虛擬機器中客端主機的Windows授權是包含在Hyper-V當中的。以VMware為例,安裝Windows的客端主機時,每一個客端主機理論上都需要獨立的授權(例如序號之類的)。但是一台Hyper-V企業版伺服器,就包含了四台客端主機的Windows授權。可以想像成買一份Windows又送你四份Windows的感覺。

詳細的授權細節我並不是很瞭解,因為實驗室這邊的Windows基本上都是使用學校的大量授權,因此並不需要特別在意授權數量上的限制。

Linux支援不足

不過相對的,Hyper-V在Linux作業系統支援就顯得薄弱:它只能安裝SUSE企業版伺服器、Red Hat Linux。常用的Debian卻不在名單上。

本篇主要需要架設的伺服器中,Linux佔了相當大的比重,因此這成為我並沒有選用Hyper-V的主要原因。


VMware ESXi

ESX02-2011-06-27-16-03-17 

VMware的伺服器虛擬化方案為VMware vShpere,這是一個綜合多種元件與軟體的綜合性大型方案,提供虛擬機器、集中管理、虛擬網卡與虛擬儲存裝置、即時遷移與高可用等功能。

免費的VMware ESXi

VMware大部分元件都是要收費的,只有最底層的元件:伺服器虛擬化主端電腦VMware ESXi(以下簡稱為ESXi)可供免費下載、安裝。你只要輸入可免費取得的序號,就能夠延長ESXi的使用期限。

        ESXi是以空機安裝的方式配置,你可以從VMware網站上下載ISO光碟來安裝。安裝完之後ESXi有著經過設計的文字介面主控台,可以快速設定伺服器的網路、密碼等。ESXi本身是個精簡型的Linux,許多Linux常見的套件都沒有安裝,因此較難對ESXi動手腳,也確保ESXi運作的穩定性。

        VMware vShpere Client

        虛擬機器的管理上則是以獨立的管理軟體VMware vShpere Client(以下簡稱vShpere Client)進行。供人免費使用的vShpere Client一次只能連線到一台ESXi主機,它可以調整ESXi伺服器的設定、檔案傳送(上傳ISO或虛擬裝置)、虛擬機器的監控、記錄與控制,也可以開啟虛擬機器主控台。

        虛擬機器的新增與設定都與以往常見的VMware Workstation很像,在全虛擬化技術的支持下,你可以控制虛擬機器的大部分硬體設定,就像是組一台電腦一樣。

        不過ESXi的網路模式跟Workstation有很大的差別,它只有提供虛擬交換器(vSwitch)跟VMkernel。後者是用來配置ESXi相關服務,像是vMotion(類似即時遷移等)。ESXi沒有NAT伺服器,所以沒辦法自動分配IP給客端電腦,這點必須自己想辦法。

        豐富的資源

        VMware系列產品在虛擬化技術中廣為人知,相關的資源與應用也非常多。VMware上提供了1799種虛擬裝置可以馬上下載來使用。我之前研究的DSpace也有提供VMware的虛擬裝置

        此外,VMware提供的免費工具VMware vCenter Converter Standalone也具備了相當高相容性的P2V、V2V功能。P2V是指實體機器轉換成虛擬機器,而V2V則是虛擬機器轉換成另一種虛擬機器。你甚至可以將Norton GhostAcronis True Image的硬碟映像檔轉換成VMware的虛擬機器。

        VMware ESXi安裝過程

        安裝過程十分順利

        我使用了ESXi 4.1版進行空機安裝。因為在VirtualBox上怎樣進了安裝畫面,所以我是用實體機器來安裝ESXi。
        安裝過程只有硬碟分割、密碼等少數設定需要輸入,大部分都由系統自行去判斷。大概不到五分鐘就安裝完畢了,令人訝異的輕快。

        然後是下載vShpere Client並連線到ESXi管理,ESXi也支援全虛擬化,所以也可以安裝Windows。但是它的網路設定有點複雜,直到現在我也只能理解vSwitch的運作而已。

        簡單安裝幾個虛擬機器之後很快就上手了,網路上也有很多圖文並茂的心得文,例如挨踢人的VMware vSphere 4安裝試用不專業網管筆記的VMware ESXi實戰全記錄,再此就不再額外記錄。

        手動建立NAT內部網路

        至於NAT的問題,我參考RomanT.net的Configuring NAT on ESX and ESXi一文,在ESXi中架設一個pfSense伺服器以提供DHCP、NAT的功能,而其他虛擬機器則透過pfSense來進行連線。這種方式會讓ESXi跟pfSense都各別佔據一個IP,還不算是理想的解決方案。但這種方案不管是用在ESXi還是XenServer等類似的虛擬內部網路架構中都能夠適用。

        VMware GO無法使用

        vShpere Client只能管理一台伺服器,而另一個管理方案VMware GO則是可以管理多台ESXi。它是架設在VMware網站上的網站服務,而不是我們可以自行安裝、架設的伺服器,所以必須連到VMware進行操作。

        2011-08-08_232614 vmware go (mask)

        然而,我在VMware GO新增ESXi的動作卻一直都沒有成功過,不知道是哪裡設定錯誤。網路上看得到的VMware GO文章好多都是官方的廣告說明,例如伺服器虛擬化管理服務─VMware GO,但內容都大同小異。實際上用VMware GO的人好像不多的感覺,不知道是不是我的錯覺?


        Citrix XenServer

        2011-08-08_135631 logo

        簡介

        Citrix XenServer 是一種全面而易於管理的伺服器虛擬化平臺,建構於強大 Xen Hypervisor 程式之上。Xen 技術被廣泛視為業界最快速、最安全虛擬化軟體。XenServer 是為了高效率管理 Windows® 和 Linux® 虛擬伺服器所設計,可提供符合成本效益的伺服器整合和業務連續性。

        XenServer有著與VMware vShpere、Hyper-V 2008 Server R2等類似的功能,但是XenServer在免費版就能使用很多其他廠商方案中需要付費才能使用的功能,像是即時遷移、高可用等伺服器虛擬化所需要的技術。

        XenServer是基於知名的開放原始碼虛擬機器技術:Xen。許多Linux發行版中就能預先安裝Xen,鳥哥也有介紹如何在Linux中使用Xen。Citrix XenServer也是利用Xen的虛擬電腦技術,製作出整合型的管理方案。

        網路心得豐富

        儘管市面上電腦圖書不常看到XenServer的介紹,但是網路上研究XenServer的文章卻還蠻容易找到的。

        射手科技採用XenServer作為他們的虛擬化應用方案,對於為何採用XenServer的理由以及使用XenServer時遇到的瑣事做了詳細的記錄,是官方說明之外的另一種角度的使用者說明。

        一個低調而不張揚的角落黃小瀞的學習筆記也有介紹XenServer的安裝過程,圖文並茂相當詳細,我在安裝XenServer的許多障礙都可以從這邊找到解答。

        Citrix XenServer安裝過程

        可以安裝在VirtualBox中

        2011-08-08_160517 vbox設定

        VirtualBox的設定細節

        XenServer必須安裝在64位元的電腦中。剛好我的VirtualBox可以模擬64位元的電腦,所以我就用VirtualBox來安裝XenServer,並直接讓AP配給它IP。

        空機安裝

        2011-08-08_155330 console

        XenServer是採空機安裝的方式,安裝過程沒什麼問題。安裝好之後很快就能看到XenServer的主控台。接著先用瀏覽器連線到XenServer,它會提示你下載XenCenter安裝檔,好用來管理XenServer。

        2011-08-08_161110 xencenter

        Citrix XenCenter

        在此使用的是Windows環境中使用的版本。安裝過程也十分簡單,請看黃小瀞的學習筆記的說明即可。

        半虛擬化的限制

        在安裝虛擬機器時遇到了一些麻煩。由於VirtualBox無法提供VT-x / AMD-V給XenServer,所以XenServer只能用半虛擬化(Paravirtualization)模式建立虛擬機器。

        2011-08-08_161659 template

        XenServer半虛擬化支援的樣板,但是Windows在安裝過程中必須全虛擬化進行

        半虛擬化技術最為人詬病的地方,就是必須使用特定的作業系統,並修改該作業系統的核心,這樣才能順利運作。XenServer提供了許多Linux發佈版跟Windows的樣板,不過Windows在安裝過程中需要全虛擬化,所以我連新增都不能新增。Linux發佈版中也限定了版本,我下載了許多CentOS,到最後還是用CentOS 5才能順利運作。直到安裝XenTool之後,整個新增虛擬機器的工程才算是完成。

        網路上可以找到供XenServer使用的樣板,像是Ubuntu 9.10,可是我下載之後卻無法使用,令人感到灰心。

        網路設定

        2011-08-08_162313 Netwrok

        網路的部份,XenServer也只有提供橋接模式與內部網路模式。如果要用NAT模式的話,可以參考三块石头的Citrix XenServer上实现NAT介紹。其作法是建立虛擬路由器、虛擬網卡,然後用iptables來做NAT連接埠的轉遞。這樣還沒有DHCP服務,所以必須手動分配虛擬機器的IP。雖然這都是Linux網路的基礎技巧,但是由於操作還是太過繁雜,所以我並不打算這樣做。

        另一個作法是像ESXi一樣建立pfSense路由器,不過也會有多佔據一個IP的缺點就是。

        小結

        XenServer有著不輸給VMware ESXi的伺服器虛擬化方案,免費版就能使用許多功能,令人感到興奮。但是因為我的伺服器沒有VT-x / AMD-V技術,新增虛擬機器的過程中老是綁手綁腳,令人難以適應。最後還是放棄不使用XenServer了。


        OpenNode

        2011-08-07_024309 logo

        OpenNode雲端平台(OpenNode Clode Platform)是一個開放原始碼伺服器虛擬化與管理方案,它包括了以下幾個元件:

        虛擬化技術

        OpenNode採用了KVM的全虛擬化與半虛擬化技術,同時也用了OpenVZ的容器虛擬化技術。這種虛擬化技術組合在開放原始碼專案中似乎很常見,Proxmox也是採用了類似的方案。

        空機安裝

        基於CentOS的空機安裝ISO檔,支援OpenVZ容器虛擬化與新興的KVM全虛擬化技術。OpenNode的命令列管理也使用了OpenNode CLI Utility與廣為人知的virsh與vzctl技術。

        OpenNode Management Server(簡稱OMS)

        OMS是以虛擬裝置打包(OpenVZ的半虛擬化技術),可以輕易安裝到OpenNode伺服器中整合運作。

        管理主控台

        OpenNode管理主控台,在這邊通常稱為管理介面,稱之為「FuncMAN」。它是次世代網頁式AJAX管理主控台,具備非常簡單與整齊的版面設計。在OpenNode伺服器的虛擬機器實體管理上,採用了以HTML5為基礎的VNC與SSH虛擬機器主控台。OpenNode管理主控台是含括在管理伺服器中。

        整合不如Proxmox

        基本上,OpenNode採用的技術與Proxmox很像。虛擬機器可設定的部分都一樣,網路設定也只有虛擬內部網路、橋接模式,沒有NAT。但整體來說,Proxmox的整合程度比起OpenNode高很多,以下敘述我安裝與使用的過程。

        OpenNode安裝過程

        有如CentOS的空機安裝

        2011-08-07_030940 裸機安裝

        十分精美的安裝介面

        OpenNode伺服器的安裝很簡單,就跟安裝CentOS一樣……因為他本來就是基於CentOS去修改的。安裝畫面很漂亮,但是安裝所需時間卻也跟CentOS一樣長,跟VMware ESXi比起來就差很多。

        安裝OMS與連線配置

        2011-08-07_032452 主控台

        OpenNode的文字介面主控台

        安裝完OpenNode伺服器之後,接下來要在OpenNode伺服器的主控台中安裝OpenNode Management Server(簡稱OMS)。安裝時是下載OpenVZ的虛擬裝置打包檔,將OMS建立成伺服器中的虛擬機器。因此你還需要給OMS額外的IP,讓他能夠連到網路供人連線,這是我覺得很麻煩的缺點。

        OMS必須要以完整的FQDN(Fully qualified domain name,就是完整的網域名稱啦)來解析、連線。舉例來說,OMS的IP如果是192.168.56.101,那麼我必須給他一個FQDN,例如「opennode.dlll.nccu.edu.tw」,這樣才能連線,這似乎是SSL安全認證的需求。

        FQDN的設定通常要搭配DNS伺服器來指定,不過也可以修改要客戶端的網域解析hots檔案,讓客戶端手動辨識FQDN、連到對應的OMS的IP上。Windows請修改C:\Windows\System32\drivers\etc\hosts;Linux通常是修改/etc/hosts,詳情請參考鳥哥的教學

        OMS匯入OpenNode伺服器

        2011-08-07_034317 oms

        連線到OMS時需要輸入帳號密碼,帳號是root,密碼則是剛剛建立OMS時設定的資料。然後OMS會要你安裝安全憑證,以SSL方式跟OpenNode連線,提高安全性。

        2011-08-07_034702 funcManOMS剛安裝完的時候看不到任何主機,我們必須手動匯入OpenNode伺服器。

        2011-08-07_034937 register

        使用手冊上講述兩種方法,我是用OpenNode文字主控台登入,然後再到OMS中選擇要匯入的主機。

        2011-08-07_035009 import selected

        匯入的過程要等待很久,我想應該有10分鐘左右吧,而OMS卻不會有任何運作提示。一開始我一直以為是我輸入錯誤了,等很久之後,才看到OpenNode伺服器成功匯入OMS。

        2011-08-07_035338 loading成功匯入一台OpenNode伺服器之後,OMS就時常需要讀取伺服器的資料,而且讀取速度非常慢,操作並不太順暢。儘管如此,還是比phpVirtualBox還要快就是了。

        從樣板建立虛擬機器

        由於這台OpenNode沒有VT-x / AMD-V技術,虛擬化的部分只能使用OpenVZ的容器虛擬化,因此必須要下載虛擬裝置才能建立新的虛擬機器。

        2011-08-07_035551 templates OpenNode下載虛擬裝置的操作是在伺服器主控台中,可以選擇的虛擬裝置都是乾淨各個Linux發佈版,這似乎是OpenVZ預設的虛擬裝置。相較之下,Proxmox有些虛擬裝置會預先安裝好服務,較為實用。而Proxmox在網頁端就執行下載虛擬裝置的動作,整合度更勝OpenNode。

        2011-08-07_100818 create new OVZ VM

        下載好虛擬裝置之後,就能夠在OMS建立虛擬機器。建立的方式與Proxmox雷同,畢竟都是使用同樣的OpenVZ技術。建立時需要花點時間,但是OMS卻像是沒有回應一樣的呆滯住,操作起來實在是不怎麼流暢,強調AJAX技術卻沒有帶來相對應的優勢啊。

        2011-08-07_100940 console 虛擬機器的主控台稱之為「WebShell」,是以HTML5技術寫成的,頗為特別。但老實說不太好用,不如Proxmox的Java Applet還容易上手。

        小結

        稍微操作了一下,感覺上,要用OpenNode不如用Proxmox吧。


        Proxmox VE

        800px-Screen-startpage-with-cluster 

        簡介

        在一小時裡面建立完整的虛擬伺服器平台」。這個Proxmox的願景可不是痴人說夢話,而是一個可行性相當高的方案──而且還是免費的開放原始碼專案!

        Proxmox使用了KVM的全虛擬化與半虛擬化技術,以及OpenVZ的容器虛擬化技術(只能供Linux的客端電腦使用)。然而KVM需要有Intel VT-x / AMD-V技術支援,我目前只能測試OpenVZ的容器虛擬化。

        虛擬裝置應用

        真的只要一個小時,你不僅可以將一台空的伺服器安裝成Proxmox,然後快速地建立起郵件伺服器(Proxmox Mail Gateway)、內容管理平台(Joomla)等各種常見的虛擬裝置。一個可以馬上使用的網站系統就這樣完成了!

        操作門檻低

        Proxmox不僅是快,而且是個高度整合的方案,換句話說,他用起來非常簡單!習慣用VirtualBox或是更複雜的VMware的我,在一開始就為它過於簡單的操作方式而感到困惑。但經過短時間的摸索、閱讀安裝文件、熟悉Proxmox的使用方式之後,現在則是對它高度整合的成果感到十分敬佩!

        接著我就介紹一下Proxmox的安裝、使用過程吧!

        Proxmox VE安裝過程

        空機安裝

        Proxmox提供了空機安裝的方式,讓你快速建立起基於Debian的虛擬機器伺服器,內含用瀏覽器就能連線的網頁管理平台,一應俱全。

        2011-08-06_215904 Login

        網頁管理平台的帳號密碼是與Proxmox的Linux系統結合在一起,因此你不需要設定太多套帳號,這是高度整合的具體表現。

        從虛擬裝置建立虛擬機器

        由於我只能用容器虛擬化技術,所以我必須從虛擬裝置來建立虛擬機器。Proxmox最特別的地方,就是它準備了一堆的虛擬裝置(Virtual Appliance)──就是將已經安裝好、配置好的作業系統,上面甚至會安裝好特定的應用工具,然後包在一起供人下載取用。

        2011-08-06_220221 templates download 虛擬裝置可以從Proxmox的網站下載,不過Proxmox的管理介面就內建下載清單了。

        2011-08-06_220256 start download

        你可以從管理介面直接將虛擬裝置下載到Proxmox VE伺服器中,操作起來一氣呵成、不需要多餘的步驟。

        下載完之後就能在建立虛擬機器中選擇該虛擬裝置作為範本,同時可以為他設定基本常用的參數,包括root的密碼。大概只要兩分鐘,一台全新可用的虛擬機器就建好了。

        虛擬機器設定

        建立虛擬機器的部份,跟其他虛擬機器平台比起來,特別是超複雜的VMware ESXi或是比較像個人電腦的VirtualBox來說,Proxmox建立虛擬機器中可以自訂的設定非常少,一開始使用時讓我有點不知道該如何下手。

        2011-08-06_220331 create

        不過重要的設定該有的還是都有,像是硬碟容量、記憶體、網路。我後來才知道,大部分Open VZ的虛擬機器都是如此。其中網路設定的部份,他也只有橋接模式,只是Network Type要選Virtual Network (venet),用橋接網卡反而無法運作,奇怪。

        以Java Applet實作虛擬機器主控台

        2011-08-06_220856 enter console 在主控台操作方面,Proxmox是以Java Applet元件,利用VNC來連線。操控上出乎意料地簡單,按鍵也不會被捕捉鎖定(例如VMware預設要用ctrl + alt來解除捕捉鎖定),感覺就像是在用PieTTY操控主控台一樣的容易。不過,可惜複製貼上這種動作還是做不到的啦。

        小結

        Proxmox的設定太過簡單了,似乎沒辦法像VMware一樣弄出複雜的網路結構。不過換個角度想,簡單也是一件好事,正符合本篇所需要的容易管理優點。我很中意這個方案。


        OracleVM

        vm_general_info

        • 專案網站:Oracle VM Overview
        • 維基百科:Oracle VM
        • 下載網頁(Oracle VM要先註冊登入才能下載,註冊是免費的。)
        • 使用版本:Oracle VM 2.2.2 Media Pack(內含OracleVM-Server-2.2.2.iso與OracleVM-Manager-2.2.0.iso)
        簡介

        Oracle VM為甲骨文公司(Oracle)所發行的企業級開放原始碼虛擬機監視器,其建基於Xen。其免費供應於大眾下載、使用與發布,並為使用者提供有償支援。

        Server與Manager

        Oracle VM分成Server跟Manager兩個元件,它都是提供ISO檔供人免費下載。其中Server是空機安裝,Manager則是要依附作業系統來安裝。

        Manager硬體要求條件最少2GB記憶體、4GB的硬碟空間,因此可能難以裝在預設的虛擬機器中,這是需要注意的地方。

        網路

        Oracle VM的網路似乎只有提供橋接模式,因此它在文件中建議我們在Oracle VM前面設置好DHCP伺服器,再來進行虛擬機器的安裝。

        樣板

        Oracle VM提供了樣板安裝,這是已經安裝好了作業系統,只要下載、放到Oracle VM中,就能夠直接使用。

        Oracle VM安裝過程

        實體機器安裝

        由於我在VirtualBox跟VMware ESXi中都無法順利進入Oracle VM Server的安裝畫面,所以我把它燒成光碟後,放到實體機器上安裝。

        實體機器上的安裝過程十分順利,很快就架設好Oracle VM Server。然後我才想起來還要安裝Oracle VM Manager

        安裝Oracle VM Manager

        本來我想把Oracle VM Manager裝在Orcale VM Server的電腦上,但是它的安裝器不知道是哪裡搞錯了,跟我講說硬碟空間不足,明明安裝完Oracle VM Server之後還有18x GB的空間。
        因此我只好另外架設虛擬機器,先安裝CentOS 5作業系統,再來安裝Oracle VM Manager。

        Oracle VM Manager安裝過程照文件進行操作即可,大致上沒什麼問題。在安裝過程中會安裝許多工具,而它會一一要你設定密碼,這點十分煩人。

        無法連線到Manager

        Manager安裝完之後,應該可以透過「http[s]://IP_address:port/OVS」連接到Oracle VM Manager的管理介面。

        儘管看起來各元件都正常啟動了,防火牆也開啟所需要的連接埠,但我卻怎樣都連線不了,一直看到「錯誤 102 (net::ERR_CONNECTION_REFUSED): 伺服器拒絕連線。」的問題。

        我嘗試以上步驟安裝了第二次,還是一樣無法使用Orcale VM Manager。因此許多功能都還沒嘗試使用,Oracle VM就被我放棄了。

        (more...)