2017年2月28日 星期二

Storage IOPS 的難題



所謂輕度使用者,通常就是利用桌面環境處理日常工作所需,例如E-Mail(如OutlookNotes)、Office(如WordExcel)、Web Browser等等,簡單來說,就是一般文書處理的工作。

而重度使用者除了以上所述的一般文書處理工作外,還要同時處理大型簡報檔案、美術圖檔、3D圖檔等等工作。

在一般情況下,使用者在大部分90%的工作負載都會是磁碟I/O的「讀取(Read)」(當然仍有例外)。

舉例來說,NTFS檔案系統一般資料分配大小為4KBAllocation Size)以及64KBBlock Size)的資料區塊大小,而Windows 7作業系統資料讀寫作業,一般使用1MB的資料區塊大小進行,因此以表1中重度使用者的磁碟讀寫I/O值為7MB/Sec,並且以64KB資料區塊大小來 計算,運作20Windows 7作業系統的虛擬桌面環境大約需要112 IOPS

1 輕度使用者與重度使用者比較



若是非一般環境的重度使用者,則通常會預估資料讀取部分為40%,而資料寫入部分為60%來進行估算(表2),甚至在某些極重度使用者的環境中,資料寫入部分可能高達80090%

2 重度使用者資料讀取與寫入比例


如果覺得這樣的統計數據太過兩極化,那麼可以將使用者環境等級再區分得更細緻一點,例如有些虛擬桌面可能配置了1顆虛擬處理器(1 vCPU)與1GB的虛擬記憶體,因此只要執行些許的應用程式便可以完成日常工作所需。但有些使用者可能就需要更多的虛擬資源,如2顆虛擬CPU3GB 的虛擬記憶體,才得以完成工作。

Q 3:如何估算儲存設備的IOPS效能數值?


儲存設備在虛擬桌面環境中擔任非常重要的角色,所以在選購儲存設備時必須了解所選擇的儲存設備(NASSAN)之資料讀寫效能如何,也就是IOPSI/O operations Per Second)數值,硬碟的IOPS計算公式如下(圖2):

▲ 圖2 硬碟IOPS計算公式。(圖片來源: VMware White Paper – Storage Considerations for VMware Horizon View 5.2
但是,在選擇儲存設備時往往常常會令人陷入兩難的局面,也就是如何在「效能(Performance)及容量(Capacity)」間進行取捨?

舉例來說,7,200 RPM SATA3Serial ATA)的主流硬碟在容量上已經可達到3-4TB空間大小,並且售價通常也令人感到滿意,但在效能表現方面,亦即IOPS數值,則大約落在75左右。而 15,000 RPM SASSerial Attached SCSI)主流硬碟容量為3000-900GB,雖然採購費用是SATA硬碟的好幾倍,並且空間也小很多,但是其IOPS效能數值大約可達175左右。

如果採用的是SSDSolid-State Disk)固態硬碟,它並不像傳統硬碟需要磁盤、讀寫頭等等零件,並使用Flash MemoryEEPROMElectronically Erasable Programmable Read Only Memory)進行資料的讀寫,其中又可區分為SLC FlashSingle Level Cell)和MLC FlashMulti Level Cell)兩種等級,SLC Flash儲存One Bit到每個Cell內,MLC Flash則儲存Multiple Bits於每個Cell中。所以,SLC Flash相較於MLC Flash大約多出「10倍」的資料寫入能力(當然價格也貴上許多)。

有此可見,選擇儲存設備時,如何在效能與容量之間取得平衡點相當重要。表5為目前市面上常見的硬碟其IOPS效能表現。

5 市面上常見的硬碟種類及其IOPS效能表現


除了硬碟的類型及轉速影響IOPS效能數值外,還有磁碟陣列(Redundant Array of Independent DisksRAID)的「處罰(Penalty)」和「快取(Cache)」部分需要考量,因為不同類型的磁碟陣列RAID模式,會影響到整體IOPS 效能數值。舉例來說,建立RAID-5RAID-6磁碟陣列類型時,因為要進行「同位元檢查(Parity Checking)」,所以雖然整體容量空間損失較少,但所帶來的影響則是在IOPS Write I/O Penalty部分較多,如表6所示。

6 各種磁碟陣列IOPS Write I/O Penalty比較

RAID
處罰會加重PCIOPS使用 (需求) , 只針對寫入方便 , 不是好事
在大致了解硬碟種類及轉速所帶來的IOPS效能數值,以及選擇RAID磁碟陣列類型所帶來的資料寫入效能處罰之後,就可以估算出選擇儲存設備後所能得到的IOPS效能數值(圖3)。


▲ 圖3 儲存設備IOPS效能數值估算公式。(資料來源:VMware White Paper – Storage Considerations for VMware Horizon View 5.2


如果有「一台」VM虛擬主機的工作負載為25 IOPS,並且資料的讀取及寫入比例為40/60,而儲存設備的RAID磁碟陣列採用RAID-5,那麼即表示後端的儲存設備要負載這樣的一台VM虛擬主 機時,必須具備「(25×0.4 + ((25×0.6)×4) = 70 IOPS」才行。

同樣的條件下,如果屆時這台儲存設備所要負載的VM虛擬主機是「500台」,那麼後端的儲存設備必須具備「(( 12,500×0.4) + ((12,500×0.6)×4)) = 35,000 IOPS」才行。
==================================================================================================================================




RAIDIOPS計算在現實中的應用
在實際使用中,我們通常不是計算現有RAIDIOPS,而是反過來:選擇好磁盤規格,RAID模式,測試出系統的讀寫比例,系統需要達到的IOPS,然後看看,需要多少塊硬盤來完成陣列,才能達到這样的IOPS需求?
假設:選擇了175 IOPS的磁盤,做RAID1,系統讀寫比例为60%:40%,系統需要達到2000 IOPS
問:要配置多少塊這样規格的硬盤?
把上面的公式改为通用公式:
reads * Workload_IOPS  + writes_impact * (writes * Workload_IOPS) = 175 * M
60% * 2000 + 2 * (40% * 2000) = 175 * M
M = 16 (也就是說,要達到指定的2000 IOPSRAID1需要配置16175 IOPS的磁盤)

可能有人會覺得,系統的讀寫請求比例,系統需要達到多少IOPS,並不知道,如果沒有前期測試的話,那麼只能根據經驗來估測了。


 用Synology RS3412 WD 紅標 7.2K 10
要給50VDI使用

NAS供給IOPS 75 * 10 = 750 IOPS (最高)
50VDI需求為 (15×0.6 + ((15×0.4)×4) * 50 = 1,650 IOPS

0.6 * 1650 + 4 * ( 0.4 * 1650) = 990+2640=3630

3630 / 75   = 48.4 7.2K硬碟
3630 / 125  = 29  10K硬碟
3630 / 175  = 20  15K硬碟



=======================================================================


1 則留言 :