硬體檢查清單
在規劃用於生產、分散式 MinIO 部署的硬體設定時,請使用以下檢查清單。
考量
在為您的 MinIO 實作選擇硬體時,請考慮以下因素
啟動時要儲存的預期資料量 (以 TiB 為單位)
至少未來兩年預期的資料大小增長
按平均物件大小劃分的物件數量
資料的平均保留時間 (以年為單位)
要部署的站點數量
預期的 Bucket 數量
生產硬體建議
以下檢查清單遵循 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 block 大小 v1。1 MiB 是預設的 erasure block 大小 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=隨機讀取/寫入 |
|
直接 I/O 現代模式 |
|
執行緒數量 (\(磁碟機數量 * 16\)) |
|
檔案列表 (上述命令會測試每個磁碟機 16 個檔案) |