:::

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

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的伺服器啊……

總共17 則留言, (我要發問)

  1. 請問Proxmox VE的免費版和付費版差在哪?

    回覆刪除
  2. Proxmox VE是開放原始碼專案,本身免費,可以捐款。
    而Proxmox公司提供Proxmox VE安裝指導的付費支援。

    回覆刪除
  3. 全虛擬、半虛擬可參考
    http://tkg.im.ncue.edu.tw/?p=574
    ESXi為半虛擬

    回覆刪除
  4. 不好意思~~~想請問一下Xen跟KVM的差異為何?優缺點為何?
    謝謝

    回覆刪除
  5. To 上上樓:

    感謝你的指正,文中已經修改。

    To 樓上:

    簡單來說,Xen比較早期、KVM是後起之秀。
    Xen在商業發展的程度比較高,像是桌面虛擬化應用也可以用Xen的技術。而KVM目前比較沒有聽說有什麼特別的發展,也商業支援方面好像也不是很多。

    技術方面比較可以看這篇:
    http://trac.nchc.org.tw/grid/wiki/KVM_vs_Xen

    回覆刪除
  6. 請教esxi跟proxmox ve可用於一般公司企業嗎?或是必須取得商業授權才行?
    只是用來在各種不同系統下測試程式而已,並不用來做公司重要的伺服器架設。

    回覆刪除
  7. To faq:

    自己使用是ok的,不需要任何授權

    回覆刪除
  8. 如果是在公司部門內架設一台esxi或proxmox ve提供同部門同事連進去使用各種系統測試,這樣需要授權嗎?不需要vCenter那些管理功能。

    回覆刪除
  9. To faq,

    如果只是要使用架設的虛擬機器,那不需要經過授權。

    架設虛擬機器的方案很多,以Ubuntu作業系統跑Apache伺服器中架設Moodle系統來說
    你用VirtualBox、VMware ESXi、KVM(包括Proxmox VE)架設起來都差不多

    有差的是管理功能,特別是網路的設定

    所以你既要給同事測試,又不需要管理功能,我就不太清楚你到底是要做什麼。
    其實與其問我這些,不如實際下載來架設不就可以了嗎?
    反正都是免費方案,試試看吧
    真的有需要的話再去購買vCenter授權也不遲

    回覆刪除
  10. 感謝,主要想了解那些免費版是不是能用於公司內使用而已,不知道是否要購買授權。
    目前先用ESXi試用看看,proxmox ve要是虛擬的系統解析度超出操作用的電腦的話,超出的部份看不到,我用的筆記電腦解析度1366x768,proxmox ve內裝的虛擬系統只能用800x600...看得有些痛苦。

    回覆刪除
  11. 自己使用都不用擔心。

    用Proxmox 安裝的虛擬機器不能調整解析度嗎?
    就跟平常調整Windows解析度一樣的做法

    回覆刪除
  12. 不是的,比如電腦解析度為1366x768,開啟chrome去連入proxmox ve,選擇一個虛擬系統,進入後如果解析度為1024x768,只能見到一部分畫面,必須調整為800x600,才能全部看見。
    ESXi由於是使用安裝的client軟體連入虛擬系統,在超出的部份右邊或下面會有拖拉條可以上下左右移動。

    回覆刪除
  13. To faq:

    原來如此,我了解你的意思了。

    Proxmox VE的KVM Client使用的是Java Applet,的確沒有縮放Console的功能。
    我通常是網路設定好之後就用RDP或SSH來連線到虛擬機器就是。

    回覆刪除
  14. 您好,虛擬桌面現在已可以呈現3D繪圖虛擬化了技術也是很強大了

    回覆刪除
  15. To 匿名 (現在要回幾樓都很不方便啊),

    有的,當年我在研究的時候,VirtualBox就支援Direct3D了!
    但是這篇在講的「伺服器」虛擬化是聚焦在伺服器運作上,伺服器並不太會使用桌面環境、甚至不要有桌面環境運作會更好,只要指令列就可以管理了。所以在寫這篇的時候,我沒有特別在意3D繪圖效能這一塊喔。

    回覆刪除

留言工具: