ノート:

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ストレージ・プラットフォームへのカットオーバーに使用できるダウンタイムを決定します。バッチ移行は、移行を管理可能な増分に分割するのに適しています。バッチ移行では、様々なウィンドウにわたる特定のアプリケーションの停止時間をスケジュールできます。一部のお客様は、スケジュールされたメンテナンス・ウィンドウを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との間でコピーまたは同期する方法について学習します。

前提条件

ネットワーク・ファイル・システムとローカル・ファイル・システム・データの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同期を使用した同期

  1. ローカル・ファイル・システム・データを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バケットにデータを移動できます。

  2. 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バケットにデータを移動できます。

  3. パラレル操作を増やします。

    デフォルトでは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ずつ下げます。

  4. patternコマンドを使用して、一致したファイルをフィルタします。

    パターンは、一致したファイルを含めるか除外するために使用できます。パターン・コマンドは、複数のパターンに一致するようにコマンドラインで複数回使用できます。

    • パターンに一致するファイルを含めるには、次のコマンドを使用します。

      --include
      
    • パターンに一致するファイルを除外するには、次のコマンドを使用します。

      --exclude
      

    ノート:

    • *:すべてと一致します。
    • ?:任意の1文字を検索します
    • [sequence]:任意の文字を順番に一致させます。
    • [!sequence]:順番にない文字に一致します。
  5. --prefixフラグを使用します。

    --src-dirコマンドを使用してファイルをオブジェクト・ストレージにアップロードする際に使用される--prefixフラグは、オブジェクトをアップロードし、接頭辞としてオブジェクト名にディレクトリ・パスを追加します。OCIオブジェクト・ストレージからオブジェクトをダウンロードする場合、指定された接頭辞を持つオブジェクトのみがダウンロードされ、オブジェクト/ファイル名の一部として表示されません。

  6. 実行前に転送を確認します。

    転送を開始する前に、os syncで出力のみが実行されるようにすることで、OCI Object Storageとの間でアップロード/ダウンロードされるファイルを判断できます。次のフラグを指定してコマンドラインを実行します。

    --dry-run
    

s5cmdを使用した同期

  1. 同期およびコピー・コマンド。

    • s5cmdのsyncオプションは、ソース・ファイルを変更せずに、ソースから宛先への一方向同期を行います。また、ソースに存在しない宛先上のファイルも削除しません。--deleteフラグを追加して、ソースに存在しないファイルを宛先から削除します。

    • copyコマンドは、ソースから宛先にオブジェクトをコピーするだけです。

  2. パターン照合

    s5cmdツールは、同期およびコピー操作に対して複数レベルのワイルドカードをサポートしています。これは、最初のワイルドカードまでの接頭辞を持つすべてのオブジェクトをリストし、その結果をメモリー内でフィルタ処理することで実現されます。

    ソースがファイル・システムの場合は、ワイルドカードも適用されます。*文字を使用する場合、予期しない結果を回避するために、グロブ・ワイルドカードとして解釈され、一重引用符で囲みます。

    たとえば、ディレクトリ内のすべてのgzippedファイルをバケットにコピーするには、次のコマンドを実行します。

    s5cmd cp '*.gz' s3:/<bucket name>
    
  3. 基本同期コマンド。

    • ローカル・ファイル・システム・データを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バケットにデータを移動するために、同じコマンドを使用できます。

  4. 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コマンドを使用しました。

  5. 並列性を高めます。

    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に移行します。

データ・セット

テスト環境 2:

VMインスタンス:テストごとに1から2個のVMインスタンスが使用され、24個のOCPU、24Gbpsネットワーク帯域幅、384GBのメモリーを持つVM.Standard.E4.Flexが使用されました。Oracle Linux 8はLinuxテストに使用されました。

データ・セット

次のステップ

移行のニーズに関連する関連チュートリアルに進みます。データをOCIクラウド・ストレージ・サービスに移動するには:

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。