バケット間のデータの移動

rclone を使用して、並列マルチパートアップロードでオブジェクトを同期させることにより、同じリージョンまたは異なるリージョンにある IBM Cloud® Object Storage バケット間でデータを移動します。

ある時点で、データを別の IBM Cloud® Object Storage リージョンに移動またはバックアップする必要が生じることがあります。 オブジェクト ストレージのリージョン間でデータを移動または複製する手法の一つとして、 オープンソースの rclone コマンドラインユーティリティなどの同期またはクローンツールを使用する方法があります。 このユーティリティーは、クラウド・オブジェクト・ストレージを含む 2 つのロケーション間でファイル・ツリーを同期します。 Object Storage にデータを書き込む rclone 際、 COS/S3 API を使用して大容量オブジェクトを分割し、構成パラメータとして設定されたサイズやしきい値に基づいて、各部分を並行してアップロードします。

このガイドでは、同じリージョン内の IBM Cloud Object Storage バケットから別の Object Storage バケットへ、または別の Object Storage リージョン内の 2 番目の Object Storage バケットへデータをコピーする手順を説明します。 各バケットからコピーするすべてのデータについて、これらのステップを繰り返す必要があります。 データの移行が完了したら、を使用して転送の整合性を確認できます rclone check。これにより、ファイルサイズまたはチェックサムのいずれにも一致しないオブジェクトの一覧が表示されます。 さらに、使用可能なソースから選択した宛先への rclone sync を定期的に実行することによって、バケットの同期状態を維持することもできます。

宛先 IBM Cloud Object Storage バケットの作成

IBM Cloud Object Storage の既存のインスタンスを使用するか、新規インスタンスを作成するかを選択できます。 既存のインスタンスを再使用する場合は、ステップ 2 にスキップします。

  1. カタログからIBM Cloud Object Storage のインスタンスを作成します。
  2. 転送したデータの保管に必要となるバケットを作成します。 入門ガイドに目を通して、エンドポイントやストレージ・クラスなどの主要な概念についての理解を深めてください。
  3. このユーティリティ rclone は、バケットの設定やオブジェクトのメタデータを一切コピーしません。 したがって、有効期限、アーカイブ、キー保護などの Object Storage 機能のいずれかをご利用の場合は、データを移行する前に、必ず適切に設定を行ってください。 Object Storage の各地域でどの機能がサポートされているかを確認するには、 機能マトリックス をご参照ください。

フィーチャー構成とアクセス・ポリシーの資料は、以下にリストされている IBM Cloud ポータル・ページで確認できます。

マイグレーション・ツールを実行するためのコンピュート・リソースのセットアップ

  1. Linux™/macOS™ /BSD™ マシン、またはお客様のデータに最も近い場所にある IBM Cloud Infrastructure のベアメタルサーバーまたは仮想サーバーを選択してください。 一般的に、宛先バケットと同じリージョンにあるデータセンターを選択するのが最善の選択です(たとえば、から mel01 へデータを移動する場合は au-syd、の VM またはベアメタルを使用してください au-syd)。 推奨されるサーバー構成は、32 GB RAM、2 から 4 コア・プロセッサー、および 1000 Mbps のプライベート・ネットワーク速度です。
  2. IBM Cloud Infrastructureのベアメタルまたは仮想サーバー上で移行を実行する場合は、ネットワークのアウトバウンド通信料金が発生しないよう、 プライベートなObject Storage エンドポイントを使用してください。
  3. それ以外の場合は、 パブリックまたはダイレクトの Object Storage エンドポイントを使用してください。
  4. パッケージマネージャーまたは事前コンパイル済みのバイナリのいずれかrclone からインストールしてください。
curl https://rclone.org/install.sh | sudo bash

Object Storage のソースデータ rclone 用に設定する

rclone でマイグレーションのソースおよび宛先の「プロファイル」を作成します。

