ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
OCI Object Storage Syncおよびs5cmdツールを使用して、データをOCI Cloud Storage Servicesに移行
イントロダクション
これは、Oracle Cloud Infrastructure (OCI)クラウド・ストレージ・サービスにデータを移行する様々な方法を示す4つのチュートリアル・シリーズのチュートリアル3です。このシリーズは、チュートリアル1: 移行ツールを使用したOCI Cloud Storageサービスへのデータの移動を確認して様々なツールを幅広く理解し、移行のニーズに関連する関連するチュートリアルまたはドキュメントに進むことができるように設定されています。このチュートリアルでは、OCI Object Storage Sync (os sync)およびs5cmdを使用して、ファイルシステム・データ(OCI File Storageを含む)をOCI Object Storageとの間で移行することに重点を置きます。
OCIは、高性能コンピューティングと低コストのクラウド・ストレージ・オプションをお客様に提供します。Oracleは、オンデマンドのローカル・ストレージ、オブジェクト・ストレージ、ファイル・ストレージ、ブロック・ストレージ、アーカイブ・ストレージを通じて、主要なストレージ・ワークロード要件とユースケースに対応します。
OCIクラウド・ストレージ・サービスは、エンタープライズのすべてのニーズに対して、高速で安全で耐久性のあるクラウド・ストレージ・オプションを提供します。OCI File Storage with LustreやOCI Block Volumesサービスなどの高パフォーマンス・オプションから、高パフォーマンスのマウント・ターゲットを備えたOCI File Storageサービスからのフルマネージド・エクサバイト・スケール・ファイルシステム、耐久性とスケーラビリティの高いOCI Object Storageまで。オラクルのソリューションは、AI/MLワークロードなどのパフォーマンス集約型アプリケーションからエクサバイト規模のデータレイクまで、お客様のニーズを満たすことができます。
-
OCI Object Storage Sync (os sync)は、ファイルシステム・ディレクトリとバケット内のオブジェクトを同期するOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)の一部です。このコマンドは、ソースから宛先に新規または変更されたファイルまたはオブジェクトをコピーし、オプションでソースに存在しないものを削除するサブディレクトリをトラバースします。
-
s5cmdツールは、無料のオープン・ソース・プロジェクトです。s5cmdを使用すると、S3互換オブジェクト・ストア(OCIオブジェクト・ストレージを含む)からファイル・システム・データ(OCIファイル・ストレージを含む)へのデータの参照および転送が可能になります。Go言語で書かれています。
移行する必要があるデータの量と、新しいOCIストレージ・プラットフォームへのカットオーバーに使用できるダウンタイムを決定します。バッチ移行は、移行を管理可能な増分に分割するのに適しています。バッチ移行では、様々なウィンドウにわたる特定のアプリケーションの停止時間をスケジュールできます。一部のお客様は、スケジュールされたメンテナンス・ウィンドウを2~4日間で1回かぎりの移行を柔軟に行うことができます。OCI FastConnectを使用すると、1Gから400Gまでのポート速度でOCIと環境間の専用のプライベート接続を作成し、データ転送プロセスを高速化できます。OCI FastConnectは、MegaportやConsoleConnectなどのパートナ・ソリューションと統合して、データ・センターまたはクラウド間相互接続へのプライベート接続を作成し、データを別のクラウド・ベンダーからOCIクラウド・ストレージ・サービスに直接移動できます。詳細は、FastConnectとMegaport Cloud Routerの統合を参照してください。
対象読者
DevOpsエンジニア、開発者、OCIクラウド・ストレージ管理者およびユーザー、ITマネージャ、OCIパワー・ユーザーおよびアプリケーション管理者。
目標
OCI CLI with os syncおよびs5cmdツールを使用して、ファイル・システム・データをOCI Object Storageとの間でコピーまたは同期する方法について学習します。
-
os sync
コマンドは、様々なパラメータおよびオプションとともに使用します。 -
データの移行および同期のためにs5cmdツールを実行する様々な方法。
前提条件
-
OCIアカウント。
-
OCI上のVMインスタンスは、移行ツールまたは移行ツールをデプロイして使用できるシステムをデプロイします。
-
OCI CLIは、
.oci
というサブディレクトリ内のホーム・ディレクトリに作業用構成ファイルとともにインストールされます。詳細は、構成ファイルの設定を参照してください。 -
OCI Object Storageバケットへのアクセス。
-
OCIオブジェクト・ストレージの使用、バケットおよびオブジェクトの管理、または少なくとも1つのバケットまたはコンパートメントのオブジェクト・ファミリの管理を行うためのOCIのユーザー権限。詳細は、共通ポリシーおよびポリシー・リファレンスを参照してください。
-
OCIファイル・ストレージの作成、エクスポートおよびマウント、またはVMにすでにマウントされているOCIファイル・ストレージ・マウント・ターゲットへのアクセス、またはデータのコピーに使用する別のネットワーク・ファイル・システム(NFS)マウントまたはローカル・ファイル・システムへのアクセスのユーザー権限。詳細は、ファイル・ストレージ・ポリシーの管理を参照してください。
-
Mac OS、Linux、Berkeley Software Distribution (BSD)またはWindows PowerShell、コマンド・プロンプトまたはbashでの端末またはシェル・インタフェースの使用に精通しています。
-
OCI Cloud Storageにデータを移動するための移行の基本を確認し、os syncおよびs5cmdツールを含むOCI CLIをインストールします。
-
使用できる移行ツールについては、チュートリアル1: 移行ツールを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
ネットワーク・ファイル・システムとローカル・ファイル・システム・データのOCIオブジェクト・ストレージとの同期
OCI Object Storage Syncは、ファイルシステム・ディレクトリとバケット内のオブジェクトを同期するOCIコマンドライン・インタフェース(CLI)の一部です。このコマンドは、ソースから宛先に新規または変更されたファイルまたはオブジェクトをコピーし、オプションでソースに存在しないものを削除するサブディレクトリをトラバースします。ファイル・システム・データとOCI Object Storageバケットの同期を維持できる便利なツールです。テスト環境では、OCI Object Storage Syncが混在するデータ・セットに対して適切に実行され、大規模ファイル(1TB以上)に対する他のツールよりも優れていることがわかりました。
OCI Object Storageは、Amazon S3 Compatibility APIをサポートしています。さまざまな Amazon S3ツールに精通しているお客様は、引き続きそれらを使用できます。s5cmdツールは、無料のオープン・ソース・プロジェクトです。これにより、S3互換オブジェクト・ストアとの間のデータの参照および転送が可能になります。Go言語で記述され、パラレル・スループット用に最適化されています。テスト中に、s5cmdツールが小さいファイル(1MB未満から30MBまでのファイル)に最適で、小さいファイルを移動するための他のすべてのツールが実行されていることがわかりました。s5cmdツールは、ファイル・システムからOCI Object Storageにデータを移動するときに、混合データ・セットにも適しています。
ディレクトリまたは接頭辞でデータをサブセットに編成できる場合は、os同期をスケール・アウトし、s5cmdを複数のVMにわたって実行して転送時間を短縮することもできます。
OS同期を使用した同期
-
ローカル・ファイル・システム・データをOCIオブジェクト・ストレージに同期します。
次の基本的な
os sync
コマンドを実行して、ソース・ディレクトリから宛先バケットにファイルを同期します。oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
ノート:この同じコマンドは、オンプレミスのローカル・ファイル・システム、オンプレミスNFSファイル・システム、およびOCI File Storage NFSマウントを含むOCI Computeインスタンスで使用して、OCI File StorageからOCI Object Storageバケットにデータを移動できます。
-
OCI Object Storageからローカル・ファイル・システムにデータを移行します。
次の基本的な
os sync
コマンドを実行して、宛先ファイル・システムのソース・バケットからファイル/オブジェクトを同期します。oci os object sync --dest-dir <path to migration-target directory> --bucket-name <bucket name>
ノート:この同じコマンドは、オンプレミスのローカル・ファイル・システム、オンプレミスNFSファイル・システム、およびOCI File Storage NFSマウントを使用するOCI Computeインスタンスで使用して、OCI File StorageサービスからOCI Object Storageバケットにデータを移動できます。
-
パラレル操作を増やします。
デフォルトでは10個の操作のみがパラレルで実行されるため、パラレル操作を増やすとデータ転送速度が向上し、より多くのシステム・リソースと帯域幅が消費されます。テスト環境では、
VM.Standard.E4.Flex
を24 OCPU、24Gbpsネットワーク帯域幅、384GBのメモリーで使用し、転送速度に最適な100のパラレル操作を検出しました。より大きいVMでは、最適な転送速度が得られるまで、または最大1,000のパラレル転送に達するまで、一度に10個の操作をバンプできます。小規模なVMシェイプは、適切なスループットが実現されるまで、10個の操作から開始し、5から10の増分で増加する必要があります。次のフラグを使用して、パラレル操作を増減します。--parallel-operations-count <integer range>
ノート:パラレル操作(特に429 "TooManyRequests"のエラー)を増やすとエラーが発生し始める場合は、エラーが止まるまでパラレル操作を2ずつ下げます。
-
patternコマンドを使用して、一致したファイルをフィルタします。
パターンは、一致したファイルを含めるか除外するために使用できます。パターン・コマンドは、複数のパターンに一致するようにコマンドラインで複数回使用できます。
-
パターンに一致するファイルを含めるには、次のコマンドを使用します。
--include
-
パターンに一致するファイルを除外するには、次のコマンドを使用します。
--exclude
ノート:
*
:すべてと一致します。?
:任意の1文字を検索します[sequence]
:任意の文字を順番に一致させます。[!sequence]
:順番にない文字に一致します。
-
-
--prefix
フラグを使用します。--src-dir
コマンドを使用してファイルをオブジェクト・ストレージにアップロードする際に使用される--prefix
フラグは、オブジェクトをアップロードし、接頭辞としてオブジェクト名にディレクトリ・パスを追加します。OCIオブジェクト・ストレージからオブジェクトをダウンロードする場合、指定された接頭辞を持つオブジェクトのみがダウンロードされ、オブジェクト/ファイル名の一部として表示されません。 -
実行前に転送を確認します。
転送を開始する前に、os syncで出力のみが実行されるようにすることで、OCI Object Storageとの間でアップロード/ダウンロードされるファイルを判断できます。次のフラグを指定してコマンドラインを実行します。
--dry-run
s5cmdを使用した同期
-
同期およびコピー・コマンド。
-
s5cmdの
sync
オプションは、ソース・ファイルを変更せずに、ソースから宛先への一方向同期を行います。また、ソースに存在しない宛先上のファイルも削除しません。--delete
フラグを追加して、ソースに存在しないファイルを宛先から削除します。 -
copy
コマンドは、ソースから宛先にオブジェクトをコピーするだけです。
-
-
パターン照合
s5cmdツールは、同期およびコピー操作に対して複数レベルのワイルドカードをサポートしています。これは、最初のワイルドカードまでの接頭辞を持つすべてのオブジェクトをリストし、その結果をメモリー内でフィルタ処理することで実現されます。
ソースがファイル・システムの場合は、ワイルドカードも適用されます。
*
文字を使用する場合、予期しない結果を回避するために、グロブ・ワイルドカードとして解釈され、一重引用符で囲みます。たとえば、ディレクトリ内のすべてのgzippedファイルをバケットにコピーするには、次のコマンドを実行します。
s5cmd cp '*.gz' s3:/<bucket name>
-
基本同期コマンド。
-
ローカル・ファイル・システム・データをOCIオブジェクト・ストレージに同期します。次の基本的な
s5cmd
コマンドを実行して、ソース・ディレクトリから宛先バケットにファイルを同期します。s5cmd sync /<path to migration-files> s3://<bucket name>
-
OCIオブジェクト・ストレージからローカル・ファイル・システムにデータを同期します。次の基本的な
s5cmd
コマンドを実行して、宛先ファイル・システムのソース・バケットからファイル/オブジェクトを同期します。s5cmd sync s3:/<bucket name>/* /<path to migration-target directory>
ノート:オンプレミスのローカル・ファイル・システム、オンプレミスNFSファイル・システム、およびOCI File Storage NFSマウントを使用したOCI Computeインスタンスで、OCI File StorageからOCI Object Storageバケットにデータを移動するために、同じコマンドを使用できます。
-
-
Basic copyコマンド
次の基本的な
s5cmd
コマンドを実行して、ローカル・ファイル・システムのソース・ディレクトリからOCIオブジェクト・ストレージ宛先バケットにファイルをコピーします。s5cmd cp /<path to migration-files> s3://<bucket name>
OCIオブジェクト・ストレージからローカル・ファイル・システムにデータをコピーします。
s5cmd cp "s3:/<bucket name>/*" /<path to migration-target directory>
ノート:これらのコマンドは、オンプレミスのローカル・ファイル・システム、オンプレミスのNFSファイル・システム、およびOCI File Storage NFSマウントを使用するOCIコンピュート・インスタンスで使用して、OCI File StorageからOCI Object Storageバケットにデータを移動できます。テストでは、主にs5cmdでcopyコマンドを使用しました。
-
並列性を高めます。
s5cmdツールでは、デフォルトで256人のワーカーがパラレルに実行されます。VMのサイズによっては、並列度を増減できます。テスト環境では、
VM.Standard.E4.Flex
を24 OCPU、24Gbpsネットワーク帯域幅、384GBのメモリーで使用し、転送速度に最適な1,000のパラレル操作を検出しました。より大きいVMでは、最適な転送速度が得られるまで、または最大1,000のパラレル転送に達するまで、一度に10個の操作をバンプできます。小規模なVMシェイプは、適切なスループットが実現されるまで、10個の操作から開始し、5から10の増分で増加する必要があります。次のフラグを使用して、パラレル操作を増減します。--numworkers <interger>
ノート:ワーカー数(特に429 "TooManyRequests"のエラー)を増加した後、エラーが発生し始める場合は、エラーが発生しなくなるまでワーカー数を2つ減らします。
たとえば、バケット内のすべてのオブジェクトをローカル・ファイル・システム・ディレクトリにコピーします。
s5cmd --numworkers 1000 cp "s3://MyBucket/*" /my/directory
ノート: 1,500人を超える従業員でテストしましたが、大幅な改善は見られませんでした。テストでは、s5cmdツールが小さいファイルに最適であることが判明したため、マルチパート・アップロードを必要とするファイルに
concurrency
フラグを使用する利点はなく、多数のワーカーを使用すると、全体的なパフォーマンスが最高であることがわかりました。
(オプション)テスト環境
推奨は、テストとカスタマ・インタラクションに基づいて行われます。
ノート: Rcloneの使用の詳細は、チュートリアル2: Rcloneを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
テスト環境 1:
1 VMインスタンスVM.Standard.E4.Flex
、1 OCPU、1Gbpsネットワーク帯域幅、16GBのメモリー。オンプレミスからOCIへの移行をシミュレートするために、コピーされたデータをPHX NFSからIADに移行します。
データ・セット
-
データセット1:
合計サイズ ファイル数 ファイル・サイズ範囲 3TB 3 1TB Method 至: 自 Time コマンド フラグ OS同期 NFS/ファイルPHXからオブジェクトIADへ 123m17.102s NA --parallel-operations-count 100
s5cmd NFS/ファイルPHXからオブジェクトIADへ 239m20.625s コピー run commands.txt
、デフォルトの実行--numworkers 256
rclone NFS/ファイルPHXからオブジェクトIADへ 178m27.101s コピー --transfers=100 --oos-no-check-bucket --fast-list --checkers 64 --retries 2 --no-check-dest
ノート:テストでは、
os sync
がこのデータ・セットに対して最も高速に実行されていることが示されました。 -
データセット2:
合計サイズ ファイル数 ファイル・サイズ範囲 9.787GB 20,000 1MB Method 至: 自 Time コマンド フラグ s5cmd NFS/ファイルPHXからオブジェクトIADへ 1m12.746s コピー デフォルトの実行 --numworkers 256
OS同期 NFS/ファイルPHXからオブジェクトIADへ 2m48.742s NA --parallel-operations-count 1000
rclone NFS/ファイルPHXからオブジェクトIADへ 1m52.886s コピー --transfers=500 --oos-no-check-bucket --no-check-dest
ノート:テストでは、s5cmdがこのデータ・セットに対して最適に実行されていることが示されました。
テスト環境 2:
VMインスタンス:テストごとに1から2個のVMインスタンスが使用され、24個のOCPU、24Gbpsネットワーク帯域幅、384GBのメモリーを持つVM.Standard.E4.Flex
が使用されました。Oracle Linux 8はLinuxテストに使用されました。
データ・セット
-
データセット1:
ファイル数とサイズが次の14個のメイン・ディレクトリ。
データ・セット・ディレクトリ Size ファイル数 各ファイルのサイズ ディレクトリ 1 107.658 GiB 110,242 1 MiB ディレクトリ 2 1.687 GiB 110,569 15 MiB ディレクトリ 3 222 GiB 111 2 GiB ディレクトリ 4 1.265 TiB 1,295 1 GiB ディレクトリ 5 26.359 GiB 1,687 16 MiB ディレクトリ 6 105.281 MiB 26,952 4 KiB ディレクトリ 7 29.697 MiB 30,410 1 KiB ディレクトリ 8 83.124 GiB 340,488 256 KiB ディレクトリ 9 21.662 GiB 354,909 64 KiB ディレクトリ 10 142.629 GiB 36,514 4 MiB ディレクトリ 11 452.328 MiB 57,898 8 MiB ディレクトリ 12 144 GiB 72 2GiB ディレクトリ 13 208.500 GiB 834 256 MiB ディレクトリ 14 54.688 GiB 875 64 MiB ノート:
- 2つのVMインスタンス間で14個のディレクトリが分割されました。
- 各VMは、特に明記されていないかぎり、ディレクトリごとに1つずつ、7つのコマンド/プロセスを実行しました。
Method 至: 自 Time コマンド フラグ/ノート s5cmd NFS/ファイルPHXからオブジェクトIADへ 54m41.814s コピー --numworkers 74
OS同期 NFS/ファイルPHXからオブジェクトIADへ 65m43.200s NA --parallel-operations-count 50
rclone NFS/ファイルPHXからオブジェクトIADへ 111m59.704s コピー --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 50
ノート:テストでは、s5cmdが最も高速に実行され、os同期はRcloneと比較してかなり良好に実行されています。
次のステップ
移行のニーズに関連する関連チュートリアルに進みます。データをOCIクラウド・ストレージ・サービスに移動するには:
-
Rcloneの使用については、チュートリアル2: Rcloneを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
-
ファイル・システム・データ移行にFpsyncおよびRsyncを使用する場合、チュートリアル4: ファイル・システム・データ移行にFpsyncおよびRsyncを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
関連リンク
承認
- 著者 - Melinda Centeno (OCI Object Storage、シニア・プリンシパル・プロダクト・マネージャー)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Move Data into OCI Cloud Storage Services using OCI Object Storage Sync and the s5cmd Tool
G25638-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.