文件

核心管理概念

以下核心概念是 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) 方法,該方法已被棄用。TLS 標準由網際網路工程任務組 (IETF) 維護,提供了網際網路通訊使用的標準,以支援加密、身份驗證和資料完整性。

驗證使用者身分並確認物件存取權的過程稱為 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 儲存桶上的其他組態會決定在儲存桶中保留每個物件舊版本的時間長度。