前言
如果你想要建置 VMware vSAN 的話,若未採用 vSAN Ready Node 的話。那麼,你應該要透過 VMware Compatibility Guide 仔細選擇實體伺服器中,每一項底層運作元件 (如 RAID Card、SSD...等)。Disk Controller Queue Depth 的重要性
在選擇實體伺服器當中的 RAID Card / Disk Controller 時,其實有個很重要的參考數據就是「佇列深度 (Queue Depth)」? 此數據為何重要,我們先看看下列的圖,了解一下從底層實體伺服器,一直到 VM 虛擬主機,途中要經過多少佇列關卡。你可以使用 SSH 登入 ESXi 主機,鍵入指令「vmkload_mod -s mpt2sas」查看一下,目前所使用的硬碟驅動
# vmkload_mod -s mpt2sas
vmkload_mod module information
input file: /usr/lib/vmware/vmkmod/mpt2sas
Version: Version 10.00.00.00.5vmw, Build: 799733, Interface: 9.2 Built on: Aug 1 2012
...略...
mpt2sas_raid_queue_depth: int
Max RAID Device Queue Depth (default=128)
mpt2sas_sata_queue_depth: int
Max SATA Device Queue Depth (default=32)
mpt2sas_sas_queue_depth: int
Max SAS Device Queue Depth (default=254)
...略...
所以,你可以想像如果硬碟控制器佇列深度值為「128」時,若採用的 SATA 硬碟其佇列深度值為「32」,那麼在運作上便迎刃有餘。但是,若採用的 SAS 硬碟佇列深度值為「254」,可以想見在資料 I/O 時效能瓶頸便會卡在硬碟控制器。
檢查佇列深度值
檢查硬碟控制器佇列深度
請以 SSH 登入 ESXi 主機,輸入「esxtop」指令之後依序按下「d > f > d」以選擇 Queue Stats 項目,在顯示的結果中「AQLEN」欄位便是佇列深度。此次實作主機所採用的 RAID Card 為「IBM ServerRAID M5110」,可以看到佇列深度為「975」。硬碟控制器佇列深度參考值
知名部落客 Duncan Epping,在他的部落格中有分享硬碟控制器佇列深度參考值,之後許多熱心人士也都回報,自已環境中所採用的硬碟控制器佇列深度值,這份表很值得參考: (表格資料來源: Yellow-Bricks - Disk Controller features and Queue Depth)Adaptec
- RAID 2405 - 佇列深度為 504
Dell
- SAS 6/iR - 佇列深度為 127
- PERC 6/i - 佇列深度為 925
- PERC H200 Integrated - 佇列深度為 600
- PERC H200 Embeded - 佇列深度為 499
- PERC H310 - 佇列深度為 25
- PERC H700、H710、H810 - 佇列深度為 975
HP
- Smart Array P220i - 佇列深度為 1020
- Smart Array P400i - 佇列深度為 128
- Smart Array P410i、P420i - 佇列深度為 1020
- Smart Array P700m - 佇列深度為 1200
IBM
- ServerRAID M5015 - 佇列深度為 965
- ServerRAID M5016、M5110 - 佇列深度為 975
Intel
- C602 AHCI (Patsbury) - 佇列深度為 31 (per Port)
- C602 SCU (Patsbury) - 佇列深度為 256
- RMS25KB040 - 佇列深度為 600
LSI
- LSI 2004 - 佇列深度為 25
- LSI 2008 - 佇列深度為 25 (Firmware Update After 600)
- LSI 2108、2208、2308、3008、9300-8i - 佇列深度為 600