すべてのプロダクト
Search
ドキュメントセンター

File Storage NAS:rsync コマンドラインツールを使用したデータの移行

最終更新日:Aug 04, 2025

このトピックでは、rsync ツールを使用して、NFS プロトコルを使用する File Storage NAS (NAS) ファイルシステム間でデータを移行する方法について説明します。

前提条件

ソース NFS ファイルシステムが作成済みで、データが含まれています。 また、NFS ファイルシステム用に仮想プライベートクラウド (VPC) タイプのマウントポイントも作成されています。

課金

NAS ファイルシステム間の移行には、以下の費用が発生します。

  • Elastic Compute Service (ECS) インスタンスをデータ転送のための中間ノードとして使用する場合、ECS インスタンスの構成に基づいて課金されます。 ECS の課金の詳細については、「課金概要」をご参照ください。

  • 両方の NAS ファイルシステムのストレージ使用量に対して課金されます。 ストレージ使用料を相殺するために、リソースプランを購入することをお勧めします。 NAS の課金の詳細については、「課金概要」をご参照ください。

  • Cloud Enterprise Network (CEN) を使用して VPC ネットワークを接続する場合、使用する転送ルータとリージョン間接続に対して課金されます。 CEN の課金の詳細については、「課金ルール」をご参照ください。

準備

NAS ファイルシステム間でデータを移行する場合、ECS インスタンスはソースと宛先の両方の NAS ファイルシステムにアクセスできる必要があります。 そのため、両方の NAS ファイルシステムが同じ Alibaba Cloud 仮想プライベートクラウド (VPC) からアクセスできることを確認する必要があります。

  1. ソースファイルシステムのマウントポイントに関する情報を表示します。

    データを移行する前に、ソースファイルシステムのマウントポイント情報と、マウントポイントが属する VPC を記録します。 詳細については、「マウントポイントの管理」をご参照ください。

    説明

    ファイルシステムにクラシックネットワークマウントポイントしかない場合は、VPC にマウントポイントを作成する必要があります。 詳細については、「マウントポイントの追加」をご参照ください。

  2. 宛先ファイルシステムのマウントポイントを構成します。

    • ファイルシステムが同じリージョンにある場合

      • 宛先とソースのファイルシステムのマウントポイントが同じ VPC にある場合は、宛先マウントポイント情報を取得してからデータを移行できます。 詳細については、「データの移行」をご参照ください。

      • 宛先とソースのファイルシステムのマウントポイントが同じ VPC にない場合は、次の 3 つの方法のいずれかを使用してマウントポイントを準備できます。

        • 宛先リージョンとゾーンに新しいファイルシステムを作成します。 新しいマウントポイントが自動的に作成されます。 詳細については、「コンソールで汎用 NAS ファイルシステムを作成する」をご参照ください。

          説明

          NFS プロトコルを使用する従量課金制の汎用 NAS ファイルシステム (容量型、パフォーマンス型、またはプレミアム型) を購入する場合は、ソースマウントポイントと同じ VPC と vSwitch を選択します。 宛先マウントポイントは自動的に生成されます。 新しいファイルシステムが作成された後、リソースプランを購入して料金を相殺し、コストを節約できます。

        • 既存のファイルシステムに新しいマウントポイントを作成します。 詳細については、「マウントポイントの追加」をご参照ください。

        • Cloud Enterprise Network (CEN) を使用して、宛先とソースのマウントポイントの VPC を接続します。 詳細については、「CEN を使用して同じリージョン内の VPC 間で NAS ファイルシステムをマウントする」をご参照ください。

    • ファイルシステムが異なるアカウントまたはリージョンにある場合

      ソースと宛先のファイルシステムが異なるアカウントまたはリージョンにある場合は、Cloud Enterprise Network (CEN) を使用して VPC を接続する必要があります。 詳細については、「CEN を使用してアカウントとリージョンをまたいで NAS ファイルシステムをマウントする」をご参照ください。

データの移行