必要に応じて、 Object Storage の認証情報を取得してください

  1. IBM Cloud コンソールで、 Object Storage インスタンスを選択してください。
  2. ナビゲーション・ペインで**「サービス資格情報」**をクリックします。
  3. **「新規資格情報」**をクリックして、資格情報を生成します。
  4. **「詳細」**オプションを選択します。
  5. HMAC 資格情報を**「オン」**にします。
  6. 追加 をクリックします。
  7. 作成した資格情報を表示し、JSON コンテンツをコピーします。

Object Storage エンドポイントを取得する

  1. ナビゲーション・ペインで**「バケット」**をクリックします。
  2. マイグレーション宛先のバケットをクリックします。
  3. ナビゲーション・ペインで**「構成」**をクリックします。
  4. **「エンドポイント」**セクションまでスクロールダウンし、マイグレーション・ツールの実行場所に基づくエンドポイントを選択します。
  5. 以下の内容をコピーして に貼り付け、 Object Storage の宛先を作成してください rclone.conf。
[COS_SOURCE]
type = s3
provider = IBMCOS
env_auth = false
access_key_id =
secret_access_key =
endpoint =

宛先を構成するために作成する必要があるプロファイルの名前として [COS_DESTINATION] を使用します。 上のステップを繰り返します。

資格情報と必要なエンドポイントを使用して、以下のフィールドに入力します。

access_key_id = <access_key_id>
secret_access_key = <secret_access_key>
endpoint = <bucket endpoint>

Object Storage の宛先データ rclone 用に構成する

宛先バケットについて、前述のステップを繰り返します。

ソースと宛先が正しく構成されていることの確認

  • ソースに関連付けられたバケットをリストして、rclone が正しく構成されていることを確認します。
rclone lsd COS_SOURCE:
  • 宛先に関連付けられたバケットをリストして、rclone が正しく構成されていることを確認します。
rclone lsd COS_DESTINATION:

送信元と送信先の両方で同じ Object Storage インスタンスを使用している場合、バケットの一覧は一致します。

実行 rclone

  1. rclone のドライラン(データをコピーしない)で設定をテストし、ソースバケット(たとえば、 source-test )内のオブジェクトをターゲットバケット(たとえば、 destination-test )にコピーすることをテストします。 source-test と destination-test は、それぞれのソースバケット名とデスティネーションバケット名です。
   rclone --dry-run copy COS_SOURCE:source-test COS_DESTINATION:destination-test

  1. マイグレーションするファイルが、コマンド出力に表示されていることを確認します。 すべて問題なければ、--dry-run フラグを削除し、オプションで -v フラグまたは -P フラグ、あるいは両方のフラグを追加してデータをコピーし、進行状況を追跡します。 オプションの --checksum フラグを使用すると、両方のロケーションで MD5 ハッシュとオブジェクト・サイズが同じファイルは更新されなくなります。
   rclone -v -P copy --checksum COS_SOURCE:source-test COS_DESTINATION:destination-test

転送時間を最短にするため、rclone を実行しているマシン上の CPU、メモリー、およびネットワークを最大限に活用するようにします。

rclone の調整時には、他に考慮すべきパラメーターがあります。 これらの値の組み合わせによって、バケット内のオブジェクトの CPU、メモリ、および転送時間に影響が出ます。

フラグ タイプ 説明
--checkers int 並行して実行されるチェッカーの数 (デフォルトは 8)。 これは実行されるチェックサム比較スレッドの数です。 この値は、64 以上にすることをお勧めします。
--transfers int これは並行して転送されるオブジェクトの数です (デフォルトは 4)。 多数の小さなファイルを転送する場合は、この値を64または128以上に増やすことをお勧めします。
--multi-thread-streams int 大きいファイル (> 250M) を複数の部分に分けて並行してダウンロードします。 これにより、大容量ファイルのダウンロード時間が短縮されます(デフォルトは 4)。
--s3-upload-concurrency int 並行してアップロードする大きいファイル (> 200M) の部分の数。 これにより、大容量ファイルのアップロード時間が短縮されます(デフォルトは4)。
{: caption="rclone のオプション" caption-side="top"}

rclone copy を使用したデータのマイグレーションでは、ソース・データをコピーしますが削除はしません。

マイグレーション/コピー/バックアップを必要とするその他すべてのソース・バケットについてコピー・プロセスを繰り返す必要があります。