文件

mc replicate add

在版本 RELEASE.2022-12-24T15-21-38Z 中變更:mc replicate add 取代了 mc admin bucket remote add 命令。

MinIO 會根據給定的檔案路徑或資源位置(例如 IP 或 DNS 位址)自動建立遠端目標。定義遠端目標的使用者不再需要為遠端儲存桶判斷 ARN。

語法

mc replicate add 命令會在 MinIO 部署上為儲存桶建立新的伺服器端複寫規則。

遠端儲存桶必須在執行與本機部署相同 MinIO 版本的 MinIO 部署上。

注意

mc mirror 只會同步物件的目前版本時,mc replicate 會同步物件的所有版本、版本資訊和中繼資料。

在建立規則後,MinIO 部署會自動開始將新物件同步至遠端 MinIO 部署。您可以選擇性地設定現有物件、刪除操作和完全刪除物件的同步。

下列命令會在 myminio MinIO 部署上的 mydata 儲存桶新增複寫規則

mc replicate add                                                     \
   --remote-bucket https://user:secret@minio.mysite.tld:9001/bucket  \
   --replicate "delete,delete-marker,existing-objects"               \
   myminio/mydata

複寫規則會將版本化的刪除操作、刪除標記和現有物件同步到遠端 MinIO 部署。

在版本 mc 中變更:RELEASE.2024-03-03T00-13-08Z

您可以使用已設定的 ALIAS 作為 --remote-bucket 旗標。

此命令具有下列語法

mc [GLOBALFLAGS] replicate add                     \
                 --remote-bucket string          \
                 [--bandwidth "string"]            \
                 [--disable]                       \
                 [--disable-proxy]                 \
                 [--healthcheck-seconds integer]   \
                 [--id "string"]                   \
                 [--limit-upload "string"]         \
                 [--limit-download "string"]       \
                 [--path "string"]                 \
                 [--region "string"]               \
                 [--replicate "string"]            \
                 [--storage-class "string"]        \
                 [--sync]                          \
                 [--tags "string"]                 \
                 [--priority int]                  \
                 ALIAS
  • 方括號 [] 表示選用參數。

  • 同一行上的參數是互相依存的。

  • 使用管道 | 運算子分隔的參數是互斥的。

將範例複製到文字編輯器並視需要修改,然後在終端機/shell 中執行命令。

參數

ALIAS
必要

MinIO 部署的別名以及要在其中建立複寫規則的儲存桶或儲存桶前置詞的完整路徑。例如

mc replicate add --remote-bucket https://user:secret@myminio.cloudprovider.tld:9001/bucket play/mybucket
--remote-bucket
必要

在版本 mc 中變更:RELEASE.2024-03-03T00-13-08Z

--remote-bucket 支援指定現有的別名

指定遠端位置的認證、目的地部署和儲存桶。值可能是 IP 位址、URL 或 別名/儲存桶。

例如,基於 URL 的目標可能如下所示

https://user:secret@myminio.cloudprovider.tld:9001/bucket

基於別名的目標可能如下所示

--remote-bucket minio-target/my-bucket
--bandwidth
選用

將頻寬速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 指定的速率。有效單位包括

  • B 代表位元組

  • K 代表 KB

  • G 代表 GB

  • T 代表 TB

  • Ki 代表 KiB

  • Gi 代表 GiB

  • Ti 代表 TiB

例如,若要將頻寬速率限制為不超過 1 GiB/s,請使用下列語法

--limit-upload 1Gi

如果未指定,MinIO 不會限制頻寬速率。

--disable
選用

以「已停用」狀態建立複寫規則。MinIO 在使用 mc replicate update 啟用之前,不會開始使用規則複寫物件。

在停用複寫時建立的物件在啟用規則後不會立即符合複寫資格。您必須藉由將 "existing-objects" 包含到指定給 mc replicate update --replicate 的複寫功能清單中,明確啟用現有物件的複寫。如需詳細資訊,請參閱現有物件的複寫

--disable-proxy
選用

在定義儲存桶之間的主動-主動複寫時,不要使用 Proxy。

根據預設,MinIO 會使用 Proxy。

--healthcheck-seconds
選用

遠端儲存桶的健康情況檢查之間的間隔時間長度(以秒為單位)。

如果未指定,MinIO 會使用 60 秒的間隔。

--id
選用

指定複寫規則的唯一 ID。如果未指定,MinIO 會自動產生 ID。

--limit-download
選用

將下載速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 指定的速率。有效單位包括

  • B 代表位元組

  • K 代表 KB

  • G 代表 GB

  • T 代表 TB

  • Ki 代表 KiB

  • Gi 代表 GiB

  • Ti 代表 TiB

例如,若要將下載速率限制為不超過 1 GiB/s,請使用下列語法

--limit-download 1G

如果未指定,MinIO 會使用無限制的下載速率。

--limit-upload
選用

