硬體檢查清單
在規劃生產、分散式 MinIO 部署的硬體組態時,請使用以下檢查清單。
考量事項
在為您的 MinIO 實作選擇硬體時,請考慮以下因素
啟動時要儲存的資料預期量,以 TiB 為單位
至少在未來兩年內,資料大小的預期成長
依平均物件大小計算的物件數量
資料的平均保留時間,以年為單位
要部署的站點數量
預期的儲存區數量
生產硬體建議
以下檢查清單遵循 MinIO 針對生產部署的建議組態。提供的指南旨在作為基準,無法取代 MinIO SUBNET 效能診斷、架構檢閱和直接對工程的支援。
與任何分散式系統一樣,MinIO 受益於為給定伺服器集區中的所有節點選擇相同的組態。請確保在集區節點之間保持一致的硬體(CPU、記憶體、主機板、儲存介面卡)和軟體(作業系統、核心設定、系統服務)選擇。
如果節點具有不同的硬體或軟體組態,部署可能會展現不可預測的效能。受益於將較舊資料儲存在較低成本硬體上的工作負載,應改為部署專用的「溫」或「冷」MinIO 部署,並將資料轉換到該層級。
MinIO 不提供託管服務或硬體銷售
請參閱我們的參考硬體頁面,其中列出了我們硬體合作夥伴精選的伺服器和儲存組件。
說明 |
最低要求 |
建議規格 |
|
---|---|---|---|
專門為 MinIO 租戶提供服務的 Kubernetes 工作節點。 |
每個租戶 4 個工作節點 |
每個租戶 8 個以上的工作節點 |
|
每個 MinIO 伺服器 Pod 4 個 PV |
每個 MinIO 伺服器 Pod 8 個以上的 PV |
||
25GbE |
100GbE |
||
支援現代 SIMD 指令 (AVX-512) 的伺服器級 CPU,例如 Intel® Xeon® Scalable 或更佳的處理器。 |
每個 MinIO Pod 4 個 vCPU |
每個 MinIO Pod 8 個以上的 vCPU |
|
可用記憶體應滿足或超過每個伺服器的使用量,並預留合理的緩衝空間。 |
每個工作節點 32GB 可用記憶體 |
每個工作節點 128GB 以上的可用記憶體 |
重要事項
以下區域對 MinIO 的效能影響最大,並按重要性順序列出
網路基礎架構 |
吞吐量不足或有限會限制效能 |
---|---|
儲存控制器 |
舊韌體、吞吐量有限或硬體故障會限制效能並影響可靠性 |
儲存 (磁碟機) |
舊韌體或速度慢/老化/故障的硬體會限制效能並影響可靠性 |
在關注其他硬體資源(例如與運算相關的限制)之前,請優先確保這些領域所需的組件。
上述最低建議反映了 MinIO 在協助企業客戶於各種 IT 基礎架構上部署,同時維持所需 SLA/SLO 的經驗。儘管 MinIO 可能在低於最低建議拓撲的情況下執行,但任何潛在的成本節省都會以降低可靠性、效能或整體功能為代價。
網路
MinIO 建議使用高速網路,以支援連接儲存的最大可能吞吐量(聚合磁碟機、儲存控制器和 PCIe 匯流排)。下表提供了指定實體或虛擬網路介面所支援的最大儲存吞吐量的一般指南。此表假設所有網路基礎架構組件(例如路由器、交換器和實體佈線)也支援 NIC 頻寬。
NIC 頻寬 (Gbps) |
估計的聚合儲存吞吐量 (GBps) |
10Gbps |
1.25GBps |
25Gbps |
3.125GBps |
50Gbps |
6.25GBps |
100Gbps |
12.5GBps |
網路對 MinIO 效能的影響最大,其中每個主機的低頻寬會人為地限制儲存的潛在效能。以下網路吞吐量限制的範例假設使用持續 I/O 約為 100MB/S 的旋轉式硬碟
1GbE 網路鏈路最多可支援 125MB/s,即一個旋轉式硬碟
10GbE 網路大約可支援 1.25GB/s,可能支援 10-12 個旋轉式硬碟
25GbE 網路大約可支援 3.125GB/s,可能支援約 30 個旋轉式硬碟
記憶體
記憶體主要限制每個節點的同時連線數。
您可以使用以下公式計算每個節點的最大同時請求數
\(totalRam / ramPerRequest\)
若要計算每個請求使用的 RAM 量,請使用以下公式
\(((2MiB + 128KiB) * driveCount) + (2 * 10MiB) + (2 * 1 MiB)\)
10MiB 是預設的 Erasure 編碼區塊大小 v1。1 MiB 是預設的 Erasure 編碼區塊大小 v2。
下表列出基於主機磁碟機數量和可用系統 RAM 的節點最大同時請求數
磁碟機數量 |
32 GiB 的 RAM |
64 GiB 的 RAM |
128 GiB 的 RAM |
256 GiB 的 RAM |
512 GiB 的 RAM |
---|---|---|---|---|---|
4 個磁碟機 |
1,074 |
2,149 |
4,297 |
8,595 |
17,190 |
8 個磁碟機 |
840 |
1,680 |
3,361 |
6,722 |
13,443 |
16 個磁碟機 |
585 |
1,170 |
2.341 |
4,681 |
9,362 |
下表提供根據節點上的本機儲存總量配置 MinIO 所用記憶體的一般指南
主機儲存總量 |
建議的主機記憶體 |
---|---|
最多 1 Tebibyte (Ti) |
8GiB |
最多 10 Tebibyte (Ti) |
16GiB |
最多 100 Tebibyte (Ti) |
32GiB |
最多 1 Pebibyte (Pi) |
64GiB |
超過 1 Pebibyte (Pi) |
128GiB |
重要事項
從 RELEASE.2024-01-28T22-35-53Z 開始,MinIO 在分散式設定中預先配置每個節點 2GiB 的記憶體,以及單節點設定 1GiB 的記憶體。
儲存
獨佔存取磁碟機
MinIO 需要對提供給物件儲存的磁碟機或卷具有獨佔存取權。任何其他程序、軟體、指令碼或人員都不應直接對提供給 MinIO 的磁碟機或卷,或 MinIO 放置在其上的物件或檔案執行任何動作。
除非 MinIO 工程部門指示,否則請勿使用指令碼或工具直接修改、刪除或移動所提供磁碟機上的任何資料分片、同位分片或中繼資料檔案,包括從一個磁碟機或節點移動到另一個磁碟機或節點。此類操作很可能會導致廣泛的損壞和資料遺失,超出 MinIO 的修復能力。
MinIO 建議為每個 MinIO 租戶配置一個符合該租戶效能目標的儲存類別。
在可能的情況下,請將儲存類別、CSI 或 PV 底層的其他佈建器設定為將卷格式化為 XFS,以確保最佳效能。
確保租戶中佈建的所有 PV 具有一致的底層儲存類型 (NVMe、SSD、HDD)。
確保每個租戶中所有節點上的每個 PV 呈現的容量相同 伺服器池。MinIO 將每個 PV 的最大可用大小限制為池中最小的 PV。例如,如果一個池有 15 個 10TB PV 和 1 個 1TB PV,則 MinIO 會將每個 PV 的容量限制為 1TB。
建議的硬體測試
MinIO 診斷
執行內建的健康狀況診斷工具。如果您可以存取 SUBNET,則可以在那裡上傳結果。
mc support diag ALIAS --airgap
將 ALIAS 取代為為部署定義的 alias
。
MinIO 支援診斷工具
對於已向 MinIO SUBNET 註冊的部署,您可以執行內建的支援診斷工具。
執行三項 mc support perf
測試。
這些伺服器端測試會驗證網路、磁碟機和物件的吞吐量。使用預設選項執行所有三項測試。
網路測試
在別名為
minio1
的叢集上執行網路吞吐量測試。mc support perf net minio1
磁碟機測試
在別名為
minio1
的叢集上的所有節點的所有磁碟機上執行磁碟機讀取/寫入效能測量。該命令使用 4MiB 的預設區塊大小。mc support perf drive minio1
物件測試
測量別名為
minio1
的物件的 S3 讀取/寫入效能。MinIO 會自動調整並行性以獲得最大吞吐量和 IOPS(每秒輸入/輸出次數)。mc support perf object minio1
作業系統診斷工具
如果您無法執行 mc support diag
或結果顯示不預期的結果,您可以使用作業系統的預設工具。
獨立測試所有伺服器上的每個磁碟機,以確保它們的效能相同。使用這些作業系統層級工具的結果來驗證您的儲存硬體功能。記錄結果以供日後參考。
測試磁碟機在寫入操作期間的效能
此測試會檢查磁碟機將新資料(未快取)寫入磁碟機的能力,方法是同時建立指定數量的區塊,並在每次寫入最多指定數量的位元組,以模擬磁碟機寫入未快取資料的方式。這樣您就可以看到實際的磁碟機效能以及一致的檔案 I/O。
dd if=/dev/zero of=/mnt/driveN/testfile bs=128k count=80000 oflag=direct conv=fdatasync > dd-write-drive1.txt
將
driveN
取代為您正在測試的磁碟機的路徑。dd
複製和貼上資料的命令。
if=/dev/zero
從
/dev/zero
讀取,這是一個系統產生的無限 0 位元組串流,用於建立指定大小的檔案of=/mnt/driveN/testfile
寫入
/mnt/driveN/testfile
bs=128k
一次最多寫入 128,000 個位元組
count=80000
最多寫入 80000 個資料區塊
oflag=direct
使用直接 I/O 進行寫入,以避免資料快取
conv=fdatasync
在完成前實際寫入輸出檔案資料
> dd-write-drive1.txt
將作業輸出的內容寫入目前工作目錄中的
dd-write-drive1.txt
作業會傳回寫入的檔案數、以位元組為單位的寫入總大小、作業的總時間長度(以秒為單位)和寫入速度(以某種順序的每秒位元組數為單位)。
測試磁碟機在讀取操作期間的效能
dd if=/mnt/driveN/testfile of=/dev/null bs=128k iflag=direct > dd-read-drive1.txt
將
driveN
取代為您正在測試的磁碟機的路徑。dd
複製和貼上資料的命令
if=/mnt/driveN/testfile
從
/mnt/driveN/testfile
讀取;取代為用於測試磁碟機讀取效能的檔案路徑of=/dev/null
寫入
/dev/null
,這是一個虛擬檔案,在作業完成後不會保留bs=128k
一次最多寫入 128,000 個位元組
count=80000
最多寫入 80000 個資料區塊
iflag=direct
使用直接 I/O 進行讀取,並避免資料快取
> dd-read-drive1.txt
將作業輸出的內容寫入目前工作目錄中的
dd-read-drive1.txt
使用大小足夠的檔案來模擬部署的主要用途,以獲得準確的讀取測試結果。
下列指南可能對效能測試有所幫助
小型檔案:< 128KB
一般檔案:128KB – 1GB
大型檔案:> 1GB
您可以使用
head
命令來創建要使用的檔案。以下命令範例會建立一個名為testfile
的 10 GB 檔案。head -c 10G </dev/urandom > testfile
此操作會傳回讀取的檔案數量、讀取的總大小(以位元組為單位)、操作的總時間(以秒為單位),以及讀取速度(以每秒位元組為單位)。
第三方診斷工具
IO 控制器測試
使用 IOzone 來測試輸入/輸出控制器以及所有磁碟機的組合。記錄您部署中每台伺服器的效能數據。
iozone -s 1g -r 4m -i 0 -i 1 -i 2 -I -t 160 -F /mnt/sdb1/tmpfile.{1..16} /mnt/sdc1/tmpfile.{1..16} /mnt/sdd1/tmpfile.{1..16} /mnt/sde1/tmpfile.{1..16} /mnt/sdf1/tmpfile.{1..16} /mnt/sdg1/tmpfile.{1..16} /mnt/sdh1/tmpfile.{1..16} /mnt/sdi1/tmpfile.{1..16} /mnt/sdj1/tmpfile.{1..16} /mnt/sdk1/tmpfile.{1..16} > iozone.txt
|
每個檔案的大小為 1G |
|
4m 4MB 區塊大小 |
|
0=寫入/重寫,1=讀取/重讀,2=隨機讀取/寫入 |
|
Direct-IO modern |
|
執行緒數量 (\(numberOfDrives * 16\)) |
|
檔案列表 (以上命令測試每個磁碟機 16 個檔案) |