通過存儲性能指標,可以評估監控存儲系統支持服務器虛擬化環境的具體情況,這一過程中有許多因素要考慮。
服務器虛擬化的存儲配置可以是Hypervisor或基于網絡的文件或數據塊的存儲設備。當存儲配置為Hypervisor,Hypervisor控制著訪問許可,問題是兩者之間的關系是,對于Hypervisor的任何影響都會影響到Hypervisor上運行的應用上性能指標,并且理解其對于 Hypervisor的整體影響,非常重要。
配置為Hypervisor的存儲對虛擬機而言就像是個SCSI設備,而通過網絡提供的存儲需要額外的驅動器,這和iSCSI類似。
Hypervisor配置的存儲可以是光纖,iSCSI,NFS(在Hyper-V環境下為CIFS)或本地存儲,不過當虛擬機連接存儲設備時,存儲以一般的SCSI設備形式工作,因此虛擬機使用客戶端操作系統中通常的SCSI驅動器。Hypervisor將標準虛擬機SCSI驅動器的二進制指令翻譯成光纖,iSCSI,NFS或本地SCSI設備可以識別的協議。二進制編解碼的操作通過Hypervisor或使用Intel VT-x或AMD RVI指令結構的處理器完成。不管何種方式,虛擬機將存儲識別為SCSI,而Hypervisor會將存儲完全視為別的東西。
性能指標及解釋方式
以下三種方式是常用的虛擬存儲的性能指標方式:
通過客戶端操作系統測試存儲性能指標
通過Hypervisor測試存儲性能指標
通過存儲郵件測試存儲性能指標
每一種指標對應某種測試目的,不過有時也會引起誤導。一些指標結果可能不會反映真實結果。
最不可靠的測試方式就是通過客戶端操作系統反饋的信息,虛擬機并不需要接受整個處理器時鐘周期,其中所含的數據并不準確。其實,涉及虛擬機處理器時鐘周期的測試很難準確,因為虛擬機可能或可能不會接收整個處理器時鐘。不過一些虛擬機的性能指標和處理器時鐘周期無關,而這些性能指標是可信的。
通過Hypervisor的存儲性能指標是較為可信的,也經常會用以測試中,不過這種指標同樣會引起誤導,因為測試數據可能在緩存或Hypervisor的隊列中。
余下的基于存儲硬件的指標是最為理想的,因為每家硬件供應商都會提供最為細致的數據,甚至細致到磁盤軸的速度。在許多情況下,這一數據和通過 Hypervisor測試得到的數值是一樣的,僅在高延遲的子系統會產生不同結果。不幸的是,并非所有的硬件系統供應商會公布這一數據,這種情況下你必須關注Hypervisor測試所得的信息,比較虛擬機得出的數據太不可靠了。
從虛擬化存儲硬件層看,最重要的指標是讀寫延遲值,或者特定層面讀取或寫入磁盤所需的時間。其次重要的指標就是IOPS值。不過你不能只看著IOPS而對每秒的讀寫Kbps不聞不問。IOPS反映了操作層的性能;而Kbps反映的則是系統的實際讀寫性能。無論從Hypervisor或存儲設備上看,IOPS是通常最受關注的指標,不過延遲才是最佳指標,其反映了存儲是否存在問題。IOPS值會隨著寫入的數據塊數量發生變化,并且在NFS或CIFS系統中,由于協議中未包含延遲指標,IOPS值很難獲取。
有哪些可用工具呢?
為了獲取所有這些存儲性能指標,你可以借助NetApp的Balance,SolarWindshield的Storage Manager,Quest的vFoglight Storage和其它直接和硬件通訊的產品。這類產品可以通過存儲管理接口標準(SMI-S)或直接通過存儲廠商協議檢測存儲硬件層。
對于Hypervisor層,可以使用如VMware vCenter Operation、vKernel、VMturbo和Quest vFoglight這類的工具,通過直接詢問Hypervisor或間接使用Hypervisor的集中管理控制臺,比如VMware vCenter監測Hypervisor層。
最后,客戶端操作系統提供自身的工具來收集存儲性能指標。
整合了存儲管理接口標準和基于Hypervisor的工具提供了最佳的功能組合來診斷延遲,IOPS和讀寫速度。因為只要Hypervisor不是在機器繁忙的狀態,這些工具所提供的數據幾乎是與其同步的。而在Hypervisor極度繁忙的情況下,硬件指標可能是反映存儲性能的最佳選擇。但是,由于 Hypervisor中的資源相互關聯,確保Hypervisor沒有達到極度繁忙的狀態總是必要的。
如果你的環境中并沒有存儲層的工具,比如在一些iSCSI服務器環境中,基于Hypervisor的工具或許是最佳選擇。