核心管理概念
以下核心概念是 MinIO 部署管理的基本要素,包括但不限於物件保留、加密和存取管理。
什麼是物件儲存?
物件是二進位資料,有時稱為二進位大型物件 (BLOB)。Blob 可以是圖像、音訊檔案、試算表,甚至是二進位可執行程式碼。像 MinIO 這樣的物件儲存平台提供了專用的工具和功能,用於儲存、擷取和搜尋 Blob。
MinIO 物件儲存使用儲存桶來組織物件。儲存桶類似於檔案系統中的資料夾或目錄,每個儲存桶可以容納任意數量的物件。MinIO 儲存桶提供與 AWS S3 儲存桶相同的功能。
例如,考慮一個託管網路部落格的應用程式。該應用程式需要儲存各種 Blob,包括豐富的多媒體,如影片和圖像。
MinIO 透過 prefixing
的功能支援多層巢狀目錄,以支援最動態的物件儲存工作負載。
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) 方法,該方法現已棄用。由網際網路工程任務組 (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 儲存貯體的其他設定會決定在儲存貯體中保留每個物件較舊版本多長時間。