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
代表 KBG
代表 GBT
代表 TBKi
代表 KiBGi
代表 GiBTi
代表 TiB
例如,若要將頻寬速率限制為不超過 1 GiB/s,請使用下列語法
--limit-upload 1Gi
如果未指定,MinIO 不會限制頻寬速率。
- --disable
- 選用
以「已停用」狀態建立複寫規則。MinIO 在使用
mc replicate update
啟用之前,不會開始使用規則複寫物件。在停用複寫時建立的物件在啟用規則後不會立即符合複寫資格。您必須藉由將
"existing-objects"
包含到指定給mc replicate update --replicate
的複寫功能清單中,明確啟用現有物件的複寫。如需詳細資訊,請參閱現有物件的複寫。
- --limit-download
- 選用
將下載速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 指定的速率。有效單位包括
B
代表位元組K
代表 KBG
代表 GBT
代表 TBKi
代表 KiBGi
代表 GiBTi
代表 TiB
例如,若要將下載速率限制為不超過 1 GiB/s,請使用下列語法
--limit-download 1G
如果未指定,MinIO 會使用無限制的下載速率。
- --limit-upload
- 選用
將上傳速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 指定的速率。有效單位包括
B
代表位元組K
代表 KBG
代表 GBT
代表 TBKi
代表 KiBGi
代表 GiBTi
代表 TiB
例如,若要將上傳速率限制為不超過 1 GiB/s,請使用下列語法
--limit-upload 1G
如果未指定,MinIO 會使用無限制的上傳速率。
- --path
- 選用
啟用遠端儲存桶的路徑樣式查閱支援。
有效值包括
on
- 使用路徑查閱尋找遠端儲存桶off
- 使用資源定位器樣式(例如網域或 IP 位址)查閱尋找遠端儲存桶auto
- 要求 MinIO 識別要用來尋找遠端儲存桶的正確查閱類型
未定義時,MinIO 會使用
auto
值。
- --replicate
- 選用
指定下列以逗號分隔的值清單,以啟用擴充複寫功能。
delete
- 指示 MinIO 將DELETE 操作複寫到目的地儲存桶。delete-marker
- 指示 MinIO 將刪除標記複寫到目的地儲存桶。existing-objects
- 指示 MinIO 複寫在啟用複寫之前或暫停複寫時建立的物件。metadata-sync
- 指示 MinIO 複寫每個物件的中繼資料。僅適用於主動-主動複寫情況。省略此值會指示 MinIO 停止將僅限中繼資料的變更複寫回來源。
如果未指定,MinIO 會同步所有選項。
- --storage-class
- 選用
指定要套用至複寫物件的 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
必要的權限
MinIO 強烈建議建立專門用於支援儲存桶複製操作的使用者。有關向 MinIO 部署新增使用者和原則的更完整文件,請參閱 mc admin user
和 mc 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-22Z 和 minio
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 命令*可能*會按照文件所述的方式運作,但任何此類使用都需自行承擔風險。