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