啟用多站點伺服器端儲存桶複製
此頁面上的程序設定多個 MinIO 部署之間的自動伺服器端儲存桶複製。多站點主動-主動複製建立在啟用雙向伺服器端儲存桶複製程序之上,並額外考慮到確保所有站點之間可預測的複製行為。
若要設定任意 S3 相容服務之間的複製,請使用
mc mirror
。若要設定兩個 MinIO 部署之間的單向「主動-主動」複製,請參閱啟用雙向伺服器端儲存桶複製。
若要設定 MinIO 部署之間的單向「主動-被動」複製,請參閱啟用單向伺服器端儲存桶複製。
多站點主動-主動複製組態可以跨越多個機架、資料中心或地理位置。設定和維護多站點組態的複雜性通常會隨著站點數量和每個站點的大小而增加。希望實施多站點複製的企業應考慮利用MinIO SUBNET支援,以取得解決該使用案例所需的專業知識、規劃和工程資源。
另請參閱
使用
mc replicate update
命令修改現有的複製規則。使用
mc replicate update
命令搭配--state "disable"
旗標,以停用現有的複製規則。使用
mc replicate rm
命令來移除現有的複製規則。
需求
您必須符合儲存桶複製需求中描述的所有儲存桶複製基本需求。
此外,若要建立多站點儲存桶複製設定,您必須符合以下額外需求
存取所有叢集
您必須具有網路存取權限和具有正確權限的所有部署的登入憑證,才能設定多站點主動-主動儲存桶複製。
您可以透過登入每個部署的MinIO 主控台或安裝mc
並使用命令列來存取部署。
如果使用命令列,請使用mc alias set
命令為每個 MinIO 部署建立別名。別名建立需要指定部署上使用者的存取金鑰。此使用者必須具有在部署上建立和管理使用者和原則的權限。
具體而言,請確保使用者至少具有
考量事項
點擊以展開以下任何項目
使用一致的複製設定
MinIO 支援自訂複製設定,以啟用或停用下列複製行為
複製刪除操作
複製刪除標記
複製現有物件
僅複製中繼資料變更
在設定儲存貯體複製規則時,請確保參與多站點複製的所有 MinIO 部署都使用相同的複製行為,以確保物件同步的一致性和可預測性。
複製現有物件
MinIO 支援自動複製儲存貯體中現有的物件。
MinIO 需要使用 mc replicate add --replicate
或 mc replicate update --replicate
並包含 existing-objects
複製功能標誌,明確啟用現有物件的複製。此程序包括啟用現有物件複製所需的標誌。
複製刪除操作
MinIO 支援將刪除操作複製到目標儲存貯體。具體來說,MinIO 可以複製版本控制的刪除標記和特定版本化物件的刪除
對於物件的刪除操作,MinIO 複製也會在目標儲存貯體上建立刪除標記。
對於物件版本的刪除操作,MinIO 複製也會刪除目標儲存貯體上的這些版本。
MinIO 需要使用 mc replicate add --replicate
或 mc replicate update --replicate
明確啟用刪除操作和刪除標記的複製。此程序包括啟用刪除操作和刪除標記複製所需的標誌。
MinIO 不會複製因套用生命週期管理到期規則而產生的刪除操作。在所有複製站點上為儲存貯體設定相符的到期規則,以確保物件到期的一致應用。
程序
此程序需要在參與多站點複製設定的每個 MinIO 部署上重複步驟。根據部署的數量,此程序可能需要大量的時間和實作上的細心。MinIO 建議在嘗試實作文件中說明的步驟之前,先仔細閱讀程序。
使用 MinIO 主控台設定多站點儲存貯體複製
1) 建立複製規則
登入部署的 MinIO 主控台
選取要複製的儲存貯體的 管理按鈕
選取複製區段
選取新增複製規則 +
填寫要求的資訊
欄位
描述
優先順序
輸入數值以指出處理儲存貯體複製規則的順序。1 表示最高優先順序。
目標 URL
要將資料複製到的部署的 URL。
使用 TLS
如果目的地部署使用 TLS,請將切換開關保持在 開啟位置。否則,請將切換開關移至 關閉 位置。
存取金鑰
要在目的地部署上使用的使用者名稱。使用者必須具有對要複製到的儲存貯體的寫入權限。
密碼金鑰
提供的存取金鑰的密碼。
目標儲存貯體
在目的地寫入資料的儲存貯體。目標儲存貯體可以與原始儲存貯體具有相同的名稱,這取決於目標儲存貯體的位置。
區域
目的地部署的 AWS 資源區域位置。
複製模式
保留預設選取的 非同步,以允許 MinIO 在來源程式執行寫入操作完成後複製資料。選取 同步 以嘗試在物件寫入操作期間完成物件複製。
雖然同步複製可能在來源和目標儲存貯體之間產生更可靠的同步,但也可能會增加每次寫入操作的時間。
頻寬
指定複製程序在複製資料時可以使用的最大頻寬量。輸入數字並選取資料單位。
健全狀況檢查持續時間
MinIO 應該花費在驗證目的地儲存貯體上複製資料健全狀況的最大時間長度(以秒為單位)。
儲存類別
在目的地部署上用於複製資料的儲存類別。有效值為
STANDARD
或REDUCED_REDUNDANCY
。物件篩選器
使用前綴或標籤來限制要從儲存貯體複製的物件。如果您輸入多個標籤,物件必須符合所有標籤值。
中繼資料同步
保持選取以同時複製物件的中繼資料檔案。否則,請將切換開關移至 關閉 位置。
刪除標記
保持選取以同時複製 MinIO 的指示,表示物件已刪除,且也應在動作儲存貯體上標記為已刪除。否則,請將切換開關移至 關閉 位置,以防止在目的地儲存貯體中將物件標記為已刪除。
刪除
保持選取以允許複製物件版本的刪除。否則,請將切換開關移至 關閉 位置,以不複製物件版本的刪除。
選取儲存以完成新增複製規則
重複以上步驟,建立從此部署到每個其他目標部署的規則。
然後,在多站點設定中的每個其他部署上重複以上步驟,以便每個部署都有一個針對所有其他部署的單獨複製規則。
2) 驗證複製設定
前往 MinIO 主控台的 儲存貯體區段
選取您新增複製功能的儲存貯體的 瀏覽按鈕
選取 上傳 按鈕,將新物件新增至儲存貯體
選取上傳檔案
使用介面將新物件新增至儲存貯體
前往另一個部署的主控台,並選取複製中定義的目的地儲存貯體
透過複製新的唯一檔案並檢查該檔案是否複製到每個其他部署,在每個部署上重複此測試。
使用命令列 mc
設定多站點儲存貯體複製
此程序使用預留位置 ALIAS
來參考針對複製設定的每個 MinIO 部署的別名。將這些值取代為每個 MinIO 部署的適當別名。
此程序假設每個別名都對應於具有必要複製權限的使用者。
在版本 RELEASE.2022-12-24T15-21-38Z 中變更:mc replicate add
會自動建立必要的複製目標,因此不再需要使用已棄用的 mc admin remote bucket add
命令。此程序僅記錄該版本以來的程序。
1) 建立新的儲存貯體複製規則
使用 mc replicate add
命令,將新的複製規則新增至每個 MinIO 部署。
mc replicate add ALIAS/BUCKET \
--remote-bucket 'https://USER:PASSWORD@HOSTNAME:PORT/BUCKET' \
--replicate "delete,delete-marker,existing-objects"
將
ALIAS
替換為來源 MinIO 部署的別名。名稱必須與上一步建立遠端目標時指定的儲存貯體相符。將
BUCKET
替換為要從來源部署複寫的儲存貯體名稱。替換
--remote-bucket
以指定遠端 MinIO 部署和儲存貯體,ALIAS/BUCKET
將複寫至該處。USER:PASSWORD
必須對應到遠端部署上具有必要複寫權限的使用者。HOSTNAME:PORT
必須解析為遠端部署上可連線的 MinIO 執行個體。BUCKET
必須存在,且必須符合所有其他複寫需求。--replicate "delete,delete-marker,existing-objects"
旗標啟用以下複寫功能如需更完整的文件,請參閱
mc replicate add --replicate
。省略任何欄位以停用該元件的複寫。
指定 mc replicate add
的任何其他支援的選用引數。
針對參與多站點複寫組態的每個遠端 MinIO 部署重複這些命令。例如,由 MinIO 部署 minio1
、minio2
和 minio3
組成的多站點複寫組態,將需要在每個部署上針對每個遠端重複此步驟。
具體而言,在此情境中,在每個部署上執行此步驟兩次
在
minio1
部署上,針對minio2
的規則執行一次,並針對minio3
的個別規則再次執行一次。在
minio2
部署上,針對minio1
的規則執行一次,並針對minio3
的個別規則再次執行一次。在
minio3
部署上,針對minio1
的規則執行一次,並針對minio2
的個別規則再次執行一次。
2) 驗證複寫組態
使用 mc cp
將新物件複製到其中一個部署上的複寫儲存貯體。
mc cp ~/foo.txt ALIAS/BUCKET
使用 mc ls
來驗證物件是否存在於目的地儲存貯體上
mc ls ALIAS/BUCKET
透過複製新的唯一檔案並檢查該檔案是否複製到每個其他部署,在每個部署上重複此測試。