复制数据

本页面介绍如何从以下位置复制数据:

  • Cloud Storage 存储分区到 Filestore 文件共享。
  • 您环境中的计算机到 Filestore 文件共享。
  • Filestore 文件共享到 Cloud Storage 存储分区。

要按照这些说明操作,您需要 gsutilgcloud 命令行工具。

将数据从 Cloud Storage 存储分区复制到 Filestore 文件共享

您可以使用 gsutil rsync 命令将数据从 Cloud Storage 存储分区复制到装载在 Compute Engine 虚拟机实例上的 Filestore 文件共享。gsutil rsync 命令适用于 Linux 和 Windows 虚拟机。在 Linux 虚拟机实例上,您还可以使用 rsync 等标准命令来复制数据。

Linux

  1. 在 Cloud Console 中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

  2. 选择已装载目标 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。

  3. 通过运行以下命令将数据复制到已装载的 Filestore 文件共享。您可以将 -r 选项与 gsutil rsync 命令结合使用,以递归到您指定的位置的子目录。

    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 中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

  2. 选择一个已将目标 Filestore 文件共享映射到某一云端硬盘的 Compute Engine 虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。

  3. 通过运行以下命令将数据复制到已映射的 Filestore 文件共享。您可以将 -r 选项与 gsutil rsync 命令结合使用,以递归到您指定的位置的子目录。

    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 虚拟机实例上装载的 Filestore 文件共享。gcloud compute scp 命令不适用于 Windows 虚拟机实例。

  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 虚拟机实例的名称。
    • mount-directory 是装载 Filestore 文件共享的客户端上的目录。
    • project-id 是包含该客户端虚拟机实例的 GCP 项目的 ID。 如果已使用 gcloud config set project project-id 设置,则可以省略此标志并改用 gcloud 默认项目。
    • zone 是 Compute Engine 虚拟机实例所在的 GCP 区域。如果已使用 gcloud config set compute/zone zone 设置,则可以省略此标志并改用 gcloud 默认地区。

示例

以下命令会将本地 /etc/acme/data 目录及其子目录中的数据复制到地区 us-central1-cmyproject 项目中的 nfs-client 虚拟机实例上的 /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 虚拟机实例上的 Filestore 文件共享复制到 Cloud Storage 存储分区。

在继续操作之前,请先确保 Compute Engine 虚拟机可以写入到 Cloud Storage:

  1. 在 Cloud Console 中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

  2. 选择已装载来源 Filestore 文件共享的 Compute Engine 虚拟机实例。

  3. 检查实例是否具有读写范围:

    1. 点击实例名称来打开实例详情页面。
    2. 展开 Cloud API 访问权限范围,然后查看存储是否具有读写范围。

如果 Compute Engine 虚拟机没有读写范围,请执行以下步骤:

  1. 点击页面顶部的停止以停止实例。
  2. 实例停止后,点击页面顶部的修改
  3. 访问权限范围下,选择针对每个 API 设置访问权限
  4. 存储下,选择读写,然后点击保存
  5. 实例更新完成后,点击页面顶部的开始

要将数据从 Filestore 文件共享复制到 Cloud Storage 存储分区,请执行以下操作:

Linux

  1. 在 Cloud Console 中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

  2. 选择已装载来源 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。

  3. 通过运行以下命令从已装载的 Filestore 文件共享中复制数据。您可以将 -r 选项与 gsutil rsync 命令结合使用,以递归到您指定的位置的子目录。

    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 中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

  2. 选择一个具有来源 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。

  3. 通过运行以下命令从已映射的 Filestore 文件共享中复制数据。您可以将 -r 选项与 gsutil rsync 命令结合使用,以递归到您指定的位置的子目录。

    gsutil rsync mapped-drive gs://bucket
    

    其中:

    • mapped-drive 是客户端上该 Filestore 文件共享被映射到的云端硬盘。
    • bucket 是要将数据复制到的 Cloud Storage 存储分区、目录或子目录。

示例

以下命令会将数据从已映射的云端硬盘 Z: 及所有子目录复制到 archive 存储分区。

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