ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
FpsyncとRsyncを使用したOCI Cloud Storageサービスへのデータの移行
イントロダクション
これは、Oracle Cloud Infrastructure (OCI)クラウド・ストレージ・サービスにデータを移行する様々な方法を示す4つのチュートリアル・シリーズのチュートリアル4です。このシリーズは、チュートリアル1: 移行ツールを使用したOCI Cloud Storageサービスへのデータの移動を確認して様々なツールを幅広く理解し、移行のニーズに関連する関連するチュートリアルまたはドキュメントに進むことができるように設定されています。このチュートリアルでは、fpsyncおよびrsyncを使用してファイル・システム・データをOCIファイル・ストレージに移行することに重点を置きます。
OCIは、高性能コンピューティングと低コストのクラウド・ストレージ・オプションをお客様に提供します。Oracleは、オンデマンドのローカル・ストレージ、オブジェクト・ストレージ、ファイル・ストレージ、ブロック・ストレージ、アーカイブ・ストレージを通じて、主要なストレージ・ワークロード要件とユースケースに対応します。
OCIクラウド・ストレージ・サービスは、エンタープライズのすべてのニーズに対して、高速で安全で耐久性のあるクラウド・ストレージ・オプションを提供します。OCI File Storage with LustreやOCI Block Volumesサービスなどの高パフォーマンス・オプションから、高パフォーマンスのマウント・ターゲットを備えたOCI File Storageサービスからのフルマネージド・エクサバイト・スケール・ファイルシステム、耐久性とスケーラビリティの高いOCI Object Storageまで。オラクルのソリューションは、AI/MLワークロードなどのパフォーマンス集約型アプリケーションからエクサバイト規模のデータレイクまで、お客様のニーズを満たすことができます。
-
fpsyncツールは、デフォルトでrsyncを使用する並列ラッパースクリプトです。また、Rclone (チュートリアル2: Rcloneを使用したOCI Cloud Storageサービスへのデータの移動を参照)、tar、tarifyおよびcpioを使用することもできます。
-
Rsyncは、リモートとローカルの両方のファイルシステムのファイルを転送および同期するための汎用性の高いユーティリティーです。
移行する必要があるデータの量と、新しいOCIストレージ・プラットフォームへのカットオーバーに使用できるダウンタイムを決定します。バッチ移行は、移行を管理可能な増分に分割するのに適しています。バッチ移行では、様々なウィンドウにわたる特定のアプリケーションの停止時間をスケジュールできます。一部のお客様は、スケジュールされたメンテナンス・ウィンドウを2~4日間で1回かぎりの移行を柔軟に行うことができます。OCI FastConnectを使用すると、1Gから400Gまでのポート速度でOCIと環境間の専用のプライベート接続を作成し、データ転送プロセスを高速化できます。OCI FastConnectは、MegaportやConsoleConnectなどのパートナ・ソリューションと統合して、データ・センターまたはクラウド間相互接続へのプライベート接続を作成し、データを別のクラウド・ベンダーからOCIクラウド・ストレージ・サービスに直接移動できます。詳細は、FastConnectとMegaport Cloud Routerの統合を参照してください。
RsyncとFpsyncの違い
-
Rsyncは従来の Linuxオペレーティングシステム(OS)ユーティリティーで、同一または異なる地理的な場所にあるあるマシンから別のマシンにデータを一度だけコピーまたは定期的に同期するために使用されます。単一のrsyncプロセスでは、必要な時間内に転送を実行するために大規模なデータセットでは不十分である可能性があります。Rsyncには、複数のrsyncプロセスをスピンアップするオプションがあり、それぞれがデータセットの特定のサブセットで実行され、1つのプロセスよりも迅速にデータセット転送を完了します。ただし、データセット階層の複雑さに基づいて、プロセス数とどのサブセット間の均衡を決定することは困難です。Fpsyncはこのプロセスを簡素化します。Fpsyncは、データセット全体を小さなチャンクに分割し、ユーザー・セットの並列性に基づいて複数のrsyncプロセスを生成するオーケストレータです。内部的には、Fpsyncはrsyncを使用して実際の転送を実行します。cpioおよびtarオプションはfpsyncの基礎となるツールオプションとして使用できますが、rsyncがデフォルトです。
-
Fpsyncにはワーカー・ノード・オプションがあり、単一のノードではなく複数のノード間で転送を分散できます。同じノードでのパラレルrsyncプロセスの増加(スケール・アップ)に加えて、ノード数を増やす(スケール・アウト)ことで、rsyncプロセス数の増加を実行することもできます。
対象読者
DevOpsエンジニア、開発者、OCIクラウド・ストレージ管理者およびユーザー、ITマネージャ、OCIパワー・ユーザーおよびアプリケーション管理者。
目標
rsyncとfpsyncを使用してデータをOCIクラウド・ストレージ・サービスにコピーおよび同期する方法をご紹介します。
-
rsyncとfpsyncを一緒に使用する方法を学びます。
-
fpsyncを使用するパフォーマンス上の利点を理解します。
前提条件
-
OCIアカウント。
-
Oracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)は、
.oci
というサブディレクトリ内のホーム・ディレクトリに作業用構成ファイルとともにインストールされます。詳細は、構成ファイルの設定を参照してください。 -
OCIファイル・ストレージを作成、エクスポートおよびマウントするユーザー権限、またはVMにすでにマウントされているOCIファイル・ストレージ・マウント・ターゲットへのアクセス。詳細は、ファイル・ストレージ・ポリシーの管理を参照してください。
-
ネットワーク接続ストレージ(NAS)およびOCI File Storageを作成、管理およびマウントする方法を知っています。詳細は、OCIファイル・システム・ストレージの構成およびファイル・ストレージの概要を参照してください。
-
OCI Computeインスタンスを作成して起動したり、3つのシステムにアクセスしてfpsyncを実行したりできます。詳細は、インスタンスの作成を参照してください。
-
次を理解します。
-
SSHの操作、SSHキーの生成およびSSH構成ファイルの操作。詳細は、OCIアクセス用のLinuxコマンドラインでのSSHキー・ペアの作成を参照してください。
-
2つのサイトまたはシステム間の接続をチェックするための基本的なネットワークツールとコマンド。
-
Mac OS、Linux、Berkeley Software Distribution (BSD)およびWindows PowerShell、コマンド・プロンプトまたはbashでの端末またはシェル・インタフェースの使用。
-
Linuxシステムへのソフトウェアのインストール。
-
-
使用できる移行ツールについては、チュートリアル1: 移行ツールを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
OCIファイル・ストレージへのデータの移行
Fpsyncとrsyncを使用して、ファイル・システム・データ(OCI File Storageサービス、OCI Block Volumesサービス、Lustreを使用するOCI File Storage、オンプレミス・ファイル・システム、およびオンプレミス・ネットワーク・ファイル・システム(NFS)を他のファイル・システム・ストレージ・タイプ(OCI File Storageを含む)に移行できます。
Rsyncを使用したデータの移行
-
インスタンス間ストリーミングでrsyncを使用します。
最大数万GBの小規模なデータセットおよび数千のファイルについては、rsyncインスタンス間ストリーミングを使用できます。SSHを使用したインスタンス間ストリーミングにより、ネットワーク内のローカルNFSとソース・ネットワークと宛先ネットワーク間のSSHが有効になり、2つのネットワーク間のNFSの待機時間が短縮されます。次のコマンドを使用します
rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
-
複数のrsyncプロセスを並行して実行します。
-
find
およびxargs
コマンドを使用して、複数のrsyncプロセスを実行できます。find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
-
GNU並列を使用することもできます。
find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
ノート:どちらの例でも、一度に24個のプロセスが実行され、使用されるインスタンスのCPU容量に基づいてパラメータが選択されています。
-
Fpsyncを使用したデータの移行
fpsyncツールはrsyncの並列ラッパーです。tar、tarify、cpioも使用できますが、デフォルトはrsyncです。
-
Linuxマシンにfpsyncをインストールします。
- Linux 8で次のコマンドを実行します。
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install fpart -y
- Linux 9で次のコマンドを実行します。
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm sudo yum install fpart -y
-
次のコマンドを使用してfpsyncを実行します。
たとえば次のようにします。
fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
ノート: fpsyncオプションおよびパラメータの詳細は、
man fpsync
を参照してください。
3つのワーカー・ノードを使用してFpsyncを実行し、オンプレミス・ファイル共有からOCIファイル・ストレージ・サービスにデータを移行
3つのワーカー・ノードを使用してfpsyncを実行し、オンプレミス・ファイル共有(ローカル・ディスク、SANまたはNAS)からOCI File Storageサービスにデータを移行するには、高度なステップに従います。
次の図は、コンポーネント・アーキテクチャの図を示しています。
ステップに従います。
-
ワーカー・ノードと宛先ノードを3つ選択してください。
ソース・ファイル・システムをマウントするためにアクセスできるローカル・システムはどれですか(3つ選択してください)。または、テスト目的で3つのOCI Compute VMインスタンスを作成して起動することもできます。
既存のOCI VMインスタンスを識別するか、宛先ノードとして機能する新しいインスタンスを作成して起動します。
-
ソースのNAS共有を3つのノードにマウントします。
nordirplus
およびnconnect=16
マウントオプションを使用し、ほかのnfs
マウントオプションは指定しないでください。たとえば、Linuxシステムで次のmountコマンドを実行します。
sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
たとえば、次のコマンドを実行してマウントを確認します。
mount | grep /mnt/nfs-data
ノート:テストの目的で、OCI File Storageを使用してファイル・システムを作成、エクスポートおよびマウントできます。fpsyncを試すため、マウント内にテストデータを作成できます。
-
fpsyncを実行するノードを選択し、
/etc/hosts
ファイルを更新します。3つのノードのいずれかを選択するか、別のノードを選択して
fpsync
コマンドを実行できます。fpsync
コマンドが実行されるノードは、エグゼキュータ・ノードと呼ばれます。fpsyncが実行されるノードで、任意のテキスト・エディタを使用して、3つのワーカー・ノード
worker-src-1
、worker-src-2
およびworker-src-3
で/etc/hosts
ファイルを更新します。たとえば次のようにします。
vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1 10.0.0.5 worker-src-2 10.0.0.6 worker-src-3
-
宛先ノードに宛先ファイル・システムをマウントします。
宛先ファイル・システムを特定し、宛先ノードにマウントします。または、OCIファイル・ストレージを作成して宛先ノードにマウントします。
-
オンプレミスからOCIへの接続が確立されていることを確認します。
ping
、traceroute
、ssh
などの一般的なネットワーキング・ツールを使用して、システム、オンプレミス、OCI間の接続を確認します。 -
すべてのソース・ノードと宛先ノード間でパスワードなしSSHを相互に有効化し、ソース・ノードと宛先ノードのペア間のSSH接続を確認します。
エグゼキュータ・ノードで
fpsync
コマンドを実行するユーザーの公開SSHキーを識別します。このキーは通常、.ssh
ディレクトリの下のユーザーのホーム・ディレクトリにあり、通常はid_rsa.pub
という名前です。このキーをすべてのワーカー・ノードに伝播するには、cat
コマンドを使用してその内容を表示し、キーをコピーして、ワーカー・ノードの$HOME/.ssh/authorized_keys
ファイルに貼り付けます。または、パスワードベースのSSHが有効な場合は、ssh-copy-id
コマンドを使用して、キーを各ワーカー・ノードおよび宛先ノードに分散できます。たとえば次のようにします。[worker-src-1 ~]$ ssh-copy-id username@worker-src-2
-
エグゼキュータ・ノードでfpsyncコマンドを実行します。
ノート: fpsyncは、ワーカー・ノードを介してSSHを介して宛先ノードに対して
rsync
コマンドを実行するエグゼキュータ・ノードにのみインストールする必要があります。たとえば次のようにします。
fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \ -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \ -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
ノート: XおよびYを、fpsyncオプション
-n
および-f
の値に置き換えます。-
同時同期ジョブの値(
-n
)を確認します。-n
値を選択して、ソース内のすべてのワーカー・ノードのcpu_cores
数に等しくし、同じCPUおよびメモリーの宛先ワーカー・ノード数を保持します。- それぞれに16個のCPUコアを持つ3つのワーカー・ノードがある場合、3つのワーカー・ノードに16個の
cpu_cores
= 48を掛けます。
-
同期ジョブごとに転送するファイルの量の値(
-f
)を決定します。- たとえば、大きなディレクトリと合計110万ファイルを含む2つのフォルダがある場合、2つのフォルダには、平均ファイル・サイズが160KBの~700Kファイルが含まれます。
- 各ワーカー・ノードは、64GB = 6400000KBメモリー、8 OCPU= 16
cpu_cores
で構成されており、cpu_core
当たりのメモリーは64000000/16 = 400000KB/cpu_core
です。各ワーカー・ノードのメモリー= 64GB = 6400000KB。 -f
、400000KB/160 = 25000の値を計算します。
-
(オプション)テスト環境
オンプレミスからOCIへの移行をシミュレートするために、次のデータセットを含むOCI File Storageファイル・システム(Ashburn)がオンプレミスのNAS共有として使用され、OCI File Storageファイル・システム(Phoenix)が宛先として使用されます。
どちらのリージョンも、Dynamic Routing Gatewayを使用してリモートでピアリングされます。
データ・セット・ディレクトリ | 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 |
VMインスタンス:アッシュバーン・リージョンとフェニックス・リージョンの両方で、ワーカー・ノードとして3つの16個のcpu_core
、64GBのメモリー、8Gbps帯域幅Linux9のVM、エグゼキュータ・ノードとして8個のcpu_core
VMが使用されます。
すべてのインスタンスのTCP設定は次のとおりです:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1
どちらのリージョン・インスタンスにも、「3つのワーカー・ノードを使用したFpsyncの実行によるオンプレミス・ファイル共有からOCIファイル・ストレージ・サービスへのデータの移行」の項の説明に従って、それぞれのOCIファイル・ストレージ・ファイル・システムがマウントされています。
次のfpsync
コマンドを実行します。XとYはfpsyncオプションです。
fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
-w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
-d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/
-
-n
の値を決定します。Select the -n value to be equal to number of cpu_cores of all worker nodes in the source and keep as many as destination worker nodes of same CPU and memory. In this example, it is 3 worker nodes times 16 cpu_cores = 48.
-
-f
の値を決定します。In this example, two folders are large directories. Of the total 1.1 million files, the two folders contain ~700K files with an average file size of 160KB. Memory in each worker node = 64GB = 64000000KB. Processes in each worker node = 8 OCPU = 16 cpu_cores. Memory per Process = 64000000/16 = 4000000KB/process. Now, an appropriate value for -f can be calculated as 4000000KB / 160 = 25000.
次の表に、異なるXとY、rsync SSHおよび圧縮の組合せについて、225TBおよび100万ファイルのデータ転送を完了するためにfpsyncにかかった時間を示します。
fpsyncオプション | ソースおよび宛先ワーカー・ノード上のnfs mountオプション | ファイル・ストレージ・マウント・ターゲットのパフォーマンス・タイプ | 所要時間 |
---|---|---|---|
-n 30 -f 2000 -e ssh | nconnect=16、nordirplus | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 237m28s |
-n 48 -f 5000 -e ssh -C | nconnect=16、nordirplus | それぞれ1 HPMT 40のソースと宛先 | 163m38.887s |
-n 60 -f 20000 | nconnect=16、nordirplus | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 124m25.435s |
-n 48 -f 400000 -e ssh -C | nconnect=16、nordirplus | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 122m55.458s |
-n 100 -f 200000 -e ssh | nconnect=16、nordirplus | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 120m44s |
-n 60 -f 200000 -e ssh | nordirplusだけ、nconnect無し | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 118m41.393s |
-n 60 -f 200000 -e ssh | nconnect=16、nordirplus | 3つの標準マウント・ターゲット、1:1のワーカー・ノードへのマッピング | 118m3.845s |
-n 48 -f 20000 -e ssh | nconnect=16、nordirplus | それぞれ1 HPMT 40のソースと宛先 | 113m34.011s |
-n 48 -f 200000 | nconnect=16、nordirplus | それぞれ1 HPMT 40のソースと宛先 | 110m15.555s |
-n 48 -f 200000 | nconnect=16、nordirplus | それぞれ1 HPMT 40のソースと宛先 | 109m3.472s |
48を超える-n
と20000を超える-f
を組み合せると、リージョン間で転送時間が約2時間のパフォーマンスが似ていることがわかります。高パフォーマンスのマウント・ターゲット40 GBpsでも、所要時間が大幅に短縮されることはありません。
その結果、転送される実際のデータセットのサイズに応じて、ファイル・システムに対して複数の標準マウント・ターゲットまたは高パフォーマンスのマウント・ターゲットを選択できます。ソース・データセットが大容量ファイル(ファイル・サイズ>= 1M)で構成され、合計データセット・サイズが20TB以上である場合、高パフォーマンスのマウント・ターゲットが適しています。それ以外の場合、スケールアウト構成を持つ標準マウント・ターゲットは、必要なパフォーマンスとコスト効率を提供できます。
次のステップ
移行のニーズに関連する関連チュートリアルに進みます。データをOCIクラウド・ストレージ・サービスに移動するには:
-
Rcloneの使用については、チュートリアル2: Rcloneを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
-
OCI Object Storage SyncおよびS5cmdを使用して、チュートリアル3: OCI Object Storage SyncおよびS5cmdを使用したOCI Cloud Storageサービスへのデータの移動を参照してください。
関連リンク
承認
- 著者 - Vinoth Krishnamurthy (OCI File 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 Fpsync and Rsync
G25654-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.