首頁‎ > ‎電子期刊‎ > ‎2009年2月號‎ > ‎

VMWare虛擬化叢集建置(上)


摘要

  • 文章編號:
  • 投稿日期:2008/12/30
  • 作者:李開文
  • 第一次審查:
  • 第二次審查:
  • 第三次審查:
  • 備註:

 介紹

前虛擬化技術的現況有提到過一些虛擬化技術對個人以及軟體工程師的幫助。大概在2008年初的時候,虛擬化技術因為CPU的支援,而開始了另一波的 高峰。而因為全球經濟風暴,所有企業也在積極尋求節能減碳的方法。對於企業的資訊資源來說,浪費CPU或者是硬碟空間,無非就是浪費電力。有虛擬化技術的 幫助,能夠在一個實體機器上執行多個虛擬機器,以不互相干擾,又能夠互借多餘的CPU時間,記憶體或硬碟空間的方式,讓實體機器的使用度大增。

本篇文章要從建置不中斷的系統服務,以及系統管理者的角度為各位介紹,VMWare究竟是怎樣利用虛擬化來幫助管理者建置高可用(High Availability,HA)的虛擬化叢集。


 虛擬化技術名詞解釋

在此先介紹一些共同的名詞及觀念。

 Virtual Machine(VM):虛擬機器

一個虛擬機器要能夠完全地模擬一台實體機器的軟硬體結構。也就是說,對於所有的作業系統,安裝在實體機器及虛擬機器,要是一模一樣的。虛擬化技術可分成全虛擬化,半虛擬化,而全虛擬化則可以透過CPU的虛擬化支援來加速。

近年來Intel-VT及AMD-V這兩個在CPU裡增加的虛擬化支援,也促使許多虛擬化軟體廠商都開始採用,不僅增加了效能,也增加了對 許多 GuestOS的相容性。但對於虛擬化效能最大的幫助,莫過於核心的數量與記憶體的多寡。Intel後期的四核心CPU,以及未來的八核心CPU,讓許多 大廠的伺服器都能夠強打支援虛擬化的銷售策略。而另一個就是像虛擬硬碟(Virtual Disk)的備份方案,也有越來越多軟硬體廠商支援。

 Guest OS:VM所使用的作業系統

通常並不是所有的作業系統都可以支援虛擬化,而對於大部分的管理者來說,Windows 2003 R2及Redhat Enterprise 5這兩套就足以讓企業有穩定的Windows及Linux環境可供使用。但對於開放原碼的OS或是其他沒在相容列表裡的,就無法保證會發生啥事。儘管在實 際情況中,Windows XP以及大多數Linux的版本(如Fedora或CentOS)都可以使用,但對管理者來說有官方承諾的相容度總是比較放心的。

對於企業來說,GuestOS牽扯到部署,備份,還原等問題。虛擬機器要可以轉換成「樣版」來幫助進行部署,而且部署還要快速。此外虛擬機器的硬碟檔當然要能夠線上備份及還原,畢竟有些服務是不允許中斷的。

 Virtualization Cluster:虛擬化叢集

對企業而言一台機器是無法做事情的,而很多關鍵性的服務,不允許關機的機器,更是為許多管理員們所負擔的沈重壓力。因此企業在規劃許多不停機服務的 時候,都會採取備援(Fail-over)或者是高可用度(High Availability, HA)的解決方案。有了虛擬化技術之後,HA變得輕鬆許多,當某個虛擬機器出了問題,只要將他的狀態存起來,然後轉移到能夠執行他的實體機器上就可以了。 就算是實體機器忽然斷電了,只要有一個以上的實體機器還存活,網路設備不斷電,就還有機會可以即時轉移(Migrate)。因此我們將這樣的作法稱做是虛 擬化叢集,意思是說用許多相同的伺服器串連在一起,進行互相備援或是即時支援的協同作業。

 Motion Technology:VM動態轉移

