文件

物件修復

什麼是修復?

修復是 MinIO 恢復已損壞、損毀或部分遺失的物件的能力。遺失可能來自多種類型的損毀或遺失,例如但不限於

  • 磁碟機層級錯誤或故障

  • 作業系統或檔案系統錯誤或故障

  • 位元衰減

修復和 Erasure Coding

MinIO 恢復損壞物件的能力與以下因素直接相關

  • 物件所在 Erasure Set 中的磁碟機總數

  • 具有物件完整部分的可用磁碟機數量

  • Erasure Set 的同位設定

    同位是指 MinIO 在寫入物件時建立的專用復原分片數量。例如,一個 Erasure Set 可能總共有八個磁碟機,並且在寫入期間使用三個磁碟機進行同位。在這種情況下,MinIO 會將物件分割成 5 個資料分片,並建立 3 個同位分片。MinIO 將這八個分片分配到 Erasure Set 中的磁碟機上。沒有一個磁碟機只包含同位分片或只包含資料分片。相反,MinIO 以隨機方式寫入每個物件的分片,以平均分配磁碟機上的讀取。

    當 MinIO 需要提供物件時,它會尋找物件的資料分片。如果任何資料分片遺失或損壞,MinIO 會使用一個或多個同位分片來還原物件。在尋找同位分片時,如果任何同位分片遺失或損壞,MinIO 也會還原這些分片,前提是有足夠的其他分片可以服務該物件。在這種情況下,最多可以遺失或損壞三個資料分片部分,MinIO 仍然可以成功還原並服務該物件。

    具有物件完整資料或同位分片的可用磁碟機數量必須等於或超過 Erasure Set 中用於資料分片的磁碟機數量。在上述情況中,必須有五個具有完整分片的磁碟機處於線上且可用,MinIO 才能成功服務該物件。

MinIO 何時修復物件?

MinIO 有一個健全的物件修復系統。

GET 請求期間修復

每次使用 GETHEAD 操作請求物件時,MinIO 都會自動檢查物件資料分片的一致性。對於版本控制儲存貯體,MinIO 也會在 PUT 操作期間檢查一致性。

如果找到所有資料分片完好無損,MinIO 會從資料分片服務物件,而無需檢查相應的同位分片。

如果物件遺失或損壞資料分片,MinIO 會使用可用的同位分片來修復物件,然後再將其作為操作的一部分提供。每個遺失或損壞的資料分片都**必須**有一個可用的完整同位分片,否則無法還原該物件。如果任何同位分片遺失或損壞,MinIO 會還原該同位分片,前提是有足夠的其他同位分片可以服務該物件。

使用物件掃描器進行修復

MinIO 使用物件掃描器來執行許多與物件相關的任務。其中一項任務是檢查物件的完整性,如果發現物件損壞或損毀,則會修復它們。

在每次掃描過程中,MinIO 使用物件名稱的雜湊值,從每 1,024 個物件中選擇一個進行檢查。

如果發現任何物件遺失了碎片,MinIO 會從可用的碎片修復該物件。預設情況下,MinIO 不會使用掃描器檢查位元衰減的損壞。這可能是一個耗費資源的操作,而且多個磁碟同時發生位元衰減的風險很低。

透過手動請求進行修復

管理員可以使用 mc admin heal 來啟動完整的系統修復。此程序非常耗費資源,通常不需要。

在部署環境上手動開始修復程序之前,請諮詢 MinIO 工程師。

修復指標

MinIO 提供數個修復指標來監控部署環境中修復程序的狀態。

請參閱 指標和警示,以取得有關可用端點和設定的更多資訊。

修復輸出顏色鍵

較早版本的 MinIO 會產生一個表格,其中使用綠色、黃色、紅色和灰色來指示各個物件的修復狀態。這些顏色已被棄用,改用更詳細的叢集層級可用的修復指標

下表描述了現在已棄用的狀態顏色的含義。

綠色

健康,物件已具備提供物件所需的所有資料和同位碎片

黃色

修復中,物件仍在修復過程中,而且有足夠的資料或同位碎片可用於完成修復

紅色

不健康,物件遺失了一個或多個碎片,需要修復

灰色

無法復原,物件遺失了太多資料和/或同位碎片,無法修復或復原