磁碟機故障復原
MinIO 支援使用新的健康磁碟機熱插拔失敗的磁碟機。MinIO 會偵測並修復這些磁碟機,而無需任何節點或部署層級的重新啟動。MinIO 修復僅在更換的磁碟機上發生,並且在大多數情況下對部署效能的影響極小或可忽略不計。
MinIO 修復可確保還原到磁碟機上的所有資料的一致性和正確性。
磁碟機的獨佔存取權
MinIO **要求** 獨佔 存取為物件儲存提供的磁碟機或磁碟區。沒有其他程序、軟體、腳本或人員應直接對提供給 MinIO 的磁碟機或磁碟區執行*任何*動作,或 MinIO 放置在其上的物件或檔案執行任何動作。
除非 MinIO 工程部門指示,否則請勿使用腳本或工具直接修改、刪除或移動所提供磁碟機上的任何資料分片、同位分片或中繼資料檔案,包括從一個磁碟機或節點移動到另一個磁碟機或節點。此類操作很可能導致廣泛的損毀和資料遺失,超出 MinIO 的修復能力。
以下步驟提供了更詳細的磁碟機更換逐步解說。這些步驟假設 MinIO 部署中,每個節點都使用 /etc/fstab
搭配每個磁碟機的標籤來管理磁碟機,如已記錄的先決條件所示。
1) 卸載失敗的磁碟機
使用 umount
卸載每個失敗的磁碟機。例如,以下命令會卸載位於 /dev/sdb
的磁碟機
umount /dev/sdb
2) 更換失敗的磁碟機
從節點硬體中移除失敗的磁碟機,並更換為已知的健康磁碟機。更換磁碟機*必須*符合下列要求
XFS 格式化且為空的。
相同磁碟機類型 (例如 HDD、SSD、NVMe)。
相等或更高的效能。
相等或更大的容量。
使用具有較大容量的更換磁碟機不會增加總叢集儲存空間。MinIO 使用*最小*磁碟機的容量作為伺服器集區中所有磁碟機的上限。
以下命令會將磁碟機格式化為 XFS 並為其指派與失敗磁碟機相符的標籤。
mkfs.xfs /dev/sdb -L DRIVE1
MinIO **強烈建議**使用基於標籤的掛載,以確保一致的磁碟機順序在系統重新啟動後仍然存在。
3) 檢閱並更新 fstab
檢閱 /etc/fstab
檔案,並根據需要進行更新,以便失敗磁碟機的項目指向新格式化的更換磁碟機。
如果使用基於標籤的磁碟機指派,請確保每個標籤都指向正確的新格式化磁碟機。
如果使用基於 UUID 的磁碟機指派,請根據新格式化的磁碟機更新每個點的 UUID。您可以使用
lsblk
來檢視磁碟機 UUID。
例如,考慮
$ cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=DRIVE1 /mnt/drive1 xfs defaults,noatime 0 2
LABEL=DRIVE2 /mnt/drive2 xfs defaults,noatime 0 2
LABEL=DRIVE3 /mnt/drive3 xfs defaults,noatime 0 2
LABEL=DRIVE4 /mnt/drive4 xfs defaults,noatime 0 2
注意
如果一個或多個遠端檔案掛載傳回錯誤或失敗,則依賴於已掛載外部儲存體的雲端環境執行個體可能會遇到啟動失敗。例如,如果一個或多個 EBS 磁碟區無法掛載,則具有已掛載永續性 EBS 磁碟區的 AWS ECS 執行個體可能會使用標準 /etc/fstab
組態啟動失敗。
您可以設定 nofail
選項,以在啟動時靜音錯誤報告,並允許執行個體在有一個或多個掛載問題的情況下啟動。
您不應該在具有本地連接硬碟的系統上使用此選項,因為靜默硬碟錯誤會阻止 MinIO 和作業系統以正常方式回應這些錯誤。
以上述範例命令為例,由於 /mnt/drive1
的替換硬碟使用與故障硬碟相同的標籤 DRIVE1
,因此不需要變更 fstab
。
4) 重新掛載已更換的硬碟
使用 mount -a
重新掛載在此程序開始時卸載的硬碟。
mount -a
該命令應重新掛載所有已更換的硬碟。
5) 監控 MinIO 的硬碟偵測和修復狀態
使用 mc admin logs
命令或 journalctl -u minio
(用於 systemd
管理的安裝),以監控重新掛載硬碟後的伺服器日誌輸出。輸出應包含識別每個已格式化且為空的硬碟的訊息。
使用 mc admin heal
監控部署的整體 修復 狀態。MinIO 會積極修復已更換的硬碟,以確保從降級狀態快速恢復。
6) 後續步驟
監控叢集是否有任何進一步的硬碟故障。某些硬碟批次可能會在彼此接近的位置發生故障。如果部署看到高於預期的硬碟故障率,則應安排專門的維護,以更換已知的不良批次。考慮使用 MinIO SUBNET 與 MinIO 工程團隊協調,以取得任何此類操作的指導。