將上傳速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 指定的速率。有效單位包括

  • B 代表位元組

  • K 代表 KB

  • G 代表 GB

  • T 代表 TB

  • Ki 代表 KiB

  • Gi 代表 GiB

  • Ti 代表 TiB

例如,若要將上傳速率限制為不超過 1 GiB/s,請使用下列語法

--limit-upload 1G

如果未指定,MinIO 會使用無限制的上傳速率。

--path
選用

啟用遠端儲存桶的路徑樣式查閱支援。

有效值包括

  • on - 使用路徑查閱尋找遠端儲存桶

  • off - 使用資源定位器樣式(例如網域或 IP 位址)查閱尋找遠端儲存桶

  • auto - 要求 MinIO 識別要用來尋找遠端儲存桶的正確查閱類型

未定義時,MinIO 會使用 auto 值。

--priority
選用

指定複寫規則的整數優先順序。此值在來源儲存桶上的所有其他規則中必須是唯一的。較高的值表示比所有其他規則具有較高的優先順序。

預設值為 0

--region
選用

要將內容複寫到的目的地儲存桶區域。

--replicate
選用

指定下列以逗號分隔的值清單,以啟用擴充複寫功能。

  • delete - 指示 MinIO 將DELETE 操作複寫到目的地儲存桶。

  • delete-marker - 指示 MinIO 將刪除標記複寫到目的地儲存桶。

  • existing-objects - 指示 MinIO 複寫在啟用複寫之前暫停複寫時建立的物件。

  • metadata-sync - 指示 MinIO 複寫每個物件的中繼資料。僅適用於主動-主動複寫情況。

    省略此值會指示 MinIO 停止將僅限中繼資料的變更複寫回來源。

如果未指定,MinIO 會同步所有選項。

--storage-class
選用

指定要套用至複寫物件的 MinIO 儲存類別

--sync
選用

為此遠端目標啟用同步複寫。

根據預設,MinIO 會使用非同步複寫。

--tags
選用

指定一個或多個 & 符號 & 分隔的索引鍵/值組標籤,MinIO 會使用這些標籤來篩選要複寫的物件。例如

mc replicate add --tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE" ALIAS

MinIO 會將複寫規則套用至其標籤集包含指定複寫標籤的任何物件。

全域旗標

此命令支援任何全域旗標

範例

設定儲存桶複製

以下 mc replicate add 命令會建立一個複製設定,將所有新的物件、現有物件、刪除操作和刪除標記同步到遠端目標。

mc replicate add myminio/mybucket \
   --remote-bucket https://user:secret@minio.mysite.tld/remotebucket \
   --replicate "delete,delete-marker,existing-objects"
  • myminio/mybucket 替換為要建立複製設定的 ALIAS 和完整的儲存桶路徑。

  • --remote-bucket 的值替換為遠端目標的 URL 或路徑。如果使用檔案路徑格式位置,請使用 --path on 選項。

  • --replicate 標記會指示 MinIO 將所有刪除操作、刪除標記和現有物件複製到遠端。有關複製行為的更多資訊,請參閱 刪除操作的複製現有物件的複製

為歷史資料記錄設定儲存桶複製

以下 mc replicate add 命令會建立一個新的儲存桶複製設定,將所有新的和現有的物件同步到遠端目標。

mc replicate add myminio/mybucket \
   --remote-bucket https://user:secret@minio.mysite.tld/remotebucket \
   --replicate "existing-objects"
  • myminio/mybucket 替換為要建立複製設定的 ALIAS 和完整的儲存桶路徑。

  • --remote-bucket 的值替換為遠端目標的位置。如果使用檔案路徑格式位置,請使用 --path on 選項。

  • --replicate 標記會指示 MinIO 將所有現有物件複製到遠端。有關複製行為的更多資訊,請參閱 現有物件的複製

產生的遠端副本代表遠端物件的歷史記錄,其中來源上的刪除操作對遠端副本沒有影響。

行為

伺服器端複製需要 MinIO 來源和目的地

MinIO 伺服器端複製僅在 MinIO 部署之間運作。來源和目的地部署都必須執行 MinIO。

若要在任意 S3 相容服務之間設定複製,請使用 mc mirror

在來源和目的地儲存桶上啟用版本控制

MinIO 依賴版本控制提供的不可變性保護,以同步來源和複製目標之間的物件。

在開始此程序之前,請使用 mc version enable 命令在來源和目的地儲存桶上啟用版本控制。

mc version enable ALIAS/PATH
  • ALIAS 替換為 MinIO 部署的 alias

  • PATH 替換為要啟用版本控制的儲存桶。

必要的權限

MinIO 強烈建議建立專門用於支援儲存桶複製操作的使用者。有關向 MinIO 部署新增使用者和原則的更完整文件,請參閱 mc admin usermc admin policy

