與 SAN 和 NAS 版本控制方法相比,物件層級的版本控制是一個顯著的演進。版本控制不僅提供資料保護,它還作為物件鎖定、不可變性、分層和生命週期管理等強大功能的基礎。
使用 MinIO,物件會依照 Amazon 的 S3 結構/實作獨立進行版本控制。MinIO 會為給定物件的每個版本指派一個唯一 ID - 應用程式可以隨時指定版本 ID 以存取該物件的時點快照。
版本控制允許使用者在同一個儲存桶中保留物件的多個變體,並提供一種機制來保存、檢索和還原儲存在儲存桶中的每個物件的每個版本,從而消除了對快照的需求。版本控制確保物件在各種故障中保持可用,包括由應用程式和人為錯誤引起的故障。
版本控制在儲存桶層級啟用。啟用後,MinIO 會自動為物件建立唯一版本 ID。同一個物件可以有多個版本。
版本控制的主要好處之一是防止意外覆寫或刪除。這是使用刪除標記的概念執行的。刪除版本控制的物件時,不會永久刪除。而是建立一個刪除標記,並成為該物件的目前版本。當請求該物件時,MinIO 會傳回 404 找不到訊息。可以透過移除刪除標記來還原物件。
同樣地,如果覆寫版本控制的物件,MinIO 會建立一個新版本,而該版本會成為目前版本。同樣地,可以根據需要還原舊版本。
請注意,一旦儲存桶啟用版本控制,該動作就無法復原,只能暫停。版本控制是儲存桶內的全域設定,表示現在所有物件都進行版本控制。
具有適當權限的使用者可以暫停版本控制,以停止累積物件版本。與啟用版本控制類似,此動作是在儲存桶層級執行。
與所有 MinIO 一樣,可以使用 MinIO 主控台、用戶端 (mc)、SDK 或透過命令列來套用版本控制。
版本控制是保護資料免受意外動作影響的最簡單方法。然而,它會導致較大的儲存桶大小,因為物件會進行版本控制,並可能導致物件之間以及隱藏物件相依性的風險更高。這些因素可以使用生命週期管理來減輕。
除了資料保護的好處之外,MinIO 的物件儲存版本控制還可以作為其他主要功能的基礎,包括
版本控制需要Erasure Coding和至少四個磁碟。