文件

核心管理概念

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

什麼是物件儲存?

物件 是二進位資料,有時稱為二進位大型物件 (BLOB)。Blob 可以是影像、音訊檔案、試算表,甚至是二進位可執行程式碼。類似 MinIO 的物件儲存平台提供專用的工具和功能來儲存、擷取和搜尋 Blob。

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

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

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

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

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

驗證 會驗證連線用戶端的身份。MinIO 要求用戶端使用 AWS 簽章版本 4 協定進行驗證,並支援已棄用的簽章版本 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 會提供加密然後解密從伺服器傳輸到要求用戶端的資訊的密碼。

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 如何保護物件免於意外覆寫或刪除?

鎖定

鎖定,一種寫一次讀多次 (WORM) 機制,可防止刪除或修改物件。鎖定時,MinIO 會無限期保留物件,直到有人移除鎖定或鎖定過期為止。

MinIO 提供

版本控制

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

MinIO 儲存桶上的其他設定決定了在儲存桶中保留每個物件的舊版本時間長度。