[Storage] Windows Server 2016 攻略 (六) - 儲存資源品質管控機制 Storage QoS

     Windows Server 2016 攻略系列文章分 Compute / Storage / Network 三大主題,其中 Compute 主題一月份已經由以下三篇文章涵蓋介紹:

二月份為各位帶來的是 Storage 主題系列文章,將由以下三篇涵蓋介紹:

     本文,將說明及實作在微軟新世代 Windows Server 2016 雲端作業系統當中,增強的儲存特色功能「Distributed Storage QoS」,它改善過去 Storage QoS 僅能針對 VM 虛擬主機及 VHD/VHDX 虛擬硬碟設定 IOPS 的不足及困擾,並且提供在 Hyper-V 及 SOFS 運作架構中「集中式」的儲存效能監控機制,並且可以設定告警機制當儲存原則無法順利套用時通知管理人員。探討的主題包括:

Distributed Storage QoS

     「Storage QoS」功能在 Windows Server 2012 R2 當中便已經具備,它可以針對「每台 VM 虛擬主機」或「每顆 VHD/VHDX 虛擬磁碟」,進行 IOPS 的最小值或最大值的使用限制,以避免在虛擬化平台當中,有少部分 VM 虛擬主機因為突然爆發的 IOPS 工作負載,佔用整座儲存設備過多的 IOPS 儲存資源,造成其它 VM 虛擬主機運作效能不彰的情況發生。

      現在,新版的 Windows Server 2016 雲端作業系統當中,更進一步增強為「Distributed Storage QoS」機制,不但可以支援原有的 VM 虛擬主機及每顆虛擬硬碟,現在更延伸至「 服務(Service) 」及「 租用戶(Tenant) 」的層級。

      此外,在設定 QoS 的機制上也更為簡單,採用的「I/O Scheduler」機制預設就已經在 Scale-Out File Server Cluster當中啟用,並且可以「 跨越每台叢集節點 」進行運作,有效解決過去必須在每台叢集節點進行單獨設定的困擾。

      最後,再搭配「Policy Manager」管理機制,將所設定的「Storage QoS 儲存原則」套用到所屬的 VM 虛擬主機、服務、租用戶當中。當然,你也可以透過 PowerShell、SCVMM、Ops Manager其它管理工具,來進行儲存原則的管理作業。

      當 Hyper-V Cluster 上的 VM 虛擬主機運作時,將由 Policy Manager 進行 I/O 效能的監控作業,若調整 Storage QoS 組態設定值之後,同樣也由 Policy Manager 通知 Hyper-V 主機。

上圖為 Windows Server 2016 Storage QoS 運作架構示意圖

( 圖片來源: TechNet Library – Storage Quality of Service )

部署模式

    Distributed Storage QoS 支援兩種部署模式,分別是「SOFS(Scale-Out File Server)」及「CSV(Cluster Shared Volumes)」,也就是可以針對 Hyper-V Cluster 所使用的兩種不同儲存資源,進行儲存資源 QoS 品質控管的機制。

確認 Storage QoS 機制已啟用

       預設情況下,當你建立好 SOFS 容錯移轉叢集運作環境時,叢集核心資源便會啟用「儲存體 QoS 資源(Storage QoS Resource)」,你可以透過容錯移轉叢集管理員進行確認。

上圖為透過容錯移轉叢集管理員確認 Storage QoS 機制是否啟用

同樣的,你也可以透過 PowerShell 指令「Get-ClusterResource」,來確認 Storage QoS 機制是否已經啟用。

上圖為透過 PowerShell 指令確認 Storage QoS 機制是否啟用

建立及監控 Storage QoS Policy

      預設情況下,每個 SOFS Cluster 可以建立「10,000」筆 Storage QoS 儲存原則。值得注意的是,在儲存原則的部份共有兩種類型,分別是 SingleInstance 及 MultiInstance:

l   SingleInstance 當設定「最小值 IOPS(MinimumIOPS)」及「最大值 IOPS(MaximumIOPS)」,並且套用至 VM 虛擬主機之後,該 VM 虛擬主機當中的「所有」 VHD/VHDX 虛擬磁碟將共享同一個儲存原則。舉例來說,若設定最小值 IOPS 為 300 最大值 IOPS 為 500,套用的 VM 虛擬主機中含有 5 顆 VHDX 虛擬磁碟,那麼每顆 VHDX 虛擬磁碟最大只能獲得 100 IOPS 儲存資源。

l   MultiInstance 當設定最小值 IOPS 及最大值 IOPS 並套用至 5 台 VM 虛擬主機之後,那麼 IOPS 組態設定值將會針對「每台」VM 虛擬主機進行套用。舉例來說,若設定最小值 IOPS 為 300 最大值 IOPS 為 500,那麼每一台 VM 虛擬主機最大能夠獲得 500 IOPS 儲存資源。

  那麼,我們來實作一下 MultiInstance 類型的 Storage QoS Policy。首先,在 SOFS 叢集節點主機 上,利用「New-StorageQoSPolicy」指令建立 1 筆名稱為「TenantVM」的 MultiInstance 儲存原則,並設定最小值 IOPS 為 300 最大值 IOPS 為 500,然後取得該原則的識別 ID。

上圖建立名稱為 TenantVM 的 MultiInstance 原則

    此時,在某台 Hyper-V 叢集節點主機上正運作著 5 台 VM 虛擬主機(名稱為VM01 ~ VM05),我們針對這 5 台 VM 虛擬主機套用剛才所建立的 TenantVM 儲存原則。

從儲存原則套用結果中可以看到,VM02 虛擬主機擁有 2 顆 VHDX 虛擬磁碟,所以 2 顆磁碟共享 300 最小值 IOPS(每顆磁碟 150 IOPS),以及 500 最大值 IOPS(每顆磁碟 250 IOPS)。同時,VM04 虛擬主機擁有 3 顆 VHDX 虛擬磁碟,所以 3 顆磁碟共享 300 最小值 IOPS(每顆磁碟 100 IOPS),以及 500 最大值 IOPS(每顆磁碟 166 IOPS)。

上圖為採用 MultiInstance 原則一次套用至多台 VM 虛擬主機

以上是 Storage主題系列文章最終篇,下個單元將由 Network 深入為大家探討,想獲得第一手消息歡迎追蹤 TechNet 台灣 關注最新發佈唷!