データ転送用の中間ノードを設定した後、移行ツールを使用してデータをApsara File Storage NAS (NAS) ファイルシステムに移行する必要があります。 このトピックでは、移行ツールを使用して、オンプレミスのストレージシステムからNASファイルシステムにデータを移行する方法について説明します。
前提条件
Elastic Compute Service (ECS) インスタンスは、データ転送の中間ノードとして設定されています。 詳細については、「データ転送用の中間ノードの設定」をご参照ください。
SSHファイル転送プロトコル (SFTP) クライアントを使用してデータを移行する
一度に少数のファイルをアップロードする必要がある場合は、オンプレミスのコンピューターにSFTPクライアントをインストールして使用することをお勧めします。 このソリューションには次の利点があります。
複数のオペレーティングシステムをサポートします。
グラフィカルユーザーインターフェイス (GUI) を提供します。
オンプレミスのコンピューターにSFTPクライアントをインストールします。
オンプレミスのオペレーティングシステムに基づいてSFTPクライアントをダウンロードしてインストールします。 複数のSFTPバージョンが利用可能です。 この例では、FileZillaが使用されます。
SFTPクライアントとECSインスタンス間の接続を確立します。
FileZillaクライアントを開いて設定します。 下表に、各パラメーターを説明します。 [Quickconnect] をクリックして接続を確立します。
オンプレミスクライアントとECSインスタンスが接続されると、左側のペインにオンプレミスファイルシステムが表示されます。 ECSインスタンスにマウントされているファイルシステムが右側のペインに表示されます。
パラメーター
説明
ホスト
ECSインスタンスのパブリックIPアドレス。 たとえば、192.0.2.1と入力できます。
ユーザー名
ECSインスタンスのユーザー名。 ユーザーには、NASファイルシステムに対する読み取りおよび書き込み権限があります。 たとえば、rootと入力できます。
説明Linux ECSインスタンスのデフォルトのユーザー名は、rootまたはecs-userです。
Windows ECSインスタンスのデフォルトのユーザー名は管理者です。
Password
ECSインスタンスのログインパスワード。 たとえば、rootユーザーのログインパスワードを入力できます。
説明ECSインスタンスのログインパスワードを忘れた場合は、パスワードをリセットできます。 詳細については、「インスタンスのログインパスワードのリセット」をご参照ください。
ポート
SFTPで使用されるポート番号。 デフォルト値: 22。
右側のペインの [リモートサイト] フィールドに、NASファイルシステムがマウントされているディレクトリへのパス (/mntなど) を入力します。 NASファイルシステム内のファイルのリストを表示するには、Enterキーを押します。
データをアップロードします。
1つ以上のファイルまたはディレクトリを左ペインから右ペインにドラッグアンドドロップして、データをアップロードします。
rsyncコマンドラインツールを使用したデータの移行
頻繁にファイルをアップロードするか、多数のファイルをアップロードする必要がある場合は、オンプレミスのコンピューターにrsyncコマンドラインツールをインストールすることをお勧めします。 このソリューションには次の利点があります。
ファイルがアップロードされた後、所有者と権限情報を含むファイルのメタデータは変更されません。
増分データを同期できます。
オンプレミスのLinuxまたはmacOSシステムにcrontabを設定して、データをNASファイルシステムに自動的にバックアップできます。
rsyncツールをインストールします。
Linux
オペレーティングシステム
コマンド
CentOS
yumパッケージマネージャーを使用してrsyncをインストールします。
sudo yum install rsync
レッドハット
Ubuntu
aptパッケージマネージャーを使用してrsyncをインストールします。
sudo apt-get install rsync
Debian
説明別のバージョンのLinuxを使用している場合は、対応するパッケージマネージャーを使用してrsyncをインストールします。
macOS
Homebrewパッケージマネージャーをダウンロードしてインストールし、次のコマンドを実行してrsyncをインストールします。
brew install rsync
Windows
Cygwinシミュレーション環境をダウンロードしてインストールします。 インストールプロセス中に、rsyncを検索してインストールできます。 rsyncをダウンロード、コンパイル、インストールすることもできます。
説明関連付けられている仮想プライベートクラウド (VPC) のセキュリティグループのSSH TCPポート22を有効にする必要があります。
データをアップロードします。
次のコマンドを実行して、指定されたオンプレミスディレクトリを増分同期モードでNASファイルシステムにアップロードします。
rsync -avP DirToSync/ root@192.0.2.0:/mnt/DirToSync/
コマンドのパラメータを実際の値に置き換えます。 下表に、各パラメーターを説明します。
パラメーター
説明
DirToSync
アップロードするオンプレミスディレクトリの名前。
ルート
NASファイルシステムの宛先ディレクトリの所有者。
192.0.2.0
NASファイルシステムがマウントされているLinuxまたはWindows ECSインスタンスのパブリックIPアドレス。
/mnt
ECSインスタンス内のパス。 パスは、NASファイルシステムをマウントするために使用されます。
説明rsyncコマンドのソースパスはスラッシュ (/) で終わる必要があります。 それ以外の場合、データが同期された後、ソースパスは宛先パスと一致しません。
rsyncを使用して、Apsara File Storage NASにデータを同時にコピーおよびアップロードすることもできます。 以下のコマンドを実行します。
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/% )
(オプションの手順) スケジュールされたアップロードジョブとバックアップジョブを設定します。
rsyncコマンドを実行して、オンプレミスのLinuxまたはmacOSシステムのcrontabを設定し、定期的にデータをアップロードできます。
Linux
オンプレミスコンピューターとECSインスタンス間にパスワードなしの接続を確立します。 詳細については、「SSHキーペアを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、接続が成功したかどうかを確認します。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
説明~/.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設定により、Linuxオペレーティングシステムは、毎日23:00:00にオンプレミスのDocumentsディレクトリからNASファイルシステムにデータを自動的にアップロードできます。 ビジネス要件に基づいて、crontab設定のパラメーターを変更できます。
macOS
/usr/sbin/cronディレクトリのアクセス許可を設定します。
システム環境設定に移動します。 表示されるウィンドウで、/usr/sbin/cronディレクトリを選択します。
を選択し、[ロック解除] をクリックし、[+] をクリックします。 表示されるウィンドウで、Macintosh HD Directoryを選択し、cmd + shift + を押します。 隠しディレクトリを表示する組み合わせキー。 次に、オンプレミスコンピューターとECSインスタンス間にパスワードなしの接続を確立します。 詳細については、「SSHキーペアを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、接続が成功したかどうかを確認します。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
説明~/.ssh/ecs.pemは、オンプレミスのコンピューター上のキーファイルのパスです。
crontabを設定します。
crontab -e
コマンドを実行してエディターを開き、スケジュールされたアップロードジョブを設定します。 次の例は、サンプル設定を示しています。0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/
上記のcrontab設定により、Linuxオペレーティングシステムは、毎日23:00:00にオンプレミスのDocumentsディレクトリからNASファイルシステムにデータを自動的にアップロードできます。 ビジネス要件に基づいて、crontab設定のパラメーターを変更できます。
説明再同期ツールが要件を満たせない場合は、fpsyncツールを使用して、複数のスレッドでデータを移行できます。 詳細については、「付録: fpsyncコマンドラインツールを使用したデータの移行」をご参照ください。
Robocopyツールを使用したデータの移行
Robocopyは、Windowsによって提供されるディレクトリコピーコマンドです。 不要な重複ファイルをコピーすることなく、同じファイル構造を持つ2つのイメージコピーを作成できます。 日付やタイムスタンプなど、関連するすべてのファイル情報を保持できます。 大量のデータを移行するには、Windows ECSインスタンスに最新のPythonプログラムをインストールし、migration.pyスクリプトを設定します。
データの移行に使用するECSインスタンスにログインします。
データを移行します。
次のコマンドを実行して、ソースファイルシステム (ディスクZ) からターゲットファイルシステム (ディスクY) にデータを移行します。
robocopy Z:\ Y:\ /e /w:5 /z /mt:32
説明指定されたディレクトリ内のデータのみが移行されます。 ディレクトリは移行されません。
下表に、各パラメーターを説明します。 パラメータの値を実際の値に置き換えます。
パラメーター
説明
/mt
同時スレッドの数を指定します。 デフォルト値: 8。
有効な値: 1 ~ 128
この例では、32スレッドがマルチスレッドレプリケーションに使用されます。
/w
エラーによる2回の連続した再試行の間の秒数を指定します。
/z
再開可能なアップロードを有効にします。
/e
空のディレクトリを含むすべてのサブディレクトリをコピーします。
/copyall
すべてのファイル情報をコピーします。 情報には次の項目が含まれます。
Data
Attributes
Timestamp
アクセス制御リスト (ACL)
オーナー情報
監査情報
説明10テラバイトを超える数億の小さなファイルなど、大量のデータの移行を高速化する場合は、Windows ECSインスタンスに最新のPythonプログラムをインストールできます。 詳細については、「」をご参照ください。SMBファイルシステムへのデータ移行を高速化するにはどうすればよいですか?
移行結果を確認します。
データ移行が完了したら、次のコマンドを実行して、ターゲットファイルシステムに格納されているデータが、ソースファイルシステムに格納されているデータと一致しているかどうかを確認します。
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クライアントをインストールして構成することをお勧めします。 このソリューションには次の利点があります。
複数のオペレーティングシステムをサポートします。
GUIを提供します。
ECSインスタンスでIIS FTPサービスを設定し、オンプレミスのコンピューターでFTPクライアントを設定します。 詳細については、「Windows IIS webサービスの設定」をご参照ください。
関連付けられているVPCのセキュリティグループのFTP TCPポートを有効にする必要があります。
他のFTPサーバーやクライアントを構成して、インターネット経由でデータをアップロードおよびダウンロードすることもできます。
elastic IPアドレス (EIP) のインバウンドトラフィックに対しては課金されません。 ただし、EIPのアウトバウンドトラフィックに対して課金されます。 したがって、インターネット経由でNASファイルシステムにデータをアップロードするときに生成されるトラフィックに対しては課金されません。 ただし、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-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ファイルシステムをデータセンターにマウントする必要があります。 詳細については、「オンプレミスデータセンターでのファイルシステムへのアクセス」をご参照ください。
大量のデータをNASファイルシステムにアップロードする必要がある場合は、データをObject Storage Service (OSS) にアップロードしてから、OSSからNASにデータを移行できます。 ECSインスタンスのインターネット帯域幅が要件を満たさない場合は、このソリューションを使用することを推奨します。 詳細については、「オブジェクトのアップロード」および「データの移行」をご参照ください。
次のステップ
データがアップロードされた後、ECSインスタンスまたはビジネスが属するコンテナにNASファイルシステムをマウントできます。 これにより、NASファイルシステムでデータを共有できます。
たとえば、Linux ECSインスタンスにNFSファイルシステムをマウントしたり、Windows ECSインスタンスにSMBファイルシステムをマウントしたりできます。 これにより、オンプレミスのデータにアクセスするのと同じ方法で、NASファイルシステムのデータにアクセスできます。 詳細については、「Linux ECSインスタンスへのNFSファイルシステムのマウント」および「Windows ECSインスタンスへのSMBファイルシステムのマウント」をご参照ください。
ビジネスアプリケーションをクラウドにデプロイすることもできます。 その後、複数の計算ノードでプログラムを使用して、NASファイルシステムとの間で大量のデータを読み書きできます。 たとえば、NGINXをApsara File Storage NASのプロキシとして使用する、またはWindows IISを使用してApsara File Storage NASにアクセスすることができます。
中間ECSインスタンスへのデータのアップロードまたは中間ECSインスタンスからのデータのダウンロードが終了した場合、ECSインスタンスをリリースできます。 詳細については、「インスタンスのリリース」をご参照ください。