論壇文章
漫談機房及伺服器虛擬化

虛擬化(Virtualization) 是過往18個月來全球資訊界熱門的技術與話題之一,大家談了很多如何藉助虛擬化進行x86伺服器整併(Server Consolidation) 以降低機房在空間使用、耗電、空調電費及伺服器管理與維護的費用;在這一方面,根據各種市調分析資料,虛擬化的確如當初大家的期望,發揮它的功用。

為了協助廣大客戶能有條不紊導入伺服器虛擬化,叡揚資訊在年初正式成為VMWare 經銷夥伴,同時規劃在本期刊陸續推出一系列文章探討相關議題及分享經驗。在本期,首先和大家分享:
1) 虛擬化技術簡介
2) 虛擬化如何協助舊版應用程式找到第二春?
3) 如何導入伺服器虛擬化?
4) 導入伺服器虛擬化可預期之效益
5) 虛擬化能對軟體開發流程上帶來什麼改善

虛擬化技術簡介

在x86 世界,虛擬化技術可簡單分為Hosted 及Native這兩類。如圖一所示,前者是在現行OS (e.g. Windows, Linux)上運行,事實上它就是一支AP;VMWare Workstation,VMWare Player 及免費的VMWare server (以前稱為GSX server)都屬於此類。

Native 直接在硬體上運行(又稱Bare-metal),底下不需要另一個OS;它的效能比前者好,也就是在同樣硬體資源下,後者可支援更多個虛擬機(VM)。VMWare ESX server 屬於此類。有些Native 的虛擬化技術,在其上運行的Guest OS必須經過修改才能使用,這類虛擬化技術稱為Paravirtualization,市面上Xen 此產品即屬於此類;對Liunx,使用Xen 技術的廠商,要修改Linux 尚不成問題(先不談伴隨的相容性的問題),但對Windows OS 而言,這就不可行了; VMWare ESX 利用所謂Direct Translation技術,可直接運行Windows OS。正因為它能支援不需修改的Windows OS並呈現最佳效能,ESX 擁有很好的口碑。   

另外值得一提的是硬體協力虛擬化(Hardware Assist Virtualization)。從2007開始,Intel & AMD 已陸續推出內含虛擬化功能的CPU;總體來說,在CPU虛擬化需要的基本功能,這類新CPU相當完善,但在Memory 虛擬化部份,仍有改善空間。VMWare ESX 已活用這類CPU已提供之協助,並積極與這兩家CPU 廠商合作改善下一代CPU,尤其是Memory 虛擬化部份。
   

虛擬化如何協助舊版應用程式找到第二春?

在各位的資訊系統內或多或少仍有一些運行多年並不需要升級的老應用軟體(Legacy AP),因為這些軟體是在較舊的操作系統(e.g. NT 4.0)上運作但新的伺服器可能已不支援這些操作系統而導致這些老AP被「困」在那些舊的伺服器;透過伺服器虛擬化,這些老AP即可完整移植到新的伺服器運行並藉助它提供的強大資源提供更好的效能,真可謂「老來益壯」;各位也可藉助這個機制按步就班,從容的升級這些重要的核心AP。

如何導入伺服器虛擬化、整併?

若有上述舊版應用程式,可先這個部份開始;一方面解決這些應用程式硬體支援或效能的擔心,另一方面漸漸熟悉虛擬化相關技術及累積經驗。

在導入伺服器整併( Server Consolidation) 前建議先對準備要合併的伺服器及其相關AP之現狀(效能、CPU、Memory、Disk等資源需求、使用率)做全盤的瞭解,這包含在每週/月尖峰時間的效能及資源需求;有了這些現狀資訊做為基準,整併的優先順序及資源配置才有依據;在內部跨部門溝通時,期望值的設定及ROI(投資報酬率)的計算,也會相對容易。  

參考國內外相關成功案例,他們大都也從小規模及諸如測試機等較非核心系統開始而漸漸擴大到核心系統;這也是可供各位參考。

