文件

磁碟機故障復原

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 工程團隊協調,以取得任何此類操作的指導。