
通過路徑磁盤解決Hyper-V磁盤IO性能問題
固定的和動態(tài)的虛擬硬盤(VHD:Virtual Hard Disk)在Microsoft 的Hyper-V工作環(huán)境中應(yīng)用非常廣泛,但是也有一些VHD不能達(dá)到管理員所要求的性能。
幸運的是Hyper-V也支持穩(wěn)定掛載在虛擬機(jī)主機(jī)上的
pass-through磁盤(注:根據(jù)微軟的官方文檔解釋,pass-through 磁盤是指直接分配給虛擬機(jī)的物理磁盤,由虛擬機(jī)操作)。該存儲配置和所有虛擬機(jī)存儲盤一樣,有其自身的優(yōu)點和缺點。
那么為什么還要在虛擬機(jī)存儲中使用pass-through磁盤呢?這些存儲磁盤是如何適應(yīng)所有的虛擬工作環(huán)境和策略的?本文對這些問題加以簡單說明,同時還會介紹虛擬工作環(huán)境中pass-through磁盤的最佳實踐。
使用pass-through磁盤的原因
IT管理員鑒于性能的原因選擇使用該存儲方法。因為虛擬機(jī)可以不通過抽象層就能夠訪問RAW磁盤,磁盤I/O能力可以通過
pass-through磁盤得到很大的提升。
pass-through磁盤也能夠比固定類型的VHD節(jié)省更多的磁盤空間,這是因為可以使用存儲文件的磁盤空間。該配置和動態(tài)VHD的空間使用情況相似,但是沒有空間損失。
要注意的是pass-through磁盤的增強(qiáng)速度依賴于磁盤子系統(tǒng)類型。不要使用便宜的、速度慢的存儲磁盤,卻又同時期待會帶來較高的性能水平。
如何設(shè)置pass-through磁盤?
pass-through磁盤能夠使用任何類型穩(wěn)定掛載在主機(jī)上的存儲設(shè)備,通過USB、Firewire或者外界端口連接的存儲設(shè)備不能作為pass-through磁盤使用。但是iSCSI和光纖通道以及直接掛載的存儲設(shè)備都能夠設(shè)置為pass-through磁盤。
可以在Microsoft核心項目組的博客上可以看到更多關(guān)于如何配置pass-through磁盤的信息。
主機(jī)硬件規(guī)劃
在使用pass-through磁盤之前,需要檢查一下主機(jī)硬件。在預(yù)定硬件或者架構(gòu)存儲設(shè)備時,根據(jù)預(yù)算規(guī)劃最佳的可能磁盤子系統(tǒng)。可以嚴(yán)格地使用本地存儲磁盤,但是很多連接在pass-through磁盤上的虛擬機(jī)都能夠占滿本地磁盤控制器和轉(zhuǎn)心的磁盤I/O能力。
這種場景的理想情況下,我將會推薦iSCSI或者光纖通道存儲。這是因為這兩種方法更加靈活。然而該配置要求擁有一定數(shù)量的存儲區(qū)域網(wǎng)絡(luò)基礎(chǔ)架構(gòu),以及更重要的是其它可以提供的快速存儲磁盤。最后,更多的磁盤主軸將會恰當(dāng)?shù)靥峁└玫拇疟PI/O性能。
備份基礎(chǔ)架構(gòu)規(guī)劃
使用基于主機(jī)的Hyper-V虛擬鏡像拷貝服務(wù)器寫備份(Virtual Shadow Copy Service Writer),諸如Diskshadow,對于pass-through 磁盤是不可能的。但是也有可靠的方式完成諸如此類的備份。由于主機(jī)上虛擬機(jī)的數(shù)量通常都會減少,使用更加傳統(tǒng)的備份策略,諸如在虛擬機(jī)內(nèi)安裝本地備份代理,就可以使用。隨著主機(jī)上虛擬機(jī)數(shù)量的減少,在虛擬機(jī)備份過程中主機(jī)資源飽和就不太可能了。
在SAN基礎(chǔ)架構(gòu)中,基于SAN的快照(該技術(shù)在UNIX服務(wù)器中已經(jīng)使用多年)是另外一種經(jīng)常被忽略的備份方案。另外一個備選方案就是在SAN基本針對pass-through磁盤基于SAN的快照寫腳本程序,然后掛載在可以備份到磁帶的其它任何服務(wù)器。
基于工作負(fù)載的不同,可能不得不對每一個工作負(fù)載做快照以實現(xiàn)有效的備份(例如,SQL備份工作可以確保數(shù)據(jù)庫的一致性不受到破壞)。
動態(tài)遷移和pass-through磁盤
無縫的動態(tài)遷移對于pass-through磁盤都是不可能的。但是這些存儲磁盤可以用作連接Hyper-V集群基礎(chǔ)以及和其它位于同一個集群共享卷內(nèi)的硬盤驅(qū)動選擇配對(固定的或者動態(tài)存儲磁盤)。最終的配置要比快速遷移快,但是會比動態(tài)遷移慢一些,并且可能會帶來輕微的中斷影響。
因為pass-through磁盤是Hyper-V集群中虛擬機(jī)配置的一部分,在遷移過程中這些Hyper-V集群需要卸載并且重新掛載到另外一個節(jié)點上。這需要花費一定的時間,通常情況下是三到四秒,此時虛擬機(jī)處于切換狀態(tài)并且不可訪問。
在虛擬主機(jī)中提高磁盤I/O性能
在諸多應(yīng)用場景中,管理員試圖最大化pass-through磁盤中的磁盤I/O資源,這些pass-through磁盤的工作負(fù)載比傳統(tǒng)虛擬機(jī)工作負(fù)載的系統(tǒng)需求更高。然而該設(shè)置能夠影響到虛擬化策略,最終會帶來主機(jī)上負(fù)載更少的、更強(qiáng)大的虛擬機(jī)。
常規(guī)的明智之舉都是在最大化虛擬機(jī)與主機(jī)之間的比率。但是越來越多的虛擬化架構(gòu)都負(fù)載要求更多主機(jī)資源的工作負(fù)載。該轉(zhuǎn)變策略重在強(qiáng)調(diào)管理上受益要大于提高整合率。
例如,在pass-through磁盤上運行四個虛擬機(jī)SQL服務(wù)器以獲得足夠的磁盤I/O同時運行四個物理服務(wù)器相比,是一個更好的、性價比更高的方法。該方法會帶來更好的主機(jī)資源利用率,更簡單的管理和快速的虛擬機(jī)恢復(fù)。
說服管理層采用該方案可能會遇到一定的難度,因為該方法會降低硬件費用方面的結(jié)余,該結(jié)余傳統(tǒng)方式下和較高的虛擬機(jī)主機(jī)比率有關(guān)。但是最大化主機(jī)的資源以及覆蓋通常沒有運行在同一虛擬平臺上的多虛擬機(jī)工作負(fù)載仍然是值得關(guān)注的原因。在這些場景中,通常有必要使用pass-through磁盤負(fù)載這些類型的工作負(fù)載。
pass-through磁盤在虛擬服務(wù)器基礎(chǔ)架構(gòu)中并不常用,但是對于需要特定磁盤I/O資源以保證可靠性的稅務(wù)工作負(fù)載中會非常有用。但是為每一臺主機(jī)提供更少的、功能更加強(qiáng)大的虛擬機(jī)可能是一個非常難以克服的意識中的障礙。