以下原則提供在部署上設定和啟用複製的權限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "admin:SetBucketTarget",
                "admin:GetBucketTarget"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteBucketConfiguration"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetObjectRetention",
                "s3:GetObjectLegalHold",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationRuleConfiguration"
        }
    ]
}
  • "EnableRemoteBucketConfiguration" 陳述式授與建立遠端目標以支援複製的權限。

  • "EnableReplicationRuleConfiguration" 陳述式授與在儲存桶上建立複製規則的權限。"arn:aws:s3:::*" 資源會將複製權限套用至來源部署上的任何儲存桶。您可以視需要將使用者原則限制為特定的儲存桶。

使用 mc admin policy create 將此原則新增至每個作為複製來源的部署。使用 mc admin user add 在部署上建立使用者,並使用 mc admin policy attach 將原則與該新使用者建立關聯。

以下原則提供啟用將複製資料同步部署的權限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetBucketObjectLockConfiguration",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationOnBucket"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ReplicateTags",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:PutObject",
                "s3:PutObjectRetention",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutObjectLegalHold",
                "s3:DeleteObject",
                "s3:ReplicateObject",
                "s3:ReplicateDelete"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicatingDataIntoBucket"
        }
    ]
}
  • "EnableReplicationOnBucket" 陳述式授與遠端目標擷取儲存桶層級設定以支援 MinIO 部署中所有儲存桶的複製操作的權限。若要將原則限制為特定儲存桶,請在 Resource 陣列中指定這些儲存桶,類似於 "arn:aws:s3:::bucketName"

  • "EnableReplicatingDataIntoBucket" 陳述式授與遠端目標將資料同步到 MinIO 部署中的任何儲存桶的權限。若要將原則限制為特定儲存桶,請在 Resource 陣列中指定這些儲存桶,類似於 "arn:aws:s3:::bucketName/*"

使用 mc admin policy create 將此原則新增至每個作為複製目標的部署。使用 mc admin user add 在部署上建立使用者,並使用 mc admin policy attach 將原則與該新使用者建立關聯。

現有物件的複製

mc RELEASE.2021-06-13T17-48-22Zminio RELEASE.2021-06-07T21-40-51Z 開始,MinIO 支援自動複製儲存桶中的現有物件。MinIO 現有物件複製實作的功能與 AWS 在 S3 儲存桶之間複製現有物件 類似,而沒有聯絡技術支援的額外開銷。

  • 若要在建立新的複製規則時啟用現有物件的複製,請將 "existing-objects" 新增至指定給 mc replicate add --replicate 的複製功能清單。

  • 若要為現有複製規則啟用現有物件的複製,請使用 mc replicate add --replicate"existing-objects" 新增至現有複製功能的清單。編輯複製規則時,您必須指定所有所需的複製功能。

有關此行為的更完整文件,請參閱 現有物件的複製

中繼資料變更的同步

MinIO 支援雙向主動-主動複寫組態,其中 MinIO 會在兩個 MinIO 部署上的儲存桶之間同步新的和修改過的物件。從mc RELEASE.2021-05-18T03-39-44Z開始,預設情況下,MinIO 會將僅限中繼資料的變更同步回「來源」部署。在此更新之前,MinIO 不支援將僅限中繼資料的變更同步到複寫的物件。

啟用中繼資料同步後,MinIO 會重設物件的複寫狀態,以指出是否符合複寫資格。具體來說,當應用程式對狀態為 REPLICA 的物件執行僅限中繼資料的更新時,MinIO 會將物件標記為 PENDING,並符合複寫資格。

若要停用中繼資料同步,請使用 mc replicate update --replicate 命令,並從複寫功能清單中省略 replica-metadata-sync

刪除操作的複寫

MinIO 支援將刪除操作複寫到目標儲存桶。具體來說,MinIO 可以複寫刪除標記刪除特定版本化物件

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

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

MinIO *不*會複寫由於生命週期管理到期規則而刪除的物件。MinIO 只會複寫明確的用戶端驅動刪除操作。

MinIO 需要使用 mc replicate add --replicate 旗標明確啟用刪除操作的複寫。此程序包括啟用刪除操作和刪除標記複寫所需的旗標。有關此行為的更完整文件,請參閱刪除操作的複寫

加密物件的複寫

MinIO 支援複寫使用自動伺服器端加密 (SSE-S3) 加密的物件。來源和目標儲存桶*都必須*啟用自動 SSE-S3,MinIO 才能複寫加密的物件。

作為複寫過程的一部分,MinIO 會在來源儲存桶上解密物件,並傳輸未加密的物件。然後,目標 MinIO 部署會使用目標儲存桶 SSE-S3 組態重新加密物件。MinIO *強烈建議*在來源和目標部署上啟用 TLS,以確保物件在傳輸過程中的安全。

MinIO *不*支援複寫用戶端加密的物件 (SSE-C)。

S3 相容性

mc 命令列工具的建立旨在與 AWS S3 API 相容,並且已使用 MinIO 和 AWS S3 測試其預期的功能和行為。

MinIO 不為其他與 S3 相容的服務提供任何保證,因為它們的 S3 API 實作未知,因此不受支援。雖然 mc 命令*可能*會按照文件所述的方式運作,但任何此類使用都需自行承擔風險。