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