硬體檢查清單
在規劃用於生產環境、分散式 MinIO 部署的硬體配置時,請使用以下檢查清單。
考量事項
在為您的 MinIO 實作選擇硬體時,請考慮以下因素
啟動時要儲存的預期資料量 (以 Tebibytes 為單位)
至少未來兩年資料大小的預期增長
按平均物件大小計算的物件數量
資料的平均保留時間 (年)
要部署的站點數量
預期的儲存貯體數量
生產環境硬體建議
以下檢查清單遵循 MinIO 針對生產環境部署的建議配置。所提供的指南旨在作為基準,不能取代MinIO SUBNET效能診斷、架構審查和直接工程支援。
MinIO 與任何分散式系統一樣,受益於為指定伺服器池中的所有節點選擇相同的配置。確保在集區節點之間選擇一致的硬體 (CPU、記憶體、主機板、儲存配接卡) 和軟體 (作業系統、核心設定、系統服務)。
如果節點具有不同的硬體或軟體配置,則部署可能會表現出不可預測的效能。受益於將過時資料儲存在低成本硬體上的工作負載,應該部署專用的「溫」或「冷」MinIO 部署,並將資料轉換到該層。
MinIO 不提供託管服務或硬體銷售
請參閱我們的參考硬體頁面,了解我們硬體合作夥伴精選的伺服器和儲存組件。
描述 |
最低要求 |
建議 |
|
---|---|---|---|
專門為 MinIO 租戶提供服務的 Kubernetes 工作節點。 |
每個租戶 4 個工作節點 |
每個租戶 8 個以上的工作節點 |
|
每個 MinIO Server Pod 4 個 PV |
每個 MinIO Server 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 效能的影響最大,其中每個主機的低頻寬會人為地限制儲存的潛在效能。以下網路吞吐量限制的範例假設旋轉硬碟具有 ~100MB/S 的持續 I/O。
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
或結果顯示非預期的結果,您可以使用作業系統的預設工具。
在所有伺服器上獨立測試每個磁碟機,以確保它們的效能相同。使用這些 OS 層級工具的結果來驗證您的儲存硬體的功能。記錄結果以供日後參考。
測試磁碟機在寫入操作期間的效能
此測試會檢查磁碟機將新資料 (未快取的資料) 寫入磁碟機的能力,方法是以一次最多特定位元組數的方式建立指定數量的區塊,以模擬磁碟機在寫入未快取資料時的功能。這讓您能夠看到實際磁碟機在一致的檔案 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 (現代) |
|
執行緒數量 ( \(numberOfDrives * 16\) ) |
|
檔案列表 (上述命令會測試每個磁碟 16 個檔案) |