MinIOレプリケーション戦略の詳細解析

本記事では、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万未満推奨)

注意:バケット複製とサイト間複製は排他的に使用すること。複数レプリケーションポリシーの競合を防ぎます。

タグ: minio S3互換ストレージ レプリケーション構成 クラスタ同期 データ移行戦略

6月10日 22:04 投稿