データのコピー

このページでは、以下の対象間でデータをコピーする方法について説明します。

  • Cloud Storage バケットから Filestore ファイル共有へ。
  • 環境内のパソコンから Filestore ファイル共有へ。
  • Filestore ファイル共有から Cloud Storage バケットへ。

以下の手順を行うには、gsutilgcloud のコマンドライン ツールが必要です。

Cloud Storage バケットから Filestore ファイル共有にデータをコピーする

gsutil rsync コマンドを使用して、Cloud Storage バケットから Compute Engine VM インスタンスにマウントされた Filestore ファイル共有にデータをコピーできます。gsutil rsync コマンドは Linux VM と Windows VM の両方で機能します。Linux VM インスタンスでは、rsync などの標準コマンドを使用してデータをコピーすることもできます。

Linux

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    Compute Engine インスタンス ページに移動します。

  2. ターゲット Filestore のファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[SSH] をクリックしてその VM インスタンスでターミナルを開きます。

  3. 次のコマンドを実行して、マウントされた Filestore ファイル共有にデータをコピーします。gsutil rsync コマンドで -r オプションを使用すると、指定したロケーションのサブディレクトリに再帰適用できます。

    gsutil rsync gs://bucket mount-directory
    

    ここで

    • bucket は、データのコピー元になる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
    • mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。

次のコマンドでは、data バケットとすべてのサブディレクトリのデータが /mnt/filer ディレクトリにコピーされます。

gsutil rsync -r gs://data /mnt/filer

Windows

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    Compute Engine インスタンス ページに移動します。

  2. ターゲット Filestore のファイル共有がドライブにマッピングされている Compute Engine VM インスタンスを選択し、[RDP] をクリックしてその VM へのリモート デスクトップ接続を開きます。

  3. 次のコマンドを実行して、マッピングされた Filestore ファイル共有にデータをコピーします。gsutil rsync コマンドで -r オプションを使用すると、指定したロケーションのサブディレクトリに再帰適用できます。

    gsutil rsync gs://bucket mount-directory
    

    ここで

    • bucket は、データのコピー元になる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
    • mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。

次のコマンドは、data バケットとすべてのサブディレクトリから、Filestore のファイル共有にマッピングされている Z: ドライブにデータをコピーします。

gsutil rsync -r gs://data Z:\

環境内のパソコンから Filestore ファイル共有にデータをコピーする

gcloud compute scp コマンドを使用して、環境内のパソコンから Compute Engine Linux VM インスタンスにマウントされた Filestore ファイル共有にデータをコピーできます。gcloud compute scp コマンドは、Windows VM インスタンスでは機能しません。

  1. SSH を使用して、コピーするデータを含むパソコンに接続します。
  2. 次のコマンドを実行して、gcloud ツールがインストールされているかどうかを確認します。

     which gcloud
    

    このコマンドは、gcloud ツールがインストールされていればインストール パスを返します。 インストール パスが返されない場合は、Cloud SDK のインストールの手順に沿ってインストールします。

  3. マウントされた Filestore ファイル共有にデータをコピーします。

     gcloud compute scp local-data-path client-name:/mount-directory --project=project-id --zone=zone
    

    ここで

    • local-data-path は、インスタンスにコピーするデータが格納されたローカル ファイルまたはディレクトリへのパスです。他のサブディレクトリからデータをコピーする場合は、local-data-path の後に --recurse フラグを使用できます。
    • client-name は、Filestore ファイル共有がマウントされている Compute Engine VM インスタンスの名前です。
    • mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。
    • project-id は、クライアント VM インスタンスが含まれる GCP プロジェクトの ID です。 gcloud config set project project-id を使用して設定した場合は、このフラグを省略して gcloud のデフォルト プロジェクトを使用できます。
    • zone は、Compute Engine VM インスタンスが存在する GCP ゾーンです。gcloud config set compute/zone zone を使用して設定した場合は、このフラグを省略して代わりに gcloud のデフォルトゾーンを使用できます。

次のコマンドは、ローカルの /etc/acme/data ディレクトリとそのサブディレクトリのデータを、myproject プロジェクト、ゾーン us-central1-cnfs-client VM インスタンスの /mnt/filer ディレクトリにコピーします。

gcloud compute scp /etc/acme/data --recurse nfs-client:/mnt/filer --project myproject --zone us-central1-c

Filestore ファイル共有から Cloud Storage バケットにデータをコピーする

gsutil rsync コマンドを使用して、Compute Engine VM インスタンスにマウントされた Filestore ファイル共有のデータを Cloud Storage バケットにコピーできます。

続行する前に、まず Compute Engine VM が Cloud Storage に書き込めることを確認します。

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    Compute Engine インスタンス ページに移動します。

  2. コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択します。

  3. インスタンスに [読み取りと書き込み] スコープがあるかどうかを確認します。

    1. インスタンス名をクリックして、[VM インスタンスの詳細] ページを開きます。
    2. [Cloud API アクセス スコープ] を展開し、[ストレージ] に [読み取りと書き込み] スコープがあるかどうかを確認します。

Compute Engine VM に [読み取りと書き込み] スコープがない場合は、次の手順を行います。

  1. ページ上部の [停止] をクリックしてインスタンスを停止します。
  2. インスタンスが停止したら、ページの上部にある [編集] をクリックします。
  3. [アクセス スコープ] で、[各 API にアクセス権を設定] を選択します。
  4. [ストレージ] で、[読み取りと書き込み] を選択し、[保存] をクリックします。
  5. インスタンスの更新が完了したら、ページの上部にある [開始] をクリックします。

Filestore ファイル共有から Cloud Storage バケットにデータをコピーするには、次の手順を実施します。

Linux

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    Compute Engine インスタンス ページに移動します。

  2. コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[SSH] をクリックしてその VM インスタンスでターミナルを開きます。

  3. 次のコマンドを実行して、マウントされた Filestore ファイル共有からデータをコピーします。gsutil rsync コマンドで -r オプションを使用すると、指定したロケーションのサブディレクトリに再帰適用できます。

    gsutil rsync mount-directory gs://bucket
    

    ここで

    • mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。
    • bucket は、データのコピー先となる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。

次のコマンドは、/mnt/filer ディレクトリとすべてのサブディレクトリのデータを archive バケットにコピーします。

gsutil rsync -r /mnt/filer gs://archive

Windows

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    Compute Engine インスタンス ページに移動します。

  2. コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[RDP] をクリックしてその VM へのリモート デスクトップ接続を開きます。

  3. 次のコマンドを実行して、マッピングされた Filestore ファイル共有からデータをコピーします。gsutil rsync コマンドで -r オプションを使用すると、指定したロケーションのサブディレクトリに再帰適用できます。

    gsutil rsync mapped-drive gs://bucket
    

    ここで

    • mapped-drive は、Filestore ファイル共有がマッピングされているクライアント上のドライブです。
    • bucket は、データのコピー先となる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。

次のコマンドは、マッピングされたドライブ Z: とすべてのサブディレクトリから archive バケットにデータをコピーします。

gsutil rsync -r Z:\ gs://archive