※ 本記事は、Srinivas Mukala, Thameem Khan, Manoj Ghoshによる”Migrating petabytes of data from AWS S3 to OCI Object Storage using Rclone“を翻訳したものです。
2024年2月21日
このブログ投稿では、強力なオープン・ソース・ツールであるRcloneを使用して、Amazon Web Services (AWS) S3からOracle Cloud Infrastructure (OCI) Object Storageにペタバイトのデータを移動するプロセスを説明します。
移行の計画とツール
効果的で効率的なデータ移行には、影響を与える要因と慎重な計画を包括的に理解する必要があります。データセットの固有の特性を考慮し、ファイル・サイズ、階層、フォルダ構造、ストレージ層、エグレス・コストなどの要因の影響を考慮するように移行アプローチを調整することで、よりスムーズでコスト効率の高い移行プロセスに貢献します。
Rcloneは、特に大きなファイルを扱う場合に、ファイル移行に適した選択肢として出現します。クロスプラットフォームの汎用性、広範なクラウド・ストレージ・プロバイダのサポート、大規模なファイルの効率的な処理、データ整合性機能、カスタマイズ可能な転送オプション、およびアクティブなコミュニティ・サポートにより、Rcloneは、ファイル移行の複雑さを乗り越える組織にとって強力で信頼性の高いツールとしてまとめて位置づけられます。
OCI Object Storageサービスには、バケットごとおよびテナンシごとに、事前定義されたデフォルト(通常はソフト制限と呼ばれます)が付属しています。これらのデフォルトを理解することは、特に大規模なデータセットの移行またはインポートを処理する際に重要です。お客様固有の要件に基づいて、特定のパラメータの調整や変更が必要になる場合があります。
他のクラウド・ベンダーと同様に、OCIは、意図しないリソースの急増を防ぐためにソフト制限も課しています。これらの制限は、特定のリージョン内の使用可能な容量に基づいて、リクエストに応じて調整できます。Object Storageのソフト制限には、次のオプションがあります:
- テナンシ当たり10,000バケット
- バケット当たり40億オブジェクト(バケットがマルチシャードの場合に高い)
- バケット当たり3,000書込み/秒
- バケット当たり10,000読取り/秒
- バケット当たり2,000リスト/秒
- 最大1Tbpsの帯域幅
ソフト制限では、Object storageには次のハード制限も設定されています:
- ルート・コンパートメント当たりのObject Storageネームスペースの数: 1
- 顧客の無制限のバケット数
- 最大オブジェクト・サイズ: 10 TiB
- マルチパート・アップロードでのパートの最大数: 10,000
- マルチパート・アップロードでのオブジェクトのパート・サイズの最大値: 50 GiB
これらのハード制限はより厳格であり、OCI内のObject Storageの特定の側面に対して絶対制約を定義することを目的としています。OCI内で大規模なストレージ要件に対処するユーザーにとって、ソフト制限の理解と調整が重要になる可能性があります。
ファイル移行のコンテキストでは、平均ファイル・サイズ(4MBより大きいファイルと小さいファイル)に基づいて2つのシナリオに分類することで、プロセスを簡略化できます。4MB未満のファイルでは、ファイル・ボリュームが小さいためObject Storageに対して行われたリクエストの数が制限要因になります。4MBを超えるファイルの場合、制限要因は帯域幅です。ほとんどの顧客移行では、ファイルのサイズが大きくなり、スループットに様々な要因が大きく影響し、ファイル転送のパフォーマンスに影響します。
次に、より大きなファイルを含む2番目のケースに焦点を当てて、ファイル転送のパフォーマンスに影響する要因の複雑さについて説明します。
10PBのデータをOCI Object Storageに移行することを計画しています。どのくらいの帯域幅が必要ですか? 制限要因は何ですか? スループットの向上にはOCI FastConnectおよびAWS Direct Connectをお薦めしますが、必須ではありません。VPNを使用できます。ただし、いくつかの予備テストを実行して、必要な転送速度を確認することが重要です。
帯域幅を計算するために、次のアプローチを見てみましょう。これらの計算では、いくつかのObject Storageのソフト制限を変更することを前提としています。これらのソフト制限について話し合い、変更するには、Object Storage製品チームに連絡してください。
- total_bandwidth_needed = concurrent_write_streams * write_speed_per_stream
- concurrent_write_streams = minimum of ( total_writes_across_all_buckets, throttling_rate_limit_per_tenancy )
- total_writes_across_all_buckets = number_of_buckets * writes_per_bucket
この例について、次のパラメータを想定します: (^) = ソフト制限、 writes_per_bucket最大30K、 throttling_rate_limit_per_tenancy最大150K
- number_of_buckets = 3
- writes_per_bucket = 30K (^), soft limit increased from 3K to 30K
- total_writes_across_all_buckets = 3 * 30K = 90K
- throttling_rate_limit per tenancy = 150K (^) soft limit increased from 50K to 150K
- concurrent_write_streams = minimum( 90K, 150K ) = 90K
- write_speed_per_stream = 1 Mbyte per sec (assumption), theoretical limit Object Storage takes up to 60 MB per sec for a single stream
- total_bandwidth_needed = 1MBps * 90K == 90,000 MBps
ここでは、10 PBデータを転送するために必要な日数を計算します:
10 PB transfer takes = 10 * 1024 * 1024 * 1024 MB / 90,000 MBps
= 119304.6471 seconds = 1.38 days
アーキテクチャ
OCIをAWSに接続するには、FastConnectやVPNなどの複数の接続モデルを使用できます。次の図は、OCI FastConnectパートナであるMegaportをOCIからAWS Direct Connectに使用する例を示しています。
高スループットを実現するには、マルチスレッド・アプローチを使用し、異なるバケットをターゲットとする複数の仮想マシン(VM)をデプロイして転送を実行します。
最適なパフォーマンスを得るには、同時転送の数、ファイルを転送する必要がある場合のチェッカ、帯域幅、チェックサムのスキップ、最大深度、ファイル階層などのRclone機能を利用します。Rcloneの設定および構成については、ブログ「rcloneでのOCI Object Storageプロバイダのネイティブ・バックエンド・サポートの発表」、およびドキュメント「Rcloneを使用したOracle Cloud Infrastructure Object Storageへのデータの移行」を参照してください。

まとめ
あるクラウド・プロバイダから別のクラウド・プロバイダへのペタバイト・データの移行は、慎重な計画と処理を必要とする複雑なタスクです。Oracle Cloud Infrastructure Object Storageには、お客様の要件に対応できるパラメーターが整備されています。Rcloneは、異なるクラウド・ストレージ・サービス間でデータを転送する信頼性と効率的な手段を提供することで、このプロセスを簡素化します。
行動への呼びかけ
ストレージのニーズとコストの再評価: OCIのfree-tier (Cloud Free Tier | Oracle)にサインアップし、PB規模でのデータ移動に最適なパラメータについてご自身で試してみてください。
