核心管理概念
以下核心概念是 MinIO 部署管理的基本概念,包括但不限於物件保留、加密和存取管理。
什麼是物件儲存?
物件是二進位資料,有時稱為二進位大型物件 (BLOB)。BLOB 可以是影像、音訊檔案、試算表,甚至可以是二進位可執行程式碼。像 MinIO 這樣的物件儲存平台提供專用的工具和功能,用於儲存、擷取和搜尋 BLOB。
MinIO 物件儲存使用儲存貯體來整理物件。儲存貯體類似於檔案系統中的資料夾或目錄,其中每個儲存貯體可以容納任意數量的物件。MinIO 儲存貯體提供與 AWS S3 儲存貯體相同的功能。
例如,考慮一個託管網路部落格的應用程式。該應用程式需要儲存各種 BLOB,包括豐富的多媒體,如影片和影像。
MinIO 透過 前綴
功能支援多個層級的巢狀目錄,以支援即使是最動態的物件儲存工作負載。
MinIO 如何決定物件的存取權限?
MinIO 要求用戶端為每個新操作執行驗證和授權。因此,身分和存取管理 (IAM)是 MinIO 組態的關鍵元件。
驗證 會驗證連線用戶端的身份。MinIO 要求用戶端使用AWS Signature 第 4 版協定進行驗證,並支援已棄用的 Signature 第 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
的物件,最終會在標籤為 john.doe
的資料夾中,位於 articles
儲存桶中。
一個 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 儲存桶上的其他設定會決定在儲存桶中保留每個物件的較舊版本多久。