摘要:本文作者針對目前流行的虛擬化應用,通過自身對虛擬化實際運用與理解,從硬件需求、應用分析、系統安全等方面詳細闡述了虛擬化容易產生的幾個誤區,并提出了可實施的解決方案,以此讓大家對虛擬化有更多的了解。
關鍵詞:虛擬化 虛擬系統 宿主 寄宿 誤區
0 引言
現如今的虛擬機軟件不下數十種,主要針對WINDOWS和LINUX平臺而開發,具有代表性的有VMware的ESX和Microsoft的Hyper-V。從應用上來看,VMware發展的較早,功能豐富、應用強大從而占據了虛擬機市場大壁江山,微軟由于提供了對VMware映像文件的支持,因而兼容性更好。在提及正文之前,讓我們從另一個方面再來了解下虛擬機的概念。筆者認為虛擬化技術狹隘的講就是虛擬機應用,它將一個或多個操作系統通過虛擬機軟件在一個操作系統平臺上進行窗口化模擬,其模擬出的運行效果與單機相同,且對其占用的系統資源可根據需要進行調配,模擬運行的操作系統就是虛擬系統。這種模擬的模式就是宿主與寄宿的關系。而宿主機硬件環境的好壞,直接影響寄宿機運行的性能。
1 只要是服務器,就可以虛擬化
基于寄宿者對宿主的要求,因而宿主機的硬件配置必須足夠強大。對于早期購入的服務器,由于架構及性能的不足,很多硬件雖然支持虛擬化技術,但實際運行起來,效果卻強差人意。操作系統的不斷自我升級,運行所占用的資源也在不斷增長,在保障自身流暢運行的前提下,還要分出大量硬件資源去做虛擬機應用,這樣會給已經不堪重負的宿主機帶來更大的壓力。
讓我們來看一下,虛擬機所需的硬件配置。一個WINDOWS 2003 SERVER操作系統按照微軟官方的建議系統需求,需要占用1個專用的CPU內核、256M以上內存、2G以上磁盤空間,實際流暢的運行則需占用2個專用的CPU內核、1G以上內存、10G以上磁盤空間,再加上宿主機所需硬件資源,轉換成服務器配置為:單核雙路處理器、2G以上物理內存、40G以上磁盤空間。盡管服務器配置并非很高,而且這樣的配置對大多數“老機”來說足以勝任,但要求這種僅能滿足自身需求的配置還要分離一半物理資源用來支撐虛擬機的運行,簡直就是一種浪費。何況,通過減小虛擬系統的性能而減少所占用的硬件資源,本身無意義。
建議:采用雙路雙核2G以上處理器、4G以上內存、76G磁盤空間、千兆網卡等以上配置機型。
2 將應用分離,可以最大化利用網絡資源
虛擬機可以設置多個虛擬網卡,也可以通過橋接或網絡地址轉換來實現上網功能。但虛擬機并不支持宿主機上的虛擬網卡(如英特爾網卡的分組功能或鏈路聚合功能),它只能基于硬件驅動識別物理網卡。當虛擬機設置為自動識別橋接網卡時,多個虛擬系統都是通過第一塊物理網卡實現橋接功能,不能指定虛擬系統使用某塊固定的物理網卡,因此也不能實現負載均衡或應用負載分流。
建議:使用千兆光纖網卡以提升網絡帶寬和網絡數據的處理能力。不采取虛擬機軟件的自動識別橋接網卡功能,通過定制每個虛擬系統的網絡配置,實現硬件網卡的分離調用。
3 虛擬機的操作與真機一樣
筆者在使用VMware虛擬機時,發現一個有趣的現象。當安裝VMware Tools后,從宿主機將數據拷貝到虛擬系統第二個分區時,數據并不是直接拷貝,而是先拷貝到虛擬系統第一個分區的臨時文件夾下,然后再從臨時文件夾拷貝到第二個分區上,而且拷貝完成后,臨時文件夾下的數據也不會被刪除。如果你的第一個分區剩余空間不夠大,而且所需拷貝數據遠遠大于剩余空間,那么對你來說,將是一種折磨。由于虛擬系統是通過軟件模擬的特性,因此單個虛擬系統的性能與單機獨立運行的性能還存在一定的差距。
建議:在新建虛擬系統時,對虛擬磁盤分配采用單個分區,或是通過虛擬機自帶的文件夾共享功能實現大文件的存取。
4 虛擬機可以通過軟件來提速。
宿主機的剩余內存空間還很多時,你可能會利用第三方軟件來提速,如SUPERCACHE或RAMDISK,把剩余內存劃分一部分做為虛擬磁盤,將虛擬機映像放在這個虛擬盤上,這樣可以大大提升讀寫速度,但事實并非如此。SUPERCACHE與RAMDISK是可以起到讀取速度成倍數增長的效果,但要求裝載的文件尺寸不要過大。而虛擬機映射文件少則幾個G,大則數10G,還有隨之產生的臨時文件體積也以G為單位,讀取更不頻繁。因此,每次讀寫操作都是基于物理磁盤完成,即犧牲了物理內存,又占用了剩余磁盤空間,優勢并不明顯,且設置SUPERCACHE與RAMDISK后,系統自身可用內存變小,反而減弱了正常的交換處理速度。
建議:在宿主機和寄宿機系統里設置更大的虛擬交換空間,單個虛擬系統分配更大的物理內存。
5 集中式管理,方便到家
宿主機配置足夠強大時,你會多開虛擬系統或是細分應用來充分榨取宿主機的資源。啟用宿主機的遠程終端服務,可遠程登錄一次管理多個虛擬系統,無需頻繁切換,操作非常方便,但同時也增加了部分操作量。使用一個操作系統時,多個應用并存,你只需要調試一次即可完成,但開啟多個虛擬系統后,你要對每個虛擬系統進行同樣的調試操作,即便一個系統補丁的升級,也會帶來N次的重復操作。因為對于一個小型數據中心或計算機中心來說,其虛擬化本身就會帶來工作量的提升,再加上日常維護,工作量將是成倍增長。
建議:對關鍵服務不采用虛擬化應用。
6 虛擬機運行后,就像刀片機一樣方便
的確,在一臺高端機上運行多個虛擬系統后,不會增加機架數量及電源消耗等管理成本,還可以將多個虛擬系統集群化,提供應用上的負載均衡,這樣的功能就跟刀片服務器一模一樣,卻比購置刀片服務器節省了大量的資金。但不可忽視的是由于架構的不同,刀片服務器在并行運算、磁盤讀取性能、整體擴展等方面有不可替代的優勢。多個虛擬系統只是在一臺物理服務器上運行,不僅磁盤讀取性能受到服務器自身磁盤性能的影響,而且端口的可擴展性也將受到局限。
建議:服務器磁盤系統應采用SCSI Ultra 320或SAS等支持RAID 5陣列的獨立板卡,且自身帶有128M以上緩存。硬盤采用高轉速(15K)、高緩存(16M以上)的型號。宿主機可另配USB集線器,以滿足某些虛擬系統對USB接口的擴展需要。
7 用虛擬機做系統,安全萬無一失
將宿主機的安全做到最大化,把所有應用都放在虛擬系統里運行,這樣即便某個虛擬系統被攻擊,對其它虛擬系統和宿主機無任何影響,并可通過最近的快照功能進行恢復,因此虛擬機相對單個系統,安全系數相當高。但最近有報到稱,研究人員可以利用虛擬機內存讀寫的漏洞,直接對宿主機發起攻擊,并可運行任意代碼。隨著時間的推移,安全問題也會成為虛擬機軟件所面對的首選問題。而且一旦宿主機宕機或出現物理故障,則所有虛擬系統都將離線。
建議:宿主機做好系統備份、升級系統補丁、定時殺毒等工作,關閉無用系統服務及端口,減低故障發生風險,網絡連接不設置IP地址(不能禁用,否則虛擬系統網絡無法使用),虛擬系統采用橋接模式與網絡連接(NAT模式下宿主機與網絡有連接,可被入侵)。
8 結束語
筆者并非要對虛擬化潑冷水,在虛擬化大行其道的今天,筆者更希望大家能理性看待,切勿一擁而上,應結合自己的切實需求認真分析、合理布署。截止筆者發稿時,VMware又一次站在時代的潮頭,率先推出了業界第一款云操作系統VMware vSphere 4,將數據中心轉變成極為簡化的云計算基礎架構,再一次帶給人們全新的體驗。