對于整個主機系統(tǒng),存儲可能是其中最為緩慢和復(fù)雜的一部分,并且很容易成為整個系統(tǒng)的瓶頸,這對于那些在主機上運行虛擬機的用戶,存儲可能會使得整個系統(tǒng)變得相當(dāng)緩慢。在VMware的虛擬化環(huán)境中,存儲I/O控制(Storage I/O Control)提供了必要的存儲I/O控制,并且可以確保運行關(guān)鍵業(yè)務(wù)的虛擬機性能不會被其它主機上和其共享I/O資源的虛擬機影響到。
VMware存儲I/O管理最初在vSphere4.1中引入,將vSphere的存儲資源控制提升到一個更高的標(biāo)準(zhǔn)。在vSphere5中,存儲I/O管理得到進一步增強,可以支持NFS數(shù)據(jù)存儲和集群內(nèi)的I/O共享。
在vSphere4.1之前的版本中,存儲資源控制可以在每臺主機的虛擬機級別進行設(shè)置,所使用的共享功能提供按優(yōu)先級排序的存儲資源訪問。雖然對于單臺主機這種方式可行,但很多場景下許多主機會共享數(shù)據(jù)存儲,但是由于每臺主機各自運作,控制虛擬機對磁盤資源的訪問,某臺主機上的虛擬機可能會限制其它主機上對磁盤資源的使用。
以下是一個出現(xiàn)問題的例子:
主機A有大量非關(guān)鍵業(yè)務(wù)的虛擬機,占用數(shù)據(jù)存儲1,其磁盤共享設(shè)置為“正常”。
主機B運行一個關(guān)鍵業(yè)務(wù)的SQL服務(wù)器虛擬機,同樣占用數(shù)據(jù)存儲1,其磁盤共享設(shè)置為“高”。
主機A上的非關(guān)鍵虛擬機啟動一項事物,初始了一個內(nèi)部磁盤I/O;由于主機A中的資源并不緊張,該虛擬機可以占用其所需的所有存儲I/O資源。
數(shù)據(jù)存儲1收到主機A上的虛擬機大量的I/O資源請求。
結(jié)果主機B上關(guān)鍵業(yè)務(wù)SQL虛擬機的存儲性能受到影響。
存儲I/O控制的工作機制
存儲I/O控制通過在數(shù)據(jù)存儲級別增強存儲資源控制解決這一問題,所有集群內(nèi)的主機和虛擬機訪問數(shù)據(jù)存儲時都對虛擬機進行優(yōu)先級排序后才能訪問存儲資源。因此,當(dāng)有更高優(yōu)先級的虛擬機,即使是在其它主機上,需要更多的存儲資源時,一個低或正常優(yōu)先級的虛擬機會被限速。存儲I/O控制可以在任何數(shù)據(jù)存儲上激活,并且一旦激活,會通過擁堵的閾值測量存儲子系統(tǒng)的延遲。閾值一旦達到,存儲I/O控制開始限制各主機上較低優(yōu)先級虛擬機的存儲訪問,從而確保高優(yōu)先級的虛擬機可以獲取所需資源。
在各臺激活的數(shù)據(jù)存儲上擁堵閾值的設(shè)置基于毫秒。默認的擁堵閾值設(shè)置為30毫秒,并且可以從10毫秒到100毫秒進行調(diào)整。在大多情況下用默認值就可以。在更改之前,你需要了解更改后可能引起的變化。設(shè)置值越高意味著更集中的數(shù)據(jù)吞吐量但虛擬機I/O控制將被弱化。而設(shè)置值越低可以確保更強的虛擬機I/O控制,但共享控制也將更頻繁地調(diào)用。當(dāng)設(shè)置閾值時,為了確保存儲I/O控制正常工作,需要注意的是對于同一陣列上的所有數(shù)據(jù)存儲都必須設(shè)置同一閾值。
存儲I/O控制還增加了另一項虛擬機I/O控制:這項新設(shè)置使得你可以設(shè)置每個虛擬機允許的最大IOPS。該設(shè)置性操作和共享功能無關(guān),并且基本上設(shè)置了每個虛擬機一個硬性的性能限制。要注意的一點是該限制及時在存儲資源性能十分充裕時仍對I/O進行控制;因此,其中該項設(shè)置必須謹慎。
如何激活并配置存儲I/O控制
存儲I/O控制可以通過在首頁選中Datastores目錄對象,使用vSphere客戶端激活并進行配置。
第二步,在左側(cè)面板中選擇所要激活存儲I/O控制的數(shù)據(jù)存儲,并在右側(cè)面板中點擊配置標(biāo)簽。然后點擊屬性鏈接。
一旦激活,你可以點擊高級按鈕,將閾值從默認值更改為你想要的值。
這樣存儲I/O控制就激活了,你可以根據(jù)需要調(diào)整各虛擬機的共享和IOPS設(shè)置。默認地,所有虛擬機被設(shè)置為正常的共享優(yōu)先級以及不限制IOPS的形式,因此所有虛擬機可以公平地訪問存儲。要更改默認設(shè)置,選中一個虛擬機后編輯其設(shè)置。然后在資源標(biāo)簽中選中磁盤,這樣就可以修改設(shè)置和IOPS值了。
一旦你激活了存儲I/O控制,你可以通過選中一個數(shù)據(jù)存儲,選擇性能標(biāo)簽,并在視圖下拉菜單中選擇性能來監(jiān)控存儲I/O控制。你可以看到數(shù)據(jù)存儲和各虛擬機平均的延遲和IOPS總和。
注意點
此外,還有一些地方需要注意:
存儲I/O控制在vSphere4.1或5的版本中默認是關(guān)閉的。
在vSphere4.1中,存儲I/O控制只能運作在基于數(shù)據(jù)塊的虛擬機文件系統(tǒng)(VMFS)數(shù)據(jù)存儲上(iSCSI和光纖);并不支持NFS。不過在vSphere5版本中,NFS數(shù)據(jù)存儲得以支持。
存儲I/O控制只包括在企業(yè)版的vSphere中。
激活存儲I/O控制的數(shù)據(jù)存儲必須通過單個的vCenter Server系統(tǒng)進行管理。
vCenter Server和所有連接數(shù)據(jù)存儲的主機都必須運行在vSphere4.1或更高的版本上。
在vSphere4.1或5版本中,原始設(shè)備映射(RDM)功能都不支持。
存儲I/O控制不支持數(shù)據(jù)存儲的Multiple Extent功能。
當(dāng)數(shù)據(jù)存儲后面的陣列支持自動存儲分層時,在使用存儲I/O控制之前,請點擊VMware存儲/SAN兼容性指南來驗證你的自動化分層陣列是否被存儲I/O控制功能驗證過。