如何使用QoS管理分配存儲IOPS?

責任編輯:editor005

作者:Brien Posey

2016-07-20 14:19:20

摘自:TechTarget中國

摘要:盡管任何硬件資源都有可能成為影響虛擬機性能的瓶頸,但存儲IOPS往往是限制因素之一。輸入如下命令可以啟用運行在當前Hyper-V服務(wù)器上所有虛擬機的資源消耗計量:Get-VM | Enable-VMResourceMetering 

盡管任何硬件資源都有可能成為影響虛擬機性能的瓶頸,但存儲IOPS往往是限制因素之一。因為存儲IOPS往往供不應(yīng)求,所以虛擬化廠商提供了允許管理員限制虛擬機存儲I/O消耗的功能。然而高效率地使用上述功能的關(guān)鍵是了解存儲IOPS當前是如何在虛擬機之間分配的。

每個hypervisor廠商都有各自的測量并分配存儲IOPS的方式。以微軟Hyper-V為例,調(diào)節(jié)存儲IOPS消耗的主要機制借助于QoS管理功能,該功能往往被稱為存儲QoS。

使用QoS管理

QoS管理設(shè)置基于單塊虛擬硬盤。如圖A所示,該功能可以被用于限制虛擬機消耗更少的存儲IOPS。作為一個替代方案,QoS管理可以被用于為虛擬機預(yù)留存儲IOPS,這樣就可以保證虛擬機能夠獲得的最小IOPS值——如果有更多可用的IOPS,那么虛擬機能夠使用的IOPS將相應(yīng)增加。

如何使用QoS管理分配存儲IOPS?

  圖A. 虛擬硬盤QoS管理配置界面

QoS管理功能允許管理員基于單塊虛擬硬盤預(yù)留存儲IOPS或者對其進行限制。

盡管QoS管理功能很便利,但只有管理員知道可用的存儲IOPS有多少以及當前使用情況時,該功能才能夠派上用場。不幸的是,Hyper-V Manager并沒有提供該信息,但可以使用PowerShell檢索與Hyper-V相關(guān)的存儲性能信息。

虛擬機指標追蹤

PowerShell提供了一個名為Measure-VM的cmdlet,使你能夠追蹤各類虛擬機指標。在能夠使用該cmdlet前,需要啟用虛擬機的資源消耗計量。輸入如下命令可以啟用運行在當前Hyper-V服務(wù)器上所有虛擬機的資源消耗計量:Get-VM | Enable-VMResourceMetering

輸入如下命令可以確認是否已經(jīng)啟用了虛擬機的資源消耗計量:

Get-VM | Select-Object Name, ResourceMeteringEnabled

啟用虛擬機的資源消耗計量并且生成了一些計量數(shù)據(jù)后,你可以使用Measure-VM cmdlet顯示虛擬機的資源使用情況。例如,如果你想針對所有虛擬機使用默認的資源計量數(shù)據(jù),可以輸入如下命令:

Get-VM | Measure-VM

圖B顯示了啟用虛擬機計量、確認虛擬機計量以及用以及顯示默認計量數(shù)據(jù)的過程。

如何使用QoS管理分配存儲IOPS?

  圖B:你可以使用Measure-VM cmdlet顯示虛擬機計量數(shù)據(jù)

如上圖所示,資源計量機制運轉(zhuǎn)良好,顯示值為零表明虛擬機未啟動。然而問題是并沒有顯示與存儲IOPS相關(guān)的信息。

顯示IOPS數(shù)據(jù)

盡管Measure-VM cmdlet默認沒有顯示存儲IOPS數(shù)據(jù),但可以做到。實際上,cmdlet可以顯示每臺虛擬機的IOPS平均值、平均延遲情況、磁盤數(shù)據(jù)寫入以及磁盤數(shù)據(jù)讀取情況。

只需要在Measure-VM cmdlet后追加 Select-Object參數(shù)就可以顯示上述數(shù)據(jù),然后指定你想顯示的指標即可。然而,務(wù)必牢記在生產(chǎn)環(huán)境中虛擬機往往位于使用共享存儲的故障切換集群中。因此全面獲取IOPS數(shù)據(jù)的唯一方式是查看所有服務(wù)器上的所有虛擬機??梢試L試利用如下命令創(chuàng)建一個簡單的腳本:

$Servers = "Hyper-V-4", "Prod1"

ForEach ($Server in $Servers){

$VMs = Get-VM

ForEach ($VM in $VMs){

$VM | Measure-VM | Select-Object VMName, ComputerName, AggregatedAverageNormalizedIOPS, AggregatedAverageLatency, AggregatedDiskDataRead, AggregatedDiskDataWritten | Format-List

}

}

腳本的第一行列出了將要被監(jiān)控的每臺Hyper-V主機的名字。簡單起見,這里只列出了兩臺服務(wù)器,但你通常要輸入所有Hyper-V服務(wù)器的名字。該腳本使用循環(huán)檢查所有的服務(wù)器,每次檢查一臺。然后嵌套循環(huán)檢索并顯示當前服務(wù)器上所有虛擬機的性能數(shù)據(jù)。你可以看到圖C中腳本的部分輸出結(jié)果。腳本列出了每臺虛擬機的性能數(shù)據(jù)、虛擬機名以及虛擬機當前所在的主機服務(wù)器。

圖C. 腳本顯示虛擬機的存儲性能數(shù)據(jù)

Hypervisor功能,比如QoS管理有助于分配存儲IOPS。然而為了高效率地使用該功能,你需要知道IOPS目前的使用情況。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號