核心管理概念
以下核心概念是 MinIO 部署管理的基本要素,包括但不限於物件保留、加密和存取管理。
什麼是物件儲存?
物件 是二進位資料,有時稱為二進位大型物件 (BLOB)。Blob 可以是影像、音訊檔案、試算表,甚至是二進位可執行程式碼。物件儲存平台 (如 MinIO) 提供專用的工具和功能,用於儲存、擷取和搜尋 Blob。
MinIO 物件儲存使用儲存桶 來組織物件。儲存桶類似於檔案系統中的資料夾或目錄,其中每個儲存桶可以保存任意數量的物件。MinIO 儲存桶提供與 AWS S3 儲存桶相同的功能。
例如,考慮一個託管 Web 部落格的應用程式。該應用程式需要儲存各種 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 儲存桶上的其他設定決定了在儲存桶中保留每個物件的舊版本時間長度。