このページでは、以下の対象間でデータをコピーする方法について説明します。
- Cloud Storage バケットから Filestore ファイル共有へ
- 環境内のパソコンから Filestore ファイル共有へ
- Filestore ファイル共有から Cloud Storage バケットへ
大量のデータを転送する場合は、次のオプションをおすすめします。
- Transfer Appliance: オフライン、またはインターネット接続状況の悪い場所からデータを Google Cloud に転送する場合。
- Storage Transfer Service: 別のクラウド プロダクトなどのオンライン データソースから Google Cloud にデータを転送する場合。
- Transfer service for On-Premises Data: オンプレミスから Google Cloud にデータを転送する場合。
始める前に
以下の手順を行うには、gcloud CLI をインストールする必要があります。
Cloud Storage バケットから Filestore ファイル共有にデータをコピーする
gcloud storage rsync
コマンドを使用して、Cloud Storage バケットから Compute Engine VM インスタンスにマウントされた Filestore ファイル共有にデータをコピーできます。このコマンドは Linux VM と Windows VM の両方で機能します。Linux VM インスタンスでデータをコピーするには、rsync
などの標準コマンドを使用することもできます。
Linux
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
ターゲット Filestore のファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[SSH] をクリックしてその VM インスタンスでターミナルを開きます。
次のコマンドを実行して、マウントされた Filestore ファイル共有にデータをコピーします。指定したロケーションのサブディレクトリを繰り返し同期するには、
gcloud storage rsync
コマンドで--recursive
オプションを使用します。gcloud storage rsync gs://bucket mount-directory
ここで
- bucket は、データのコピー元になる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
- mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。
例
次のコマンドでは、data
バケットとすべてのサブディレクトリのデータが /mnt/filer
ディレクトリにコピーされます。
gcloud storage rsync gs://data /mnt/filer --recursive
Windows
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
ターゲット Filestore のファイル共有がドライブにマッピングされている Compute Engine VM インスタンスを選択し、[RDP] をクリックしてその VM へのリモート デスクトップ接続を開きます。
次のコマンドを実行して、マッピングされた Filestore ファイル共有にデータをコピーします。指定したロケーションのサブディレクトリを繰り返し同期するには、
gcloud storage rsync
コマンドで--recursive
オプションを使用します。gcloud storage rsync gs://bucket mount-directory
ここで
- bucket は、データのコピー元になる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
- mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。
例
次のコマンドは、data
バケットとすべてのサブディレクトリから、Filestore のファイル共有にマッピングされている Z:
ドライブにデータをコピーします。
gcloud storage rsync gs://data Z:\ --recursive
環境内のパソコンから Filestore ファイル共有にデータをコピーする
gcloud compute scp
コマンドを使用して、環境内のパソコンから Compute Engine Linux VM インスタンスにマウントされた Filestore ファイル共有にデータをコピーできます。gcloud compute scp
コマンドは、Windows VM インスタンスでは機能しません。
- SSH を使用して、コピーするデータを含むパソコンに接続します。
次のコマンドを実行して、gcloud CLI がインストールされているかどうかを確認します。
which gcloud
gcloud CLI がインストールされている場合、コマンドはインストール パスを返します。インストール パスが返されない場合は、gcloud CLI のインストールの手順に沿ってインストールします。
マウントされたファイル共有にデータをコピーします。
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 インスタンスを含むプロジェクトの ID です。
gcloud config set project project-id
を使用してgcloud
デフォルト プロジェクトを設定している場合は、このフラグを省略してデフォルト プロジェクトを使用できます。 - zone は、Compute Engine VM インスタンスが存在するゾーンです。
gcloud config set compute/zone zone
を使用してgcloud
デフォルト ゾーンを設定している場合は、このフラグを省略してデフォルト ゾーンを使用できます。
- local-data-path は、インスタンスにコピーするデータが格納されたローカル ファイルまたはディレクトリへのパスです。他のサブディレクトリからデータをコピーする場合は、local-data-path の後に
例
次のコマンドは、ローカルの /etc/acme/data
ディレクトリとそのサブディレクトリのデータを、myproject
プロジェクト、ゾーン us-central1-c
の nfs-client
VM インスタンスの /mnt/filer
ディレクトリにコピーします。
gcloud compute scp /etc/acme/data --recurse nfs-client:/mnt/filer --project myproject --zone us-central1-c
Filestore ファイル共有から Cloud Storage バケットにデータをコピーする
gcloud storage rsync
コマンドを使用して、Compute Engine VM インスタンスにマウントされた Filestore ファイル共有のデータを Cloud Storage バケットにコピーできます。
続行する前に、まず、Compute Engine VM が Cloud Storage に書き込めることを確認します。
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択します。
インスタンスに [読み取りと書き込み] スコープがあるかどうかを確認します。
- インスタンス名をクリックして、[VM インスタンスの詳細] ページを開きます。
- [Cloud API アクセス スコープ] を展開し、[ストレージ] に [読み取りと書き込み] スコープがあるかどうかを確認します。
Compute Engine VM に [読み取りと書き込み] スコープがない場合は、次の手順を行います。
- [停止] をクリックして、Compute Engine インスタンスを停止します。
- インスタンスが停止したら、ページの上部にある [編集] をクリックします。
- [アクセス スコープ] で、[各 API にアクセス権を設定] を選択します。
- [ストレージ] で、[読み取りと書き込み] を選択し、[保存] をクリックします。
- インスタンスの更新が完了したら、ページの上部にある [開始] をクリックします。
Filestore ファイル共有から Cloud Storage バケットにデータをコピーするには、次の手順を実施します。
Linux
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[SSH] をクリックしてその VM インスタンスでターミナルを開きます。
次のコマンドを実行して、マウントされた Filestore ファイル共有からデータをコピーします。指定したロケーションのサブディレクトリを繰り返し同期するには、
gcloud storage rsync
コマンドで--recursive
オプションを使用します。gcloud storage rsync mount-directory gs://bucket
ここで
- mount-directory は、Filestore ファイル共有がマウントされているクライアントのディレクトリです。
- bucket は、データのコピー先となる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
例
次のコマンドは、/mnt/filer
ディレクトリとすべてのサブディレクトリのデータを archive
バケットにコピーします。
gcloud storage rsync /mnt/filer gs://archive --recursive
Windows
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
コピー元の Filestore ファイル共有がマウントされている Compute Engine VM インスタンスを選択し、[RDP] をクリックしてその VM へのリモート デスクトップ接続を開きます。
次のコマンドを実行して、マッピングされた Filestore ファイル共有からデータをコピーします。指定したロケーションのサブディレクトリを繰り返し同期するには、
gcloud storage rsync
コマンドで--recursive
オプションを使用します。gcloud storage rsync mapped-drive gs://bucket
ここで
- mapped-drive は、Filestore ファイル共有がマッピングされているクライアント上のドライブです。
- bucket は、データのコピー先となる Cloud Storage バケット、ディレクトリ、またはサブディレクトリです。
例
次のコマンドは、マッピングされたドライブ Z:
とすべてのサブディレクトリから archive
バケットにデータをコピーします。
gcloud storage rsync Z:\ gs://archive --recursive
トラブルシューティング
gcloud CLI を使用して Cloud Storage から Filestore インスタンスにデータをコピーする場合は、時間がかかることがあります。パフォーマンスを改善する方法ついて詳しくは、Google Cloud リソース全体でパフォーマンスを向上させるをご覧ください。