如果貴單位每年都固定要汰舊換新一些幾年前購買的伺服器(可能是從硬體維護觀點),你也可考慮利用這個時候導入虛擬化。在過往,我們都以1:1來購買新的伺服器做替換;有了虛擬化技術之協助,一般而言,你可享受8:1之整併率及底下提到的效益。

藉助在系統和AP管理/效能監控等累積多年的經驗並搭配VMWare Capacity Planning 工具,叡揚資訊可協助這先期工作之順利進行以及後續的建制工作。

導入伺服器虛擬化可預期之效益

歸納國內外虛擬化伺服器整併之成功案例,一般來說都可達到約8:1之整併率(即8台實體整併到1台ESX 伺服器,在其上運行8個VM)。對機房空間、伺服器之耗電及相關空調費用的節省,其實是相當可觀。在很多時候,二年電費之節省即可回收在虛擬化之投資,對減緩地球暖化我們也可盡一份棉薄之力。

這還不包含虛擬化在相關IT管理上節省的成本及因VM可在幾分鐘內創建來即時滿足業務多樣需求之彈性(試想過去從申請一台伺服器到伺服器安裝,要等多久?)。下表是國內某IC 設計公司在導入虛擬化伺服器之後得到的效益供你參考。

在軟體開發流程上,虛擬化能帶來什麼改善?

藉助VMWare Workstation ,軟體開發者可利用它在自己的PC開數個Windows、Linux 等環境來做跨平台/OS之相容性測試,並利用Snapshot 功能來保留不同開發階段的狀態以協助偵錯。但這只是個人,那團隊呢?

軟體開發團隊(AD: AP Development)和軟體品質測試團隊(QA)在軟體開發不同階段都分別需要數台伺服器,這個問題隨著當今3-tier ( Web, AP, DB) 軟體盛行及每位AD、QA團隊成員各有其不同需求而更複雜;IT同仁於是就經常重新安裝軟體,每位相關成員也因為工作還沒告一段落而不願釋放當初申請的伺服器;漸漸的,伺服器愈買愈多,但若細究,大部份的伺服器是未被充份利用(Underutilized)。伺服器虛擬化之後,這些問題都可迎刃而解。

如圖二所示,軟體開發者可透過網頁來選擇需要的虛擬機(VM)組合(Web, AP, DB),VMWare Lab Manager 就會據此佈署相關虛擬機,之後開發者即可進行軟體開發;同理,QA 同仁也是利用同樣流程提出其虛擬機組合之需求以進行其QA 之工作。和過往不同是,IT同仁就不用再花很多時間於找/申請機器、重新安裝OS,AP等等重覆性的工作;藉助虛擬機創建/佈署的便利,上述伺服器被佔用及未被充份利用的現象也不容易發生。

正也因為虛擬機創建/佈署方便的特性,QA就很容易將抓到的問題及相關軟硬體環境忠實保留,以供AP開發團隊在袢o現場銗X發生問題的原因(如圖三所示)。在沒虛擬化之前,QA 同仁必須霸佔相關伺服器等AP開發同仁來接手查問題;或者要等AP開發同仁有空時,再請IT 安裝軟體,重建案發現場。可想而知,藉助虛擬化的導入,無論在時效、彈性及IT 資源有效使用上等都帶來革命性的改良。

上述AD, QA同仁合作之新機制可拓展到外包團隊。在當今軟體開發、測試漸漸
採用外包的現況下,透過伺服器虛擬化,IT 管理者就可在完全掌握下,放心地輕鬆分配IT 資源給這些外包伙伴。

 

 

以上和大家分享一些導入伺服器虛擬化時需要考慮的重要問題及國內外經驗。在下一期系列報導將針對如何分析、監控及調配在實體伺服器上的許多虛擬機上的負載(workload)以確保相關虛擬機都可享有足夠的資源( CPU, memory, storage & network I/O)來執行被負與的任務。如何利用虛擬化協助災難備援(disaster recovery)或異地備援。另外,也將談如何藉助工具掌控VM以避免VM之蔓生。 下回再聊。