上述的轉移技術,必須要有幾個條件才能運作,一是所有機器必須都使用Storage Area Network(SAN)的架構來掛載共用的儲存。現在SAN的架構,比較常見的就是Fiber或是iSCSI。預算不夠買儲存硬體的話,使用較便宜的 PC伺服器也可以透過軟體的方式來建構iSCSI的儲存網路。二是所有的實體機器都要在同一個網段,而如果所使用的網段較多的話,也要能夠確保所有的實體 機器都能夠要用多張網路卡去連接。 Storage Area Network (SAN):儲域網路

SAN代表的是如同LAN(區域網路)的意義,只是功能是用來連接儲存媒體與伺服器。在SAN架構之下的設備通常有iSCSI或是 Fiber的NAS儲存裝置,交換機,區塊裝置卡(HBA)等。這個名詞大家常會與NAS(Network Attached Storage)搞混,NAS代表的是硬碟式的儲存媒體,能夠利用檔案層級(File-Level)的方式,如NFS,CIFS的網路檔案系統讓其他主機 掛載。然而現在有些NAS設備也包含了可以使用區塊層級(Block-Level)來連接的iSCSI或是Fiber連接介面,在效能上更是加倍。至於交 換機的部分,也是視使用的連接介面而定,可以使用Gigabit Ethernet Switch或是Fiber Switch。最後也是根據介面的不同,可以選擇iSCSI HBA或是Fiber HBA,來連接到主機上。 iSCSI Protocol

以往為了追求高效能的中央控管儲存,使用Fiber(光纖)或是更高檔的Infiniband來連接SCSI設備已經是非常常見的事。但是 這些設備造價高昂,並不是一般的學校單位或中小企業負擔得起。也因此就出現了能夠透過一般的以太網路(Ethernet)來連接的iSCSI及 AoE(ATA Over Ethernet),這些都是將區塊層級(Block-Level)利用網路來存取或共享。而iSCSI對於共享式的儲存也有些限制,必須確定所使用的服 務程式(iSCSI Target Service)能夠支援叢集式的存取。因為不管是哪一家的VM Server,要能更使用VM動態轉移,一定必須使用一個儲存裝置的空間,然後透過iSCSI或是Fiber,加上叢集式存取的機制,讓多台的VM Server去掛載才行。


企業虛擬化方案

在本文章中,是著重在企業化的虛擬機器管理,而考量這些虛擬機器會有Windows及Linux的 GuestOS共存。

而綜觀商場上現有的虛擬機器軟體,方案較完整的只有VMWare ESX 3.5及Citrix XenServer 5。

至於其他的虛擬機器軟體如Virtual Box或微軟的Virtual Server,由於支援度或功能太過特定,則不在考慮內。

 VMWare ESX 3.5

自從EMC買下VMWare後,許多與高階軟硬體的整合能力就大幅提昇。記得早期還在GSX Server或Workstation時代的時候,也是有很多如同XenServer現在的情況一樣,還在操作介面上或是設定的彈性上有所欠缺。 VMWare經常對產品名稱做改變,而發展出來許多主線副線的產品,其名稱的演進造成的混亂,讓許多在評估產品的管理員們可是大感吃不消。然而自從進入了 3.0的InfraStructure時代,帶給管理員們的是功能更完整,操作性,整合度更高的虛擬系統。現在VMWare的主力產品就是VMWare InfraStructure,分做三大軟體:

  • ESX Server 以Linux 2.4為核心,直接以光碟安裝完後,就是一個Linux Server,並且包含以下選項:
    • VMFS是作為儲存虛擬硬碟檔案所必須的檔案系統,所有要用來儲存的區塊裝置(無論是本機的硬碟或是iSCSI網路硬碟)都必須使用VMFS來格式化,才能掛載到ESX Server上儲存。
    • Virtual SMP是讓虛擬機器能夠選擇以幾個CPU來執行。
  • VirtualCenter(VC) 並不是「用戶端程式」,而是為了要串連ESX Server並且啟用HA,Motion功能的「中介軟體」。一旦啟用了,就算VC關閉了也不會影響HA的運作。但連線到VC來進行管裡的時候,可以看見 實體與虛擬機器的全景,是更為合理的管理方式。VC包含了幾個軟體選項:
    • VMWare VMotion是能夠將虛擬機器動態地在實體機器間轉移的技術
    • VMWare HA利用了vmotion技術,能夠在虛擬機器失效,或是實體機器發生錯誤時,即時地轉移至還存活的實體機器上繼續執行。
    • VMWare DRS將vmotion及ha技術融合在一起,根據實體機器的CPU或記憶體資源負載,動態地轉移虛擬機器至較無負載的實體機器上。
  • Virtual InfraStructure Client(VIC) 就是能夠直接對ESX及VC進行連線的用戶端軟體,在官方網站也可以免費下載使用。


  • 介面觀感

