データ転送用にトランジットノードを設定した後、移行ツールを使用して、Alibaba Cloud 以外のソースから File Storage NAS にデータを移行できます。
前提条件
データ転送のトランジットノードとして Elastic Compute Service (ECS) インスタンスを設定済みであること。 詳細については、「データ転送トランジットノードの設定」をご参照ください。
SFTP クライアントを使用したデータ移行
少数のファイルを一度だけアップロードする場合は、ローカルで SFTP クライアントを使用することを推奨します。 この方法には、次の利点があります。
複数のオペレーティングシステムプラットフォームに対応しています。
グラフィカルユーザーインターフェース (GUI) を提供しています。
ローカルオペレーティングシステムに SFTP クライアントをインストールします。
さまざまな SFTP クライアントを利用できます。 このトピックでは、FileZilla を例として使用します。 ローカルオペレーティングシステムと互換性のあるバージョンを選択し、SFTP クライアントをダウンロードしてインストールします。
SFTP クライアントをトランジット ECS インスタンスに接続します。
FileZilla クライアントを開き、次の表に従ってパラメーターを設定します。 [Quickconnect] をクリックします。
ECS インスタンスに接続すると、左側のペインにローカルファイルシステムが表示され、右側のペインにインスタンスのファイルシステムが表示されます。
パラメーター
説明
ホスト
トランジット ECS インスタンスのパブリック IP アドレス。 例: 192.0.2.1。
ユーザー名
トランジット ECS インスタンスのユーザー名。 このユーザーには、NAS ファイルシステムディレクトリに対する読み取りおよび書き込み権限が必要です。 例: root。
説明Linux ECS インスタンスのデフォルトのユーザー名は root または ecs-user です。
Windows ECS インスタンスのデフォルトのユーザー名は administrator です。
パスワード
トランジット ECS インスタンスのログオンパスワード。 たとえば、root ユーザーのログオンパスワードです。
説明トランジット ECS インスタンスのパスワードを忘れた場合は、リセットして新しいパスワードを設定できます。 詳細については、「インスタンスのログオンパスワードのリセット」をご参照ください。
ポート
SFTP ポート番号。 デフォルトは 22 です。
右側のペインで、 [Remote site] フィールドのパスを NAS ファイルシステムのマウントパス (例: /mnt) に設定します。 Enter キーを押すと、NAS ファイルシステム内のファイルが表示されます。
データをアップロードします。
左側のペインから右側のペインにファイルまたはディレクトリをドラッグしてアップロードします。
rsync を使用したデータ移行
多数のファイルをアップロードする必要がある場合や、アップロードタスクを頻繁に実行する場合は、ローカルで rsync コマンドラインツールを使用することを推奨します。 このツールには、次の利点があります。
所有者情報や権限情報を含むファイルメタデータを保持できます。
増分同期に対応しています。
ローカルの Linux または macOS システムで crontab を設定して、データを File Storage NAS に自動的にバックアップできます。
rsync をインストールします。
Linux オペレーティングシステム
オペレーティングシステム
コマンド
CentOS
yum を使用して rsync をインストールします。
sudo yum install rsyncRedhat
Ubuntu
apt を使用して rsync をインストールします。
sudo apt-get install rsyncDebian
説明別の Linux ディストリビューションを使用している場合は、対応するパッケージマネージャーを使用して rsync をインストールしてください。
macOS
homebrew パッケージマネージャーをダウンロードしてインストールし、次のコマンドを実行して rsync をインストールします。
brew install rsyncWindows オペレーティングシステム
Cygwin 環境をダウンロードしてインストールします。 インストールプロセス中に rsync を検索してインストールするか、手動でrsync をダウンロード、コンパイル、インストールできます。
説明VPC セキュリティグループで SSH ポート (TCP 22) を開く必要があります。
データをアップロードします。
次のコマンドを実行して、ローカルディレクトリを File Storage NAS に増分同期します。
rsync -avP DirToSync/ root@192.0.2.0:/mnt/DirToSync/コマンドのサンプル値を実際の値に置き換えてください。 次の表にパラメーターを示します。
パラメーター
説明
DirToSync
アップロードするローカルディレクトリの名前。
root
トランジット ECS インスタンスのユーザー名。
192.0.2.0
トランジット ECS インスタンスのパブリック IP アドレス。
/mnt
トランジット ECS インスタンス上の NAS ファイルシステムのマウントパス。
説明rsync コマンドのソースパスは、スラッシュ (/) で終わる必要があります。 そうしないと、同期後にデータパスが不正になります。
rsync を使用してデータを同時にコピーするには、次のコマンドを実行します。
threads=<number_of_threads>; src=<source_path/>; dest=<destination_path/>; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )たとえば、スレッド数を 10、ソースパスを /abc 、宛先パスを
/mnt1に設定するには、次のコマンドを実行します。threads=10; src=/abc/; dest=/mnt1/; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
(オプション) スケジュールされたバックアップタスクの設定
ローカルの Linux または macOS システムでは、rsync コマンドと crontab を使用して、スケジュールされたアップロードおよびバックアップタスクを設定できます。
Linux オペレーティングシステム
ローカルシステムから ECS インスタンスへのパスワードなしの SSH 接続を作成します。 詳細については、「キーペアを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して接続を確認します。
ssh -i ~/.ssh/ecs.pem root@192.0.2.0説明~/.ssh/ecs.pem は、キーファイルがローカルに保存されているパスです。
crontab を設定します。
crontab -eコマンドを実行してエディターを開き、スケジュールされたアップロードタスクを設定します。 以下は設定例です。0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@192.0.2.0:/mnt/Documents/この crontab 設定は、現在のユーザーの Documents ディレクトリを毎日 23:00 に File Storage NAS に自動的にバックアップします。 必要に応じてパラメーターを変更してください。
macOS
/usr/sbin/cronディレクトリにディスクアクセス権限を付与します。[システム設定] に移動して、 を選択し、[ロック解除] をクリックしてから [+] をクリックします。 Macintosh HD ディレクトリを選択し、Cmd+Shift+. を押して非表示のディレクトリを表示し、
/usr/sbin/cronを選択します。ローカルシステムから ECS インスタンスへのパスワードなしの SSH 接続を作成します。 詳細については、「キーペアを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して接続を確認します。
ssh -i ~/.ssh/ecs.pem root@192.0.2.0説明~/.ssh/ecs.pem は、キーファイルがローカルに保存されているパスです。
crontab を設定します。
crontab -eコマンドを実行してエディターを開き、スケジュールされたアップロードタスクを設定します。 以下は設定例です。0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@192.0.2.0:/mnt/Documents/この crontab 設定は、現在のユーザーの Documents ディレクトリを毎日 23:00 に File Storage NAS に自動的にバックアップします。 必要に応じてパラメーターを変更してください。
説明rsync を使用してデータを移行する際にパフォーマンスが低い場合は、fpsync ツールを使用してマルチスレッドで移行を行ってください。詳細については、「付録: fpsync コマンドラインツールを使用してデータを移行する」をご参照ください。
Robocopy を使用したデータ移行
Robocopy は、Windows に組み込まれているディレクトリレプリケーションコマンドラインツールです。 重複ファイルをコピーせずに 2 つのディレクトリの完全なミラーを作成して、タイムスタンプを含むすべてのファイルメタデータを保持できます。
トランジット ECS インスタンスにログインします。
データを移行します。
次のコマンドを実行して、ソースファイルシステム (ドライブ Z) から宛先ファイルシステム (ドライブ Y) にデータを移行します。
robocopy Z:\ Y:\ /e /w:5 /z /mt:32説明このコマンドは、指定されたディレクトリ内のデータのみを移行し、ディレクトリ自体は移行しません。
次の表に、重要なパラメーターを示します。 実際の値に置き換えてください。
パラメーター
説明
/mt
同時実行スレッドの数。 デフォルトは 8 です。
有効な値: 1~128。
この例では、マルチスレッドコピーに 32 スレッドを使用します。
/w
再試行間の待機時間を秒単位で指定します。
/z
再開可能な転送を有効にします。
/e
空のディレクトリを含むすべてのサブディレクトリをコピーします。
/copyall
すべてのファイル情報をコピーします。 これには次の情報が含まれます。
データ
属性
タイムスタンプ
アクセスコントロールリスト (ACL)
所有者情報
監査情報
説明合計サイズが 10 TB を超える 1 億個以上の小さなファイルなど、大量のデータの移行を高速化するには、Windows ECS インスタンスに最新の Python プログラムをインストールして移行を実行してください。 詳細については、「Apsara File Storage NAS の SMB ファイルシステムへのデータ移行を高速化する方法」をご参照ください。
移行結果を検証します。
移行が完了したら、次の Robocopy コマンドを実行して、宛先のデータがソースと一致していることを確認してください。
ROBOCOPY Z:\ Y:\ /e /l /ns /njs /njh /ndl /fp /log:reconcile.txt次の表に、重要なパラメーターを示します。 実際の値に置き換えてください。
パラメーター
説明
/e
空のディレクトリを含む、ディレクトリのみを一覧表示します。
/l
ファイルを変更またはコピーせずに相違点を報告します。
/fp
ログにファイルのフルパスを含めます。 これは、/ndl が省略されている場合にのみ必要です。
/ns
ファイルサイズをログに含めないように指定します。
/ndl
フォルダーをログに含めないように指定します。
/njs
ジョブの概要を含めないように指定します。
/njh
ジョブヘッダーを含めないように指定します。
/log:reconcile.txt
移行結果を reconcile.txt ログファイルに書き込みます。 ファイルが既に存在する場合、上書きされます。
IIS FTP を使用したデータ移行
少数のファイルを一度だけアップロードする場合は、ローカルシステムで FTP クライアントを設定することを推奨します。 この方法には、次の利点があります。
複数のオペレーティングシステムプラットフォームに対応しています。
グラフィカルユーザーインターフェースを提供しています。
ECS インスタンスに IIS FTP サービスを設定して、ローカルシステムに FTP クライアントを設定するには、「Windows IIS の設定」をご参照ください。
VPC セキュリティグループで対応する FTP TCP ポートを開く必要があります。
他の FTP サーバーとクライアントを設定して、パブリックネットワーク経由でデータをアップロードおよびダウンロードすることもできます。
Elastic IP アドレス (EIP) へのインバウンドトラフィックは無料ですが、アウトバウンドトラフィックは課金されます。 したがって、パブリックネットワーク経由で File Storage NAS にデータをアップロードするのは無料ですが、データをダウンロードすると料金が発生します。 課金の詳細については、「従量課金 EIP」をご参照ください。
付録:fpsync を使用したデータ移行
fpsync をダウンロードしてインストールします。
wget -N https://github.com/martymac/fpart/archive/fpart-1.1.0.tar.gz -P /tmp tar -C /tmp/ -xvf /tmp/fpart-1.1.0.tar.gz cd /tmp/fpart-1.1.0 sudo yum install -y automake libtool autoreconf -i ./configure make sudo make install sudo yum install parallel -y printf "will cite" | parallel --bibtex sudo yum install -y rsyncファイルディレクトリ全体をコピーします。
fpsync -n 10 -f 10000 /data/src/ /data/dst/説明fpsync の詳細については、fpsync ツールのドキュメントをご参照ください。
関連ドキュメント
データセンターから NAS 上の大量のデータを頻繁に読み書きする場合は、専用線を使用してデータセンターから NAS ファイルシステムを直接マウントしてアクセスしてください。 詳細については、「データセンターからのファイルシステムへのアクセス」をご参照ください。
ECS インスタンスのパブリックネットワーク帯域幅が大量のデータを NAS にアップロードするのに不十分な場合は、まずデータを Object Storage Service (OSS) にアップロードしてから、File Storage NAS に移行することを検討してください。 詳細については、「オブジェクトのアップロード」および「移行の実装」をご参照ください。
次のステップ
データがアップロードされた後、ECS インスタンスまたはコンテナーに NAS ファイルシステムをマウントして、そのデータを共有・アクセスできます。
たとえば、Linux ECS インスタンスに NFS ファイルシステムをマウントしたり、Windows ECS インスタンスに SMB ファイルシステムをマウントしたりして、NAS データをローカルデータとしてアクセスできます。 詳細については、「Linux ECS インスタンスへの NFS ファイルシステムのマウント」および「Windows ECS インスタンスへの SMB ファイルシステムのマウント」をご参照ください。
また、複数のコンピュートノードが File Storage NAS 上の大量のデータを読み書きするクラウドアプリケーションを構築することもできます。 たとえば、NGINX プロキシサーバーを使用して File Storage NAS にアクセスしたり、Windows IIS サービスを使用して File Storage NAS にアクセスしたりできます。
データ転送にトランジット ECS インスタンスが不要になった場合は、インスタンスをリリースできます。 詳細については、「インスタンスのリリース」をご参照ください。