Windows Server 2016軟件定義存儲之存儲QoS


 存儲QoS簡介sql

Windows Server 2016文件服務器和Hyper-V羣集默認集成了存儲QoS功能,基於羣集存儲空間的存儲不管是SOFS SMB共享仍是CSV都支持存儲QoS,存儲QoS經過策略應用到Hyper-V羣集上的虛機。文件服務器羣集裏默認開啓QoS策略管理器,用於集中監視存儲性能,保存在SMB或者CSVHyper-V虛機被策略管理器監視着。策略管理器和Hyper-V服務器造成一個存儲QoS策略優化的閉環來反饋調節QoS,策略管理器保持着和Hyper-V溝通存儲QoS策略、限制及保留信息,Hyper-V按照QoS策略縮放虛機VHDX的存儲性能。若是存儲QoS策略有更新的時候,策略管理器指揮Hyper-V對虛機虛擬硬盤QoS進行調整。存儲QoS策略優化的閉環保證全部虛機的虛機硬盤遵循存儲QoS策略,如圖1所示。服務器

wKiom1jTQB_jZCVyAAF_kqm8VBk242.jpg-wh_50

1 存儲QoS邏輯結構圖
ide

 

設置存儲QoS性能

Windows Server 2016 故障轉移羣集配置了CSV後,存儲QoS功能自動啓動,無需額外配置。在羣集裏添加可用的磁盤爲CSV後,存儲QoS資源便會在羣集核心資源裏顯示。能夠經過故障轉移羣集管理器或者PowerShell查看存儲QoS資源。一樣,Windows Server 2016 啓用Hyper-V角色之後也會自動啓動存儲QoS功能,如圖2所示。優化

wKioL1jTQCDA8_4RAABhc_OCT24339.jpg-wh_50 

2 Windows Server 2016羣集存儲QoS資源ui

 

檢索文件流和卷的存儲QoSspa

咱們已經配置好S2D和超融合結構,在其CSV裏存儲着若干運行着的虛機,可以使用PowerShell命令查看全部虛機文件流的IOPS和帶寬狀況,以下示例所示。3d

PS C:\>  Get-StorageQoSflow |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=」File」}  -AutoSize      
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File    
------------     ----------     ----------     ---------------    ----    
SQL14        0         0         1           sql14.vhdx    
VMM16        0         0         3           vmm16.vhdx     
WS16-VM01      0         0         1           WS16-VM01.vhdx    
WS16-VM02      0         0         1           WS16-VM02.vhdx

除了能夠查看虛機級別的QoS流的狀況外,還能夠查看卷(這裏指的是羣集共享卷)級別的QoS信息,使用PowerShell命令Get-StorageQoSVolume檢索CSV QoS配置狀況,以下示例所示。 
orm

PS C:\> Get-StorageQoSVolume |fl      
Bandwidth          : 0    
BandwidthLimit       : 0    
Interval          : 300000    
IOPS            : 0    
Latency           : 0    
Limit            : 0    
Mountpoint          : C:\ClusterStorage\Volume1\    
Reservation         : 0    
Status           : Ok    
TimeStamp          : 8/5/2016 5:14:23 PM    
VolumeId          : 2406be47-4757-4b75-a193-c874b69c0e8c    
MaximumIops         : 0    
MinimumIops         : 0


建立存儲QoS策略blog

       在規劃好虛機QoS策略類型和QoS策略具體參數後,第一步先建立存儲QoS策略,能夠使用PowerShell命令New-StorageQoSPolicy設置專有和共享QoS策略。咱們先建立一個名爲HighPerf的專有QoS策略,最小IOPS設置爲200,最大爲800,不設置吞吐帶寬。

PS C:\> New-StorageQosPolicy -Name  HighPerf -PolicyType Dedicated -MinimumIops 200 -MaximumIops 800

使用PowerShell命令Get-StorageQoSPolicy獲取QoS策略,以下示例所示。