ソースと宛先のマウントポイントを準備した後、新しい ECS インスタンスを作成します。 次に、両方の NFS ファイルシステムを ECS インスタンスにマウントし、rsync ツールを使用してデータを移行します。 次の手順では、このプロセスについて説明します。

  1. ソースと宛先のファイルシステムをマウントします。

    重要

    移行のために新しい一時的な ECS インスタンスを購入することをお勧めします。 既存の ECS インスタンスを使用する場合、移行タスクは実行中のサービスと CPU およびネットワーク帯域幅リソースを競合する可能性があります。

    ECS コンソール にログインし、[インスタンスの作成] をクリックして、次のパラメータを構成します。

    • リージョン: ソースファイルシステムが配置されているリージョンを選択します。

    • ネットワークとゾーン: ソースファイルシステムが配置されている VPC、ゾーン、および vSwitch を選択します。

    • インスタンスタイプ: ほとんどの場合、最小のインスタンスタイプを選択できます。

    • イメージ: CentOS 7.6 を選択します。

    • ストレージ: [エラスティック一時ディスク | File Storage NAS | 専用ブロックストレージクラスタ (オプション)] セクションで、[ファイルシステムの追加] をクリックしてパラメータを構成します。 詳細については、次の図を参照してください。

      説明
      • ソースと宛先のマウントポイントが同じ VPC にある場合は、ECS 購入ページで NAS マウント情報を構成できます。 ECS インスタンスが起動すると、ソースと宛先の NAS ファイルシステムが自動的にマウントされます。

      • ソースと宛先のマウントポイントが同じ VPC、リージョン、またはアカウントにない場合は、ECS 購入ページでソースファイルシステムのみを構成します。 ECS インスタンスが作成された後、宛先ファイルシステムを手動でマウントする必要があります。 詳細については、「NFS プロトコルファイルシステムをマウントする」をご参照ください。

      image

    ECS インスタンスが作成され、ソースと宛先の NAS ファイルシステムがマウントされたら、次のコマンドを実行して、マウントされていることを確認します。

    mount | grep nas.aliyuncs.com

    ファイルシステムがマウントされている場合、次のような出力が返されます。 ソースファイルシステムは /mnt/volumeA ディレクトリにマウントされ、宛先ファイルシステムは /mnt/volumeB ディレクトリにマウントされます。挂载成功

  2. 移行ツールをインストールします。

    次のコマンドを実行して、移行ツールをインストールします。

    sudo yum install -y rsync tmux
    説明
    • rsync は、データレプリケーションに使用されるツールです。

    • tmux は、進捗状況を監視するために使用されるツールです。

  3. 既存データを移行します。

    次のコマンドを実行して、ソースファイルシステムから宛先ファイルシステムに既存データを同期します。

    tmux
    sudo rsync -avP /mnt/volumeA/ /mnt/volumeB/

    rsync を使用してデータを同時にコピーすることもできます。 コマンドは次のとおりです。

    threads=<スレッド数>; 
    src=<ソースパス/>; 
    dest=<宛先パス/>; 
    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 コマンドのソースパスはスラッシュ (/) で終わる必要があります。 そうしないと、rsync は宛先に余分なディレクトリレベルを作成します。

    • tmux コマンドは新しい tmux セッションを作成します。 tmux セッションで rsync を実行して、進捗状況を監視できます。 移行中に ECS インスタンスへの接続が切断された場合は、ECS インスタンスに再度ログインし、tmux attach を実行して tmux セッションを再開し、移行の監視を続行できます。

    • テスト環境では、rsync を使用してソースファイルシステムから 100 万個の 100 KiB ファイル (合計 100 GiB) を移行するのに 320 分かかりました。

  4. 増分データを移行します。

    既存データの移行中に、他の ECS インスタンス上のビジネスアプリケーションがソースファイルシステムに新しいデータを書き込む可能性があります。 既存データの移行が完了したら、この新しい増分データを同期する必要があります。

    1. ビジネスアプリケーションを停止します。

      ソースファイルシステムに新しいデータが書き込まれないようにするには、増分データを同期する前に、すべての ECS インスタンスとコンテナでソースファイルシステムを使用するビジネスアプリケーションを停止する必要があります。

      重要
      • ビジネスアプリケーションを停止した後、ソースファイルシステムからデータを手動で削除しないでください。 そうしないと、次の手順でデータが失われる可能性があります。

      • これらの操作は、オフピーク時に実行してください。 fuser -mv <dir> コマンドを実行して、NAS ファイルシステムにアクセスしているプロセスのプロセス ID (PID) を見つけることができます。

    2. 増分データを同期します。

    3. rsync コマンドを再度実行して、ソースファイルシステムから宛先ファイルシステムに増分データを同期します。

      sudo rsync -avP --delete /mnt/volumeA/ /mnt/volumeB/

      rsync コマンドは最初にソースパスをスキャンします。 そのため、増分データの量が少なくても、同期の完了に時間がかかる場合があります。

      警告

      --delete オプションは、ソースファイルシステムからファイルが削除されている場合、宛先ファイルシステムからファイルを削除します。 誤ってデータを失わないように、このオプションは慎重に使用してください。

  5. 移行結果を確認します。

    移行が完了したら、次の rsync コマンドを実行して、ソースと宛先のファイルシステムに一貫性があることを確認します。

    sudo rsync -rvn /mnt/volumeA/ /mnt/volumeB/

    データに一貫性がある場合、コマンドは次のような出力を返し、ファイルパスはリストされません。NFS file system migration result

アプリケーションを新しいファイルシステムに切り替える

データ移行が完了したら、アプリケーションを古いファイルシステムから新しいファイルシステムに切り替えます。 これを行うには、古いファイルシステムをアンマウントし、関連するすべての ECS インスタンスとコンテナに新しいファイルシステムをマウントします。

  • ECS インスタンスに NAS ファイルシステムを直接マウントします。

    1. mount | grep nas.aliyuncs.com を実行して、既存の NAS マウント情報を表示します。 NAS ファイルシステムがマウントされているローカルパス <dir> をメモします。

    2. fuser -mv <dir> を使用して、NAS ファイルシステムにアクセスしているプロセスの PID を見つけ、kill -9 コマンドを実行して停止します。

    3. umount <dir> を実行して、古いファイルシステムをアンマウントします。

    4. 新しいファイルシステムを元のパス <dir> にマウントします。 マウントパラメータの詳細については、「NFS プロトコルファイルシステムをマウントする」をご参照ください。

    5. NAS ファイルシステムにアクセスするプロセスを開始し、読み取りと書き込みの操作が成功することを確認します。

    6. /etc/fstab の自動マウント構成を変更して、古いマウントポイントを新しいマウントポイントに置き換えます。

  • Kubernetes によって管理されているコンテナに NAS ファイルシステムをマウントします。

    1. 既存の動的または静的ボリューム YAML 構成ファイルを変更して、古いマウントポイントを新しいマウントポイントに置き換えます。

    2. 変更された構成ファイルを使用して新しいポッドを作成し、新しいファイルシステムがマウントされ、期待どおりに読み書きできることを確認します。

    3. 古いファイルシステムを使用するすべてのポッドを削除します。

重要

アプリケーションを新しいファイルシステムに切り替えた後、古いファイルシステムのデータを少なくとも 1 週間保持します。 誤って削除したり、同期が不完全だったりすることによるデータの損失を防ぐため、古いファイルシステムのデータをすぐに削除しないでください。

関連情報