核心管理概念
以下核心概念是 MinIO 部署管理的基本要素,包括但不限於物件保留、加密和存取管理。
什麼是物件儲存?
物件是二進制數據,有時稱為二進制大型物件 (BLOB)。Blob 可以是圖像、音頻文件、試算表,甚至是二進制可執行代碼。像 MinIO 這樣的物件儲存平台提供專用的工具和功能來儲存、檢索和搜尋 Blob。
MinIO 物件儲存使用儲存桶來組織物件。儲存桶類似於檔案系統中的資料夾或目錄,其中每個儲存桶可以保存任意數量的物件。MinIO 儲存桶提供與 AWS S3 儲存桶相同的功能。
例如,考慮一個託管網路部落格的應用程式。該應用程式需要儲存各種 Blob,包括像影片和圖像這樣的豐富多媒體。
MinIO 通過前綴
的功能支援多個層級的巢狀目錄,以支援即使是最動態的物件儲存工作負載。
MinIO 如何判斷對物件的存取權?
MinIO 要求用戶端為每個新操作執行身份驗證和授權。身份和存取管理 (IAM)因此是 MinIO 配置的關鍵組件。
身份驗證驗證連接用戶端的身份。MinIO 要求用戶端使用AWS 簽名版本 4 協定進行身份驗證,並支援已棄用的簽名版本 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) 方法,該方法現已棄用。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 儲存桶上的其他配置決定了在儲存桶中保留每個物件的舊版本多久。