即使一個(gè)磁盤(pán)陣列有完善的全零頁(yè)回收能力,那也只是在有大量的0數(shù)據(jù)寫(xiě)入時(shí)才有用。這就意味著要委托服務(wù)器端必須寫(xiě)0填充那些不再使用的空間,而這對(duì)于服務(wù)器端來(lái)說(shuō)并不是一個(gè)典型的默認(rèn)的操作。因此多數(shù)操作系統(tǒng)都需要一個(gè)命令,像Windows里邊的“sdelete –c“或者有類(lèi)似NetApp SnapDrive的東西去執(zhí)行這個(gè)操作,當(dāng)然只是偶爾才運(yùn)行一次。
還有些應(yīng)用程序,像VMware ESX的數(shù)據(jù)卷,在創(chuàng)建新空間時(shí)就會(huì)用全零位填充,而ESX的命令“eagerzeroedthick“甚至能夠?qū)⒖臻g清除。另外,盡管還存在一些兼容性的問(wèn)題,但在VMotion應(yīng)用上,ESX顯然正在變得越來(lái)越“精簡(jiǎn)”。ESX 4.1版本中增加的VAAI(vStorage APIs for Array Intergration)內(nèi)嵌了“block zeroing”功能,可以支持多款指定的存儲(chǔ)產(chǎn)品。ESX使用支持T10 ”WRITE_SAME”命令的插件(plug-in,插件既可以是定制的,亦或是通用的)給后端的磁盤(pán)陣列發(fā)信號(hào),告知陣列去釋放那些VMFS不再占用的空間。
Symantec也是率先支持自動(dòng)精簡(jiǎn)配置的廠(chǎng)商。他們有Veritas Thin Reclamation API,該API集成在Veritas Storage Foundation產(chǎn)品中,可以廣泛的支持大多數(shù)主流的存儲(chǔ)陣列。它使用多種通信機(jī)制去釋放不需要的空間,并且與VxFS文件系統(tǒng)和volume manager產(chǎn)品完全集成在一起。Storage Foundation還包含一個(gè)SmartMove遷移工具,該工具可以幫助精簡(jiǎn)陣列只轉(zhuǎn)移那些包含實(shí)際數(shù)據(jù)的塊。
精簡(jiǎn)技術(shù)在其他系統(tǒng)中也在同步發(fā)展。有一個(gè)標(biāo)準(zhǔn)的ATA TRIM命令,可以發(fā)送精簡(jiǎn)回收的信號(hào),就像SCSI協(xié)議里對(duì)應(yīng)的UNMAP命令一樣。不過(guò)TRIM主要是用來(lái)支持固態(tài)存儲(chǔ)。Microsoft和 Linux現(xiàn)在都支持TRIM,因此在未來(lái)同樣能夠增加對(duì)自動(dòng)精簡(jiǎn)配置的支持,這些操作系統(tǒng)公司還可以改進(jìn)其文件系統(tǒng)中關(guān)于存儲(chǔ)分配和釋放的機(jī)制。
越來(lái)越精簡(jiǎn)
自動(dòng)精簡(jiǎn)配置技術(shù)并非沒(méi)有爭(zhēng)議,但是好處也很多。它是少數(shù)幾個(gè)真正可以提升存儲(chǔ)實(shí)際利用率的技術(shù)之一,即便問(wèn)題的核心可能與技術(shù)無(wú)關(guān)。雖然精簡(jiǎn)配置技術(shù)掩飾存儲(chǔ)空間局限性的能力以及分配空間的過(guò)程尚存某些負(fù)面的因素,但隨著技術(shù)的改進(jìn),以及精簡(jiǎn)回收工作越來(lái)越自動(dòng)化,未來(lái)在企業(yè)級(jí)存儲(chǔ)領(lǐng)域,該技術(shù)必將成為重要的標(biāo)準(zhǔn)。
對(duì)于自動(dòng)精簡(jiǎn)配置應(yīng)用,我們應(yīng)該關(guān)注什么?
在評(píng)估一個(gè)支持自動(dòng)精簡(jiǎn)配置的存儲(chǔ)陣列的時(shí)候,請(qǐng)仔細(xì)考慮下面的問(wèn)題。這些問(wèn)題總體上反映了我們各個(gè)方面的疑慮。注意,并不是所有情況下全部因素都必須考慮。
• 自動(dòng)精簡(jiǎn)配置功能是包含在磁盤(pán)陣列的基礎(chǔ)報(bào)價(jià)中,還是一個(gè)需要單獨(dú)付費(fèi)的option?
• 磁盤(pán)陣列是否支持全零頁(yè)回收?以及回收進(jìn)程運(yùn)行的頻率?
• 頁(yè)面的大小或精簡(jiǎn)配置增量分配的大小是多少?
• 快照、鏡像和復(fù)制操作是否支持自動(dòng)精簡(jiǎn)配置?是否支持從非精簡(jiǎn)配置復(fù)制到精簡(jiǎn)配置?
• 當(dāng)磁盤(pán)陣列空間寫(xiě)滿(mǎn)之后會(huì)出現(xiàn)什么情況?報(bào)警、釋放空間以及掛起寫(xiě)操作的流程是什么?
• 磁盤(pán)陣列是否支持WRITE_SAME命令?是否支持SCSI UNMAP或ATA TRIM命令?
• 是否有可與該磁盤(pán)陣列集成的支持“block zeroing”的VAAI插件?是否是基于T10的插件,還是為該產(chǎn)品系列定制的插件?
空間浪費(fèi)的根源
一個(gè)DBA想:“我可能需要500GB或更多的空間給應(yīng)用程序“,為了穩(wěn)妥起見(jiàn),他向存儲(chǔ)管理員要了1TB的空間。而存儲(chǔ)管理者們則保有同樣的想法,為了讓DBA滿(mǎn)意的離開(kāi),因此他們給DBA分配了2個(gè)TB的存儲(chǔ)資源。類(lèi)似的故事經(jīng)常用來(lái)形容存儲(chǔ)空間利用率的糟糕狀況,但這是全部真實(shí)情況嗎?
在大多數(shù)企業(yè)存儲(chǔ)環(huán)境中,低下的空間利用率可能有許多原因:
? 年度和項(xiàng)目預(yù)算周期制度導(dǎo)致了超買(mǎi)情況的發(fā)生,有些超買(mǎi)的存儲(chǔ)空間也許永遠(yuǎn)不會(huì)用到。
? 無(wú)效的資源監(jiān)測(cè)和容量計(jì)劃過(guò)程并不能搞清楚真實(shí)的空間需求。
? 存儲(chǔ)網(wǎng)絡(luò)不夠完善,導(dǎo)致部分空間資源無(wú)法分配給需要空間的服務(wù)器。
? 不連續(xù)的空間劃撥過(guò)程導(dǎo)致有些空間雖然被分配,但可能永遠(yuǎn)也無(wú)法被用到。
? 操作系統(tǒng)和文件系統(tǒng)缺乏靈活性,當(dāng)存儲(chǔ)需求改變時(shí),難以擴(kuò)展或收縮。
以上列舉的許多問(wèn)題,使用自動(dòng)精簡(jiǎn)配置都是有效的,但它也并非萬(wàn)能。如果采購(gòu)流程和容量計(jì)劃做的很差,那么精簡(jiǎn)技術(shù)的很多優(yōu)點(diǎn)也無(wú)從發(fā)揮。如果多個(gè) 孤立的SAN和SAN之間無(wú)法訪(fǎng)問(wèn),那么其中的空閑空間也無(wú)法利用。但這里要強(qiáng)調(diào)的是,一個(gè)系統(tǒng)即使只具備最基本的自動(dòng)精簡(jiǎn)配置功能,那么對(duì)于改善閑置空 間的利用率也將大有幫助。