自從服務(wù)器虛擬化10年前進(jìn)入大家的視線,它就給存儲(chǔ)經(jīng)理人帶來(lái)了很大的麻煩。據(jù)Taneja Group最近的調(diào)查,很多這種麻煩都遠(yuǎn)沒有解決。
在最近所做的虛擬服務(wù)器存儲(chǔ)的最終用戶調(diào)查中,我們發(fā)現(xiàn)一半以上的存儲(chǔ)管理員都在他們的虛擬服務(wù)器環(huán)境中遇到了一個(gè)或者更多的下列存儲(chǔ)相關(guān)問題:
- 可擴(kuò)展性:服務(wù)器整合帶來(lái)了對(duì)存儲(chǔ)和I/O資源的爭(zhēng)奪,使得在一個(gè)系統(tǒng)上可以有效地運(yùn)行的虛擬機(jī)數(shù)量受到限制。
- 性能:由管理程序發(fā)起的在多個(gè)虛擬機(jī)上出現(xiàn)的重復(fù)的小包I/O操作所帶來(lái)的乘法效應(yīng),能夠使存儲(chǔ)性能癱瘓。
- 靈活性:在一個(gè)重度集成的環(huán)境中,平常的管理任務(wù)比如創(chuàng)建和配置一個(gè)虛擬機(jī),向新的服務(wù)器轉(zhuǎn)移負(fù)載和無(wú)間斷地在陣列之間移動(dòng)一個(gè)虛擬機(jī)磁盤文件,都可能會(huì)非常繁瑣耗時(shí)。
這些問題在一個(gè)VMware vSphere/ESX環(huán)境中又加劇了,因?yàn)閂Mware管理器驅(qū)動(dòng)存儲(chǔ)的模式對(duì)存儲(chǔ)供應(yīng)商提出了一些嚴(yán)峻的挑戰(zhàn)。VMware虛擬機(jī)文件系統(tǒng)(VMFS)成為在虛擬服務(wù)器和存儲(chǔ)之間的連接中額外的一層,使得供應(yīng)商們難于使原生的、基于陣列的存儲(chǔ)能力為VMware用戶和應(yīng)用所用。因?yàn)樽罱鄶?shù)的存儲(chǔ)操作都被vSphere/ESX用軟件模擬了,用戶不能利用陣列硬件提供的更高的性能。
顯然,適合這些功能的地方是在陣列內(nèi)部。Citrix系統(tǒng)公司在2009年發(fā)布SLtorageLink時(shí)首先演示了這個(gè)技術(shù),使得基于XenServer的應(yīng)用可以直接利用基于陣列的功能。但是VMFS層使VMware驅(qū)動(dòng)的應(yīng)用無(wú)法完全使用陣列的能力。
幸運(yùn)的是,通過vSphere 4.1的vStorage,VMware給存儲(chǔ)廠家提供了自己處理這些存儲(chǔ)事務(wù)的辦法。vStorage API for Array Integration--陣列集成vStorage API(VAAI)被設(shè)計(jì)來(lái)改善主存儲(chǔ)集成。通過移出虛擬機(jī)應(yīng)該由存儲(chǔ)級(jí)別進(jìn)行的操作--例如存儲(chǔ)vMotion,虛擬機(jī)配置和克隆--VAAI使存儲(chǔ)供應(yīng)商可以應(yīng)對(duì)那些可能妨礙了VMware服務(wù)器虛擬化的存儲(chǔ)問題。我們來(lái)看看VMware特定的存儲(chǔ)問題還有主要存儲(chǔ)供應(yīng)商現(xiàn)在提供的VAAI能力如何應(yīng)對(duì)這些問題。
1、LUN級(jí)別鎖定引起的受限的虛擬機(jī)擴(kuò)展性。在較早版本的vSphere和ESX服務(wù)器中,類似創(chuàng)建、遷移和對(duì)VM做快照的操作每次訪問共享的存儲(chǔ)都會(huì)使得一整個(gè)LUN被預(yù)留。管理器通過使用SCSI預(yù)留來(lái)實(shí)現(xiàn)LUN級(jí)別的鎖定操作,這需要多個(gè)SCSI命令。不幸的是,LUN在被鎖定的時(shí)候?qū)ζ渌摂M機(jī)不可用,結(jié)果就是資源爭(zhēng)奪和性能的降低。
一個(gè)VAAI的功能HAL(Hardware Assisted Locking─硬件輔助的鎖定)使得存儲(chǔ)可能使用一個(gè)高效的SCSI命令,以塊級(jí)別進(jìn)行鎖定,而不是以卷(LUN)級(jí)別進(jìn)行。同時(shí)訪問降低爭(zhēng)奪; 一個(gè)LUN上的多個(gè)虛擬機(jī)不再陷入一個(gè)一次次鎖定和解鎖LUN的延遲競(jìng)爭(zhēng)里。更重要的是,這會(huì)解放管理員去在忙時(shí)做更大范圍的存儲(chǔ)密集型事務(wù)(克隆、快照、格式化等等),而不會(huì)影響應(yīng)用的性能。
2、低效和重復(fù)的寫操作。在VAAI之前,很多的vSphere常用操作,包括從模板配置虛擬機(jī)以及擴(kuò)展一個(gè)精簡(jiǎn)配置的虛擬磁盤(VMDK),與塊級(jí)存儲(chǔ)之間的交互都很低效。vSphere/ESX會(huì)通過重復(fù)地執(zhí)行SCSI寫操作和在網(wǎng)絡(luò)中傳送一堆零來(lái)把空的數(shù)據(jù)塊(全零)寫到陣列中。
而通過VAAI的新的零塊功能,構(gòu)建全零數(shù)據(jù)塊的工作量可以被卸載到陣列上,降低服務(wù)器產(chǎn)生的I/O和傳輸?shù)臄?shù)據(jù)。當(dāng)VMFS遇到全零的數(shù)據(jù)塊時(shí),寫操作可以被替換為一個(gè)SCSI WRITE_SAME命令,這個(gè)命令包括了一個(gè)扇區(qū)的數(shù)據(jù)以及一個(gè)這個(gè)扇區(qū)應(yīng)該在磁盤上被重復(fù)多少次的計(jì)數(shù)器,更有用的是在陣列上的精簡(jiǎn)配置技術(shù)可以識(shí)別輸入的全零寫操作并徹底地避免向磁盤上寫入空數(shù)據(jù)。
3、又慢又耗資源的虛擬機(jī)克隆和數(shù)據(jù)遷移。在vSphere和ESX的較早版本中VMware拷貝操作,例如虛擬機(jī)克隆和存儲(chǔ)vMotion都是通過使用上百萬(wàn)的背對(duì)背、小塊I/O操作實(shí)現(xiàn)的,小數(shù)據(jù)塊從陣列移動(dòng)到主機(jī)(通過SCSI READ讀命令)又移動(dòng)回去(通過SCSI WRITE寫命令)。這個(gè)方式極度I/O集中而且消耗大量的物理服務(wù)器和網(wǎng)絡(luò)資源。
VAAI Full Copy完全拷貝功能將其徹底改變了。和全零塊操作類似,完全拷貝可以完全在陣列內(nèi)部執(zhí)行塊操作(復(fù)制或者移動(dòng)),使用SCSI Extended Copy(XCopy 擴(kuò)展拷貝)命令而不用牽扯到主機(jī)。擴(kuò)展拷貝使服務(wù)器硬件I/O最少化并降低網(wǎng)絡(luò)帶寬的使用,擴(kuò)展拷貝操作還可以執(zhí)行的明顯更快速。存儲(chǔ)控制器可以使用它們?nèi)康膬?nèi)部帶寬,優(yōu)化的機(jī)制和對(duì)負(fù)載的感知來(lái)以最高的效率移動(dòng)數(shù)據(jù),而不需不必要地使用控制器寶貴的緩存。
vSphere 4.1中的vStorage套件包括了大大超出主要存儲(chǔ)的功能,包括了可以實(shí)現(xiàn)更好的備份處理的機(jī)制,深層快照或者連續(xù)數(shù)據(jù)保護(hù)集成以及更多。如果你是一個(gè)VMware用戶,vStorage是一個(gè)很好的理由來(lái)考慮使用vSphere 4.1.vStorage可能會(huì)在你數(shù)據(jù)存儲(chǔ)基礎(chǔ)架構(gòu)符合你的虛擬架構(gòu)需求的程度方面產(chǎn)生很大的變化。不管你是在考慮主要存儲(chǔ)、數(shù)據(jù)保護(hù)、復(fù)制還是一些你的架構(gòu)的別的部分,你應(yīng)該特別問問你的存儲(chǔ)供應(yīng)商,他們是否能使用vStorage和VAAI功能。