文件

啟用多站點伺服器端儲存桶複製

此頁面上的程序設定多個 MinIO 部署之間的自動伺服器端儲存桶複製。多站點主動-主動複製建立在啟用雙向伺服器端儲存桶複製程序的基礎上,並額外考慮了確保所有站點之間可預測的複製行為的要求。

Active-Active Replication synchronizes data between multiple remote deployments.

多站點主動-主動複製組態可以跨越多個機架、資料中心或地理位置。設定和維護多站點組態的複雜性通常會隨著站點數量和每個站點的大小而增加。希望實施多站點複製的企業應考慮利用MinIO SUBNET 支援,以取得解決該用例所需的專業知識、規劃和工程資源。

另請參閱

需求

您必須滿足儲存桶複製需求中描述的儲存桶複製的所有基本需求。

此外,若要建立多站點儲存桶複製設定,您必須滿足以下額外需求

存取所有叢集

您必須擁有網路存取權,並使用具備所有部署正確權限的登入憑證,才能設定多站點主動-主動儲存桶複寫。

您可以透過登入每個部署的 MinIO 主控台,或是安裝 mc 並使用命令列來存取部署。

如果使用命令列,請使用 mc alias set 命令為每個 MinIO 部署建立別名。建立別名需要指定部署上使用者的存取金鑰。此使用者必須具有在部署上建立和管理使用者及原則的權限。

具體而言,請確保使用者至少具有以下權限:

考量事項

點擊以展開以下任一項

使用一致的複寫設定

MinIO 支援自訂複寫設定,以啟用或停用以下複寫行為:

  • 複寫 刪除操作

  • 複寫刪除標記

  • 複寫現有物件

  • 複寫僅限中繼資料的變更

當設定儲存桶的複寫規則時,請確保參與多站點複寫的所有 MinIO 部署使用相同的複寫行為,以確保物件同步的一致性和可預測性。

複寫現有物件

MinIO 支援自動複寫儲存桶中的現有物件。

MinIO 要求使用 mc replicate add --replicatemc replicate update --replicate 並包含 existing-objects 複寫功能標誌,來明確啟用現有物件的複寫。此程序包括啟用現有物件複寫所需的標誌。

複寫刪除操作

MinIO 支援將 刪除操作 複寫到目標儲存桶。具體而言,MinIO 可以複寫版本控制的 刪除標記 和特定版本物件的刪除。

  • 對於物件的刪除操作,MinIO 複寫也會在目標儲存桶上建立刪除標記。

  • 對於物件版本的刪除操作,MinIO 複寫也會刪除目標儲存桶上的這些版本。

MinIO 要求使用 mc replicate add --replicatemc replicate update --replicate 來明確啟用刪除操作的複寫。此程序包括啟用刪除操作和刪除標記複寫所需的標誌。

MinIO 會複寫因應用 生命週期管理到期規則 而導致的刪除操作。在所有複寫站點上為儲存桶設定相符的到期規則,以確保物件到期的一致應用。

程序

此程序要求為參與多站點複寫組態的每個 MinIO 部署重複步驟。根據部署數量,此程序可能需要大量的時間和仔細的實作。MinIO 建議在嘗試實作記錄的步驟之前,先仔細閱讀此程序。

使用 MinIO 主控台設定多站點儲存桶複寫