PS C:\> Get-StorageQosPolicy     
Name     MinimumIops    MaximumIops    MaximumBandwidth    Status    
----     ----------     ----------     ---------------     ------    
Default    0         0         0 MB/s         OK    
HighPerf   200        800        0 MB/s         OK

接着建立一個名爲MediumPerf的共享QoS策略,設置最小IOPS100,最大爲400,不設置吞吐帶寬。

PS C:\> New-StorageQosPolicy -Name  MediumPerf -PolicyType Aggregated -MinimumIops 100 -MaximumIops 400

到此咱們已經建立了兩個不一樣大小的存儲QoS策略,以下示例所示。

PS C:\> Get-StorageQosPolicy     
Name        MinimumIops      MaximumIops      MaximumBandwidth      Status    
----        ----------       ----------       ---------------       ------    
Default       0           0           0 MB/s            OK     
MediumPerf     100          400          0 MB/s            OK    
HighPerf      200          800          0 MB/s            OK

接下來咱們將選取兩臺虛機分配存儲QoS策略,一臺虛機只有一個VHDX文件,這臺虛機須要IOPS;另一臺虛機有三個VHDX文件,這臺虛機只須要中等IOPS,並且三個VHDX共享一個存儲QoS策略。

 

分配存儲QoS策略

首先將名爲HighPerf的專有策略分配給一臺SQL Server虛機,使用PowerShell命令進行分配便可。在分配以前須要使用以下命令定義變量並獲取存儲QoS策略的ID,存儲QoS策略ID將在分配QoS策略時做爲QoSPolicyID要賦予的值。

PS C:\> $HighPerfQoS=Get-StorageQoSPolicy | ? Name -eq HighPerf
PS C:\> $HighPerfQoS.PolicyId
 
Guid
----
6b56f995-08d1-4bb0-9eaa-96f6de29a2ab

使用PowerShell命令將策略應用到選擇的SQL Server虛機,QoSPolicyID這個參數後接名爲HighPerfQoS策略ID

PS C:\> Get-VM -Name SQL14 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID  6b56f995-08d1-4bb0-9eaa-96f6de29a2ab

  分配完畢,打開分配了QoS策略的虛機的設置窗口。你們會發現,咱們以往在Hyper-V虛機設置窗口裏直接對VHDX虛擬硬盤進行IOPS的最大最小值進行設置,可是應用了QoS策略的VHDX虛擬硬盤並無顯示QoS策略所定義的IOPS最大及最小值,取而代之的是QoS策略ID,如圖3 所示。

wKiom1jTQCGgQMeMAAC6KG09slY818.jpg-wh_50 

3 查看虛機分配的QoS策略ID

       雖然在設置窗口看不到直觀的IOPS值,可是要查看虛機分配QoS策略以後是否生效以及生效後虛機磁盤QoS值,能夠運行Get-StorageQoSflow命令查看,示例命令和結果以下。

PS C:\> Get-StorageQoSflow |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=」File」}  -AutoSize      
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File    
------------     ----------     ----------     ---------------    ----    
SQL14        200         800        0           sql14.vhdx    
VMM16        0         0         0           vmm16.vhdx    
WS16-VM01      0         0         1           WS16-VM01.vhdx    
WS16-VM02      0         0         1           WS16-VM02.vhdx

接着將名爲MediumPerf的共享QoS策略分配給一臺具備三塊VHDX虛擬磁盤的虛機,一樣使用PowerShell命令進行。在分配以前須要定義變量獲取存儲QoS策略的ID,以下示例所示,存儲QoS策略ID將在分配QoS策略時做爲QoSPolicyID後接參數值使用。

PS C:\> $MediumPerf=Get-StorageQoSPolicy | ? Name -eq MediumPerf
PS C:\> $MediumPerf.PolicyId
 
Guid
----
c0cea944-981e-445e-ad20-d6a33d294fb7

