本記事では、MinIOのバッチ複製・サイト間複製・バケット複製の選定基準を技術的観点から解説します。S3互換ストレージ間でのデータ移行にmc mirrorかバッチ複製か、クラスタ間同期にはサイト間複製とバケット複製のどちらが適切かという疑問に応えます。
既存データソースからのコピー戦略
ローカルディスクやS3互換ストレージに既存データがある場合、以下の2つの手法が推奨されます:
- バッチ複製:S3互換ストレージ(AWS含む)をソースとして使用
- mc mirror:ローカルディレクトリやNFSマウントからのコピー
以下は実装例です:
mc alias set minio_store http://192.168.1.100:9000 minioadmin minioadmin
mc mb minio_store/target_bucket
mc alias set legacy_store http://legacy-endpoint:8080 legacy_user legacy_pass
バッチ複製の設定ファイル生成:
mc batch generate legacy_store/ replication.yaml
生成されるYAML構成例:
replication:
apiVersion: v1
source:
type: s3
bucket: legacy_data
region: us-west-2
target:
type: s3
bucket: target_bucket
region: ap-northeast-1
実行状況確認コマンド:
mc batch status legacy_store/ job-E24HH4nNMcgY5taynaPfxu
mc batch describe legacy_store/ job-E24HH4nNMcgY5taynaPfxu
mc mirrorの実装例
mc mirror --watch legacy_store/data_bucket minio_store/target_bucket
mc diff legacy_store/data_bucket minio_store/target_bucket
選定基準比較
| 項目 | バッチ複製 | mc mirror |
|---|---|---|
| 実行環境 | サーバサイド | クライアントサイド |
| ネットワーク効率 | O(N) | O(2N) |
| 中断再開機能 | あり | なし |
| 適応シナリオ | 大規模データ移行 | リアルタイム同期 |
サイト間複製の設定
mc alias set site1 http://192.168.1.101:9000 admin admin
mc alias set site2 http://192.168.1.102:9000 admin admin
mc alias set site3 http://192.168.1.103:9000 admin admin
mc admin replicate enable site1 site2 site3
ステータス確認:
mc admin replicate status site1
mc admin replicate resync start site1 site2 site3
バケット複製の実装
# レプリケーションユーザー作成
mc admin user add site2 repl_user P@ssw0rd123
# ポリシー設定
echo '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": ["arn:aws:s3:::target-bucket/*"]
}
]
}' > replication-policy.json
mc admin policy add site2 repl_policy ./replication-policy.json
mc admin policy set site2 repl_policy user=repl_user
# 複製設定
mc replicate add site1/source-bucket https://repl_user:P@ssw0rd123@site2-endpoint:9000/target-bucket
戦略選定のガイドライン
- 初期データ移行:バッチ複製(10GB以上の大容量推奨)
- 継続的同期:サイト間複製(帯域幅1Gbps以上推奨)
- 特定バケットのみ:バケット複製(オブジェクト数10万未満推奨)
注意:バケット複製とサイト間複製は排他的に使用すること。複数レプリケーションポリシーの競合を防ぎます。