核心管理概念
以下核心概念是 MinIO 部署管理的基本概念,包括但不限於物件保留、加密和存取管理。
什麼是物件儲存?
物件 是二進位資料,有時稱為二進位大型物件 (BLOB)。Blob 可以是圖像、音訊檔、試算表,甚至是二進位可執行程式碼。像 MinIO 這樣的物件儲存平台提供專用的工具和功能來儲存、擷取和搜尋 Blob。
MinIO 物件儲存使用儲存桶 來組織物件。儲存桶類似於檔案系統中的資料夾或目錄,每個儲存桶都可以容納任意數量的物件。MinIO 儲存桶提供與 AWS S3 儲存桶相同的功能。
例如,考慮一個託管網路部落格的應用程式。該應用程式需要儲存各種 Blob,包括影片和圖像等豐富的多媒體。
MinIO 透過 前綴
的功能支援多層巢狀目錄,以支援即使是最動態的物件儲存工作負載。
MinIO 如何決定對物件的存取權?
MinIO 要求客戶端為每個新操作執行身份驗證和授權。身分與存取管理 (IAM) 因此是 MinIO 配置的關鍵組件。
身分驗證會驗證連線用戶端的身份。MinIO 要求用戶端使用 AWS Signature Version 4 協定進行驗證,並支援已棄用的 Signature Version 2 協定。具體來說,用戶端必須提供有效的存取金鑰和私密金鑰,才能存取任何 S3 或 MinIO 管理 API,例如 PUT
、GET
和 DELETE
操作。
接著,MinIO 會檢查已驗證的使用者或用戶端是否具有執行動作或使用部署資源的授權。MinIO 使用 基於政策的存取控制 (PBAC),其中每個政策都描述一或多個規則,概述使用者或使用者群組的權限。在建立政策時,MinIO 支援 S3 專用的 動作 和 條件。
預設情況下,MinIO 會拒絕存取使用者已指派或繼承政策中未明確提及的動作或資源。
MinIO 提供存取管理功能作為軟體的一部分。或者,您可以設定 MinIO 以使用 Active Directory/LDAP 或 OpenID/OIDC,與多個外部 IAM 提供者之一進行驗證。
MinIO 如何保護資料?
MinIO 支援在磁碟上 (靜態加密) 和從一個位置轉換到另一個位置 (傳輸中加密或「飛行中」) 時,對物件進行編碼的方法。啟用後,MinIO 會利用 伺服器端加密,以加密狀態寫入物件。若要擷取和讀取加密的物件,使用者必須具有適當的存取權限,並提供物件的解密金鑰。
MinIO 支援 傳輸層安全性 (TLS) 1.2 和 1.3 版來加密物件。TLS 取代了先前使用的安全通訊端層 (SSL) 方法,該方法現已棄用。由網際網路工程任務組 (IETF) 維護的 TLS 標準,提供網際網路通訊使用的標準,以支援加密、身分驗證和資料完整性。
驗證使用者和驗證物件存取的過程稱為 TLS 交握。驗證後,TLS 會提供密碼,以加密然後解密從伺服器到請求用戶端的資訊傳輸。
MinIO 支援多種 伺服器端加密方法。
我可以在儲存貯體內的資料夾結構中組織物件嗎?
MinIO 為每個物件使用 前綴 方法,該方法模仿傳統檔案系統中的資料夾結構。前綴包含在物件名稱前面加上固定字串。
使用前綴時,您不會手動建立資料夾和子資料夾。相反地,MinIO 會在物件名稱的前綴中尋找 /
字元。每個 /
都表示新的資料夾或子資料夾。
使用物件的名稱和前綴,MinIO 會自動為儲存的物件產生一系列資料夾和子資料夾。當您在多個物件上使用相同的前綴字串時,MinIO 會將這些物件識別為相似或已分組的物件。
例如,名為 /articles/john.doe/2022-01-02-MinIO-Object-Storage.md
的物件最終會在 articles
儲存貯體中,並位於標記為 john.doe
的資料夾中。
MinIO 物件儲存區可能類似下列結構,其中包含三個儲存貯體。MinIO 會根據這些物件的前綴,在 articles
儲存貯體中自動產生兩個資料夾。
/ #root
/images/
2022-01-02-MinIO-Diagram.png
2022-01-03-MinIO-Advanced-Deployment.png
MinIO-Logo.png
/videos/
2022-01-04-MinIO-Interview.mp4
/articles/
/john.doe/
2022-01-02-MinIO-Object-Storage.md
2022-01-02-MinIO-Object-Storage-comments.json
/jane.doe/
2022-01-03-MinIO-Advanced-Deployment.png
2022-01-02-MinIO-Advanced-Deployment-comments.json
2022-01-04-MinIO-Interview.md
MinIO 本身並不限制任何特定前綴可以包含的物件數量。但是,硬體和網路條件可能會顯示大型前綴的效能影響。
具有適中或以預算為重點的硬體的部署應設計其工作負載,以每個前綴 10,000 個物件為基準。根據基準測試和對實際工作負載的監控,增加此目標,直至硬體可以有意義地處理的範圍。
具有高效能或企業級 硬體的部署通常可以處理數百萬個或更多物件的前綴。
MinIO SUBNET 企業帳戶可以利用年度架構審查作為部署和維護策略的一部分,以確保您的 MinIO 相依專案的長期效能和成功。
如需深入討論限制前綴內容的好處,請參閱關於最佳化 S3 效能的文章。
我如何在 MinIO 上備份和還原物件?
MinIO 提供兩種複寫類型,以將物件、其版本及其元資料從一個位置複製到另一個位置。您可以在 儲存貯體層級 或 站點層級設定複寫。
儲存貯體層級複寫可以作為單向主動-被動複寫 (例如用於歸檔目的) 或作為雙向主動-主動複寫,以使兩個儲存貯體彼此保持同步。
站點層級複寫作為雙向主動-主動複寫,以使多個資料位置 (例如不同的地理資料中心) 彼此保持同步。
除了複寫之外,MinIO 還提供鏡像服務。mc mirror
僅將實際物件複製到任何其他與 S3 相容的資料儲存區,包括其他 MinIO 儲存區。但是,版本和元資料不會使用 mc mirror
命令備份。
對磁碟的獨佔存取權
MinIO 要求 對於為物件儲存提供的磁碟機或磁碟區具有獨佔存取權。其他程序、軟體、指令碼或人員不應直接在提供給 MinIO 的磁碟機或磁碟區,或 MinIO 放置在其上的物件或檔案上執行任何動作。
除非 MinIO 工程團隊指示,否則請勿使用指令碼或工具直接修改、刪除或移動所提供磁碟機上的任何資料分片、同位分片或元資料檔案,包括從一個磁碟機或節點到另一個磁碟機或節點。此類操作很可能會導致超出 MinIO 復原能力範圍的廣泛損毀和資料遺失。
MinIO 提供哪些工具來根據存取速度和頻率管理物件?
分層規則 允許將經常存取的物件儲存在熱或溫儲存區中,這通常更昂貴,但提供更好的效能。
較少存取的物件可以移至冷儲存區。冷儲存區通常會以較慢的效能換取更便宜的價格。
MinIO 如何保護物件免於意外覆寫或刪除?
鎖定
鎖定,一種寫入一次讀取多次 (WORM) 機制,可防止刪除或修改物件。鎖定後,MinIO 會無限期地保留物件,直到有人移除鎖定或鎖定過期為止。
MinIO 提供
版本控制
預設情況下,以相同名稱 (包括前綴) 寫入的物件會覆寫現有相同名稱的物件。MinIO 提供一個設定選項,以建立啟用版本控制的儲存貯體。版本控制 提供對唯一命名物件隨著時間變化的各種反覆運算的存取權。啟用後,MinIO 會將變更的物件寫入與原始物件不同的版本,允許存取原始物件和較新的變更物件。
MinIO 儲存貯體的其他設定會決定在儲存貯體中保留每個物件舊版本的時間長度。