1) 建立複寫規則

  1. 登入部署的 MinIO 主控台

  2. 選取要複寫的儲存桶的 管理 按鈕

    After a successful log in, the MinIO Console shows a list of buckets with options to manage or explore each bucket.
  3. 選取 複寫 區段

    After selecting a bucket to manage, MinIO shows summary information about the bucket as well as a navigation list of pages for adjusting the bucket configuration.
  4. 選取 新增複寫規則 +

  5. 填寫要求的資訊

    欄位

    說明

    優先順序

    輸入一個數值,以表示處理儲存桶複寫規則的順序。1 表示最高的重要性。

    目標 URL

    要將資料複寫到的部署 URL。

    使用 TLS

    如果目的地部署使用 TLS,請將切換開關保持在 開啟 位置。否則,請將切換開關移至 關閉 位置。

    存取金鑰

    要在目的地部署上使用的使用者名稱。使用者必須具有複寫到儲存桶的寫入權限。

    密碼金鑰

    所提供的 存取金鑰 的密碼。

    目標儲存桶

    要將資料寫入的目的地儲存桶。目標儲存桶的名稱可能與原始儲存桶相同,具體取決於目的地儲存桶的位置。

    區域

    目的地部署的 AWS 資源區域位置。

    複寫模式

    保持預設選項 非同步,以允許 MinIO 在原始部署上寫入操作完成後複寫資料。選取 同步 以嘗試在其寫入操作期間完成物件的複寫。

    雖然同步複寫可能會導致原始儲存桶和目標儲存桶之間更可靠的同步,但也可能會增加每次寫入操作的時間。

    頻寬

    指定複寫過程在複寫資料時可以使用的最大頻寬量。輸入一個數字並選取一個資料單位。

    健康狀態檢查持續時間

    MinIO 應驗證目的地儲存桶上複寫資料的健康狀態的最大時間長度 (以秒為單位)。

    儲存類別

    要在目的地部署上用於複寫資料的儲存類別。有效值為 STANDARDREDUCED_REDUNDANCY

    物件篩選器

    字首標籤 限制要從儲存桶複寫的物件。如果您輸入多個標籤,則物件必須符合所有標籤值。

    中繼資料同步

    保持選取狀態,以同時複寫物件的中繼資料檔案。否則,請將切換開關移至 關閉 位置。

    刪除標記

    保持選取狀態,以同時複寫 MinIO 指示物件已刪除,且也應在動作儲存桶中標記為已刪除的指示。否則,請將切換開關移至 關閉 位置,以防止在目的地儲存桶中將物件標記為已刪除。

    刪除

    保持選取狀態,以允許複寫物件版本的刪除。否則,請將切換開關移至 關閉 位置,以不複寫物件版本的刪除。

  6. 選取 儲存 以完成新增複寫規則

重複以上步驟,以從此部署建立到每個其他目標部署的規則。

然後,在多站點設定中的每個其他部署上重複以上步驟,以便每個部署都具有針對所有其他部署的單獨複寫規則。

2) 驗證複寫設定

  1. 前往 MinIO 主控台的 儲存桶 區段

    The default screen when logging into the MinIO Console. The screen shows a list of the buckets available in the Deployment with options to Manage or Browse the bucket contents.
  2. 選取您新增複寫之儲存桶的 瀏覽 按鈕

    The contents of a bucket display after selecting to Browse the MinIO bucket. Options including to Rewind, Refresh, or Upload contents.
  3. 選取 上傳 按鈕以將新物件新增至儲存桶

  4. 選取 上傳檔案

  5. 使用介面將新物件新增至儲存桶

  6. 前往其他部署的主控台,並選取複寫中定義的目的地儲存桶

在每個部署上重複此測試,方法是複製一個新的唯一檔案,並檢查該檔案是否複寫到每個其他部署。

使用命令列 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 部署 minio1minio2minio3 組成的多站點複寫組態將需要針對每個遠端在每個部署上重複此步驟。

具體來說,在此案例中,在每個部署上執行此步驟兩次

  • minio1 部署上,一次針對 minio2 的規則,另一次針對 minio3 的個別規則。

  • minio2 部署上,一次針對 minio1 的規則,另一次針對 minio3 的個別規則。

  • minio3 部署上,一次針對 minio1 的規則,另一次針對 minio2 的個別規則。

2) 驗證複寫組態

使用 mc cp 將新物件複製到其中一個部署上複寫的儲存桶。

mc cp ~/foo.txt ALIAS/BUCKET

使用 mc ls 驗證物件是否存在於目標儲存桶中

mc ls ALIAS/BUCKET

在每個部署上重複此測試,方法是複製一個新的唯一檔案,並檢查該檔案是否複寫到每個其他部署。

您也可以使用 mc stat 來檢查檔案,以檢查物件目前的複寫階段