在VMware ESX 3時(shí)代,很多IT人員對(duì)瘦虛擬磁盤(它可以隨著寫入數(shù)據(jù)的增加而自動(dòng)增長(zhǎng))的使用持保留意見。大家認(rèn)為精簡(jiǎn)盤的性能表現(xiàn)不能跟容量固定的“胖虛擬磁盤”相比。
盡管大量針對(duì)瘦虛擬磁盤的研究都表明幾乎沒有性能損耗。現(xiàn)在VMware在vSphere的用戶界面中也開始支持精簡(jiǎn)盤的創(chuàng)建,自動(dòng)精簡(jiǎn)配置功能的使用范圍需要被重新規(guī)劃已經(jīng)成為流行的觀點(diǎn)。
本文中,TechTarget中國(guó)特約專家Mike Laverick剖析了幾點(diǎn)關(guān)于瘦虛擬磁盤的常見誤解及其實(shí)際使用案例,包括如何克服自動(dòng)精簡(jiǎn)配置的一些問題。
對(duì)自動(dòng)精簡(jiǎn)配置的誤解
用戶不接受瘦虛擬磁盤是考慮到會(huì)給虛擬機(jī)帶來大量的額外IOPS壓力——盡管研究表明胖磁盤可以帶來的性能改善微乎其微。不過用戶還是習(xí)慣在一些IOPS壓力很小或幾乎沒有(例如域名服務(wù)器和DHCP服務(wù)器等)的虛擬機(jī)上使用精簡(jiǎn)盤。
我并不認(rèn)同這種做法。自動(dòng)精簡(jiǎn)配置可以節(jié)省大量的磁盤空間并省去管理員在考慮“該為虛擬機(jī)分配多大磁盤空間”等問題時(shí)的煩惱。
在瘦虛擬磁盤還不太普及的時(shí)候,傳統(tǒng)的磁盤如果設(shè)置太大會(huì)帶來存儲(chǔ)空間浪費(fèi);太小的話虛擬機(jī)所需的空間增大時(shí)又會(huì)產(chǎn)生溢出。這在存儲(chǔ)空間非常有限的實(shí)驗(yàn)室環(huán)境下是經(jīng)常會(huì)遇到的。
克服自動(dòng)精簡(jiǎn)配置的相關(guān)問題
這并非指自動(dòng)精簡(jiǎn)配置就沒有任何潛在問題。如果您對(duì)陷阱了解不夠的話,瘦磁盤會(huì)帶來災(zāi)難性后果。例如,經(jīng)常出現(xiàn)的情況是創(chuàng)建的虛擬磁盤占滿了分配的LUN/卷大小。假設(shè)創(chuàng)建了10臺(tái)虛擬機(jī),每臺(tái)配有40GB大小的精簡(jiǎn)盤。最初,精簡(jiǎn)盤消耗的只是很少的幾MB空間,但是當(dāng)這些磁盤全都寫滿時(shí)總計(jì)需要400GB的物理空間。這樣,如果設(shè)置的LUN/卷空間大小只有350GB時(shí),事情變得非常糟糕。
這種情況并非不可能。有很多看起來不起眼的虛擬機(jī)任務(wù)會(huì)導(dǎo)致瘦磁盤的空間快速膨脹。首先,請(qǐng)注意一下在Windows系統(tǒng)內(nèi)部您是如何格式化磁盤的。在Windows中,我們被告知不要使用快速格式化功能,因?yàn)樗诤芏喹h(huán)境下都會(huì)降低磁盤讀寫性能。
但如果對(duì)精簡(jiǎn)盤使用完整格式化,該過程會(huì)寫入虛擬磁盤的每個(gè)扇區(qū)——這樣精簡(jiǎn)盤的空間就快速增長(zhǎng)到最大容量。這傳達(dá)了一個(gè)信息:對(duì)于精簡(jiǎn)盤在Windows系統(tǒng)中要使用快速格式化方法。
圖1

我的精簡(jiǎn)盤無法壓縮
還有一些可能導(dǎo)致精簡(jiǎn)盤快速膨脹的操作,包括VMware Tool中的壓縮功能——用于刪除文件釋放磁盤空間。在虛擬機(jī)被制作完成并用作模板之前,我通常會(huì)建議用戶對(duì)磁盤進(jìn)行碎片整理并運(yùn)行壓縮功能,以達(dá)到磁盤優(yōu)化的目的。
當(dāng)在Windows中進(jìn)行刪除文件操作的時(shí)候,數(shù)據(jù)并沒有從磁盤中被真正刪除。只不過是在文件系統(tǒng)中做了標(biāo)記而已。這樣的話,即使是被刪除的文件依然會(huì)占用磁盤空間。
圖2

壓縮功能并非適用于所有的虛擬磁盤類型或操作系統(tǒng)。根據(jù)使用的VMware Tools版本不同,某些情況下可能被禁用。
考慮到這樣的過程,碎片整理和壓縮功能在精簡(jiǎn)盤上起不到任何作用。這兩個(gè)操作都會(huì)四處移動(dòng)文件并執(zhí)行寫入操作,這些都會(huì)增加精簡(jiǎn)盤的大小。而且您還會(huì)發(fā)現(xiàn)在受影響的虛擬機(jī)內(nèi)無法使用壓縮功能。
如果您的某個(gè)任務(wù)進(jìn)程經(jīng)常定期執(zhí)行創(chuàng)建和刪除大文件的操作,那么精簡(jiǎn)盤很快就會(huì)增長(zhǎng)起來,而且這部分剩余空間還無法還原到存儲(chǔ)陣列中。那么我們?nèi)绾尾拍芑厥者@部分磁盤空間?通過SDelete命令加上-c作為參數(shù)可以安全地把虛擬機(jī)內(nèi)被刪除的文件清除掉。
這個(gè)操作會(huì)導(dǎo)致虛擬磁盤臨時(shí)增大。但是如果使用了VMware的Storage vMotion和精簡(jiǎn)盤功能,就可以把虛擬磁盤壓縮到實(shí)際空間大小。過程麻煩但很有效。
我希望VMware可以在數(shù)據(jù)存儲(chǔ)瀏覽終端中添加壓縮功能,包括擴(kuò)充選項(xiàng)(該擴(kuò)充選項(xiàng)用于把瘦磁盤轉(zhuǎn)化為胖磁盤)。
隨著VMware和存儲(chǔ)合作伙伴合作的加深,這個(gè)問題最終可以解決,并通過vStorage API添加更多新的功能。這樣存儲(chǔ)陣列就可以知道虛擬機(jī)內(nèi)哪些文件被刪除了,然后對(duì)相應(yīng)的空間進(jìn)行釋放以顯示磁盤的實(shí)際空間大小。
即使這樣,如果虛擬機(jī)經(jīng)常定期進(jìn)行創(chuàng)建和刪除大文件操作,依然要考慮堅(jiān)持對(duì)該虛擬機(jī)使用胖虛擬磁盤方式。
原文鏈接:http://www.searchvirtual.com.cn/showcontent.aspx?aid=45775