對於一個能夠進行集合管裡的軟體來說,利用樹狀結構來建立自己的根節點,並且加入主機,這是相當基本的。而右邊的分頁,也會根據目前點到的管理單位 (叢集,實體主機,虛擬主機...等)而有所改變。例如管理某台主機的儲存裝置時,可以發現列出的項目都可以按右鍵,並且可以瀏覽裡面的內容。有時後到底 哪個項目可以右鍵,哪個項目不行,會有點讓使用者感到混淆。而如上圖在最右邊有時後會出現「Property...」表示點選了後會出現新視窗來設定,而 有的功能分頁會有,有的沒有。但通常這些彈出式視窗都是關係到非常重要的設定,如新增網路卡,新增儲存裝置等,管理員們得好好閱讀管理手冊來瞭解每一件工 作倒底要從哪裡點選。而大致上VIC都照著管理員的習慣而設計,這一點能夠感受到VMWare的長期努力,值得讚賞。尤其是Map分頁,直接畫出了目前實 體機器,虛擬機器,網路,儲存的架構圖,這是管理員們都想要的重要功能。


  • 效能

由於VMWare是以自家獨特的全虛擬化技術(Binary Translation)做為基底,早期的VMWare我一直覺得都是非常地慢而不願意使用。然而在3版的時候加入了VMI(Virtual Machine Interface)的半虛擬化支援,使得如Linux核心版本大於2.6.21的Fedora8,能夠讓OS知道自己正在虛擬機器上執行,進而達成最佳 化效能。此外Windows 2008也預計加入VMI的支援。但如果沒有VMI的支援,一旦CPU或是IO的負載量大的時候,常常會出現效能不平衡的狀態,有些機器會變得非常慢,這 個時候就只能請管理員自行限制那些負載量高的虛擬機器資源配置了。從效能圖表上也可以發現,大多數沒有VMI支援的OS(如常用的Windows 2003 R2),CPU都無法飆上100%,相對的就是效能較差。因此如果有效能考量的管理員們,可以考慮架設叢集化的服務來平衡速度上的差距。


  • 支援性

使用傳統的Binary Translation的方式,缺點就是如果沒在VMWare支援GuestOS的列表下,像是以前的版本還不支援Vista的時候,那真是怎樣灌也灌不 起來。相對起來XenServer在這邊就比較有機會。不過近年來VMWare已經大幅度地改善了支援度,直到現在的3.5連Windows 2008 Server也支援了。


  • 授權方式

VMWare有提供免費的版本稱做ESXi,就基本功能來說與ESX是相同的。但如果要使用VC來進行串連,還是建議使用ESX。VMWare有相 當多的方案可以參考,例如企業HA方案(2ESX+1VC),價格會比分開買還便宜許多。值得一提的是,比起XenServer比較單純的計費方式及軟體 授權方法,所有功能都是分開授權的。所以管理者們要小心檢視自己購買的方案所含的授權多了哪個或少了哪個。


 小結

本篇我們先介紹了VM的基礎觀念及名詞解釋,在這個領域許多複雜的名詞以及企業化的建置方法所需要的基礎知識是越來越重要了。

下一篇我們將繼續介紹另一套VM的軟體,及建置方法。



Comments