核心管理概念
以下核心概念是 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,例如 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 儲存桶上的其他配置決定了在儲存桶中保留每個物件舊版本的時間長度。