文件

核心管理概念

以下核心概念是 MinIO 部署管理的基本要素,包括但不限於物件保留、加密和存取管理。

什麼是物件儲存?

物件是二進位資料,有時稱為二進位大型物件 (BLOB)。BLOB 可以是圖片、音訊檔案、試算表,甚至是二進位可執行程式碼。像 MinIO 這樣的物件儲存平台提供專用的工具和功能,用於儲存、檢索和搜尋 BLOB。

MinIO 物件儲存使用儲存貯體來組織物件。儲存貯體類似於檔案系統中的資料夾或目錄,每個儲存貯體可以容納任意數量的物件。MinIO 儲存貯體提供的功能與 AWS S3 儲存貯體相同。

例如,考慮一個託管網路部落格的應用程式。該應用程式需要儲存各種 BLOB,包括豐富的多媒體內容,例如影片和圖片。

MinIO 透過 prefixing 功能支援多層巢狀目錄,以支援甚至最動態的物件儲存工作負載。

MinIO 如何決定物件的存取權?

MinIO 要求用戶端對每個新操作執行身分驗證和授權。身分和存取管理 (IAM)因此是 MinIO 組態的關鍵元件。

身分驗證會驗證連線用戶端的身份。MinIO 要求用戶端使用AWS Signature Version 4 協定進行身分驗證,並支援已棄用的 Signature Version 2 協定。具體來說,用戶端必須提供有效的存取金鑰和秘密金鑰,才能存取任何 S3 或 MinIO 管理 API,例如 PUTGETDELETE 操作。

然後,MinIO 會檢查經過身分驗證的使用者或用戶端是否具有授權,可以在部署上執行操作或使用資源。MinIO 使用基於政策的存取控制 (PBAC),其中每個政策都描述一或多個規則,概述使用者或使用者群組的權限。MinIO 在建立政策時支援 S3 特有的動作條件

依預設,MinIO 拒絕存取使用者的指定或繼承政策中未明確提及的動作或資源。

MinIO 提供一個存取管理功能作為軟體的一部分。或者,您可以將 MinIO 設定為使用 Active Directory/LDAPOpenID/OIDC 的其中一個外部 IAM 提供者進行身分驗證。

MinIO 如何保護資料安全?

MinIO 支援在磁碟上 (靜態加密) 和從一個位置轉換到另一個位置時 (傳輸中加密,或「傳輸中」) 編碼物件的方法。啟用後,MinIO 會使用伺服器端加密以加密狀態寫入物件。若要檢索和讀取加密物件,使用者必須具有適當的存取權限,並提供物件的解密金鑰。

MinIO 支援 傳輸層安全性 (TLS) 1.2 和 1.3 版的物件加密。TLS 取代了先前使用的安全通訊端層 (SSL) 方法,該方法已遭棄用。網際網路工程任務組 (IETF) 維護的 TLS 標準提供了網際網路通訊用來支援加密、身分驗證和資料完整性的標準。

驗證使用者身分並確認對物件的存取權的過程稱為 TLS 握手 (TLS Handshake)。一旦通過驗證,TLS 會提供密碼,以加密然後解密從伺服器傳輸到請求用戶端的資訊。

MinIO 支援多種 伺服器端加密 方法。

我可以在儲存桶內以資料夾結構組織物件嗎?

MinIO 對每個物件使用 前綴 (prefix) 方法,模仿傳統檔案系統的資料夾結構。前綴處理包括在物件名稱前加上固定的字串。

使用前綴時,您不需要手動建立資料夾和子資料夾。相反地,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 如何保護物件免於意外覆寫或刪除?

鎖定

鎖定是一種「一次寫入、多次讀取 (Write Once Read Many, WORM)」機制,可防止刪除或修改物件。鎖定後,MinIO 會無限期保留物件,直到有人移除鎖定或鎖定過期為止。

MinIO 提供

  • 法律保留,適用於所有使用者無限期保留的鎖定

  • 合規保留,適用於所有使用者基於時間的限制

  • 管理鎖定,適用於非特權使用者基於時間的規則

版本控制

預設情況下,以相同名稱(包括前綴)寫入的物件會覆寫現有同名的物件。MinIO 提供一個配置選項,可以建立啟用版本控制的儲存桶。 版本控制 提供對隨著時間推移而變更的唯一命名物件的各種迭代版本的存取。啟用後,MinIO 會將變更後的物件寫入與原始物件不同的版本,允許存取原始物件和較新的變更物件。

MinIO 儲存桶上的其他配置會決定在儲存桶中保留每個物件的較舊版本多久時間。