使用PowerShell命令將策略用應用到選擇的虛機,QoSPolicyID這個參數後接名爲MediumPerf QoS策略ID

PS C:\>Get-VM -Name  WS16-VM01 | Get-VMHardDiskDrive | Set-VMHardDiskDrive –QoSPolicyID  c0cea944-981e-445e-ad20-d6a33d294fb7

分配完畢,打開分配了QoS策略的虛機的設置窗口,和專有QoS策略同樣,應用了QoS策略的VHDX虛擬硬盤並無顯示QoS策略所定義的IOPS最大及最小值,取而代之的是QoS策略ID,如圖4所示。

 wKioL1jTQCaiIcA5AAC6gAwViF4505.jpg-wh_50

4查看虛機分配的QoS策略ID

要查看虛機分配QoS策略以後是否生效以及生效後虛機磁盤QoS值,能夠運行Get-StorageQoSflow命令查看。在查詢結果中,能夠看到具備三個VHDX文件的虛機應用了一個最小100,最大400QoS策略,那麼每一個VHDXIOPS最小爲100/3取整,最大爲400/3取整,以下示例所示。

PS C:\> Get-StorageQoSflow  |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=」File」}  -AutoSize      
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File    
------------     ----------    ----------     ---------------    ----    
SQL14        200        800        0           sql14.vhdx    
VMM16        0         0         7           vmm16.vhdx    
WS16-VM01      33         133        0           WS16-VM01.vhdx    
WS16-VM01      33         133        0           DATADisk01.vhdx    
WS16-VM01      33         133        0           DATADisk02.vhdx    
WS16-VM02      0         0         0           WS16-VM02.vhdx

存儲QoS策略的重設

       咱們常常須要按照環境的變化對策略作對相應的調整,存儲QoS也不會例外,好比某些應用應爲訪問量和數量增大時,對存儲的讀寫速度提出了更高的要求。若是虛機的虛擬硬盤已經應用了存儲QoS策略,那麼咱們不須要從新建立存儲QoS策略分配給虛機的虛擬磁盤,而是在線調整已有的QoS策略,虛機虛擬硬盤的QoS策略會在線同步更新。接下來咱們找一個以前應用到虛機的名爲HighPerf的存儲QoS策略,將IOPS值最小和最大值分別從200800調整到5001000。先使用以下PowerShell命令Set-StorageQosPolicy完成QoS策略變動,而後使用Get-StorageQosPolicy查詢QoS策略修改結果,結果應以下示例所示。

PS C:\> Get-StorageQosPolicy  -Name HighPerf | Set-StorageQosPolicy -MinimumIOPS 500 -MaximumIops 1000 PS C:\> Get-StorageQosPolicy     

Name      MinimumIops    MaximumIops       MaximumBandwidth    Status    
----      ----------     ----------       ---------------     ------    
Default     0         0           0 MB/s         OK    
MediumPerf    100        400          0 MB/s         OK    
HighPerf    500        1000          0 MB/s         OK    
LowPerf     50         200          0 MB/s         OK

         調整完畢,不須要再次應用QoS策略到虛機,虛機虛擬磁盤會自動更新策略。使用PowerShell命令可查看到應用了名爲HighPerf存儲QoS策略的SQL Server虛機虛擬硬盤更新後的IOPS QoS信息,以下示例命令所示。

PS C:\> Get-StorageQoSflow |Sort-Object  InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"}  -AutoSize      

InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File    
------------     ----------     ----------     ---------------    ----    
SQL14        500        1000        0           sql14.vhdx    
VMM16        50         200         7           vmm16.vhdx    
WS16-VM01      33         133         0           WS16-VM01.vhdx    
WS16-VM01      33         133        0           DATADisk01.vhdx    
WS16-VM01      33         133        0           DATADisk02.vhdx    
WS16-VM02      0         0         0           WS16-VM02.vhdx
相關文章
相關標籤/搜索