复制数据

在本主题中,您将了解如何使用 gsutilgcloud 命令行工具从 Cloud Filestore 实例复制数据或将数据复制到该实例中。

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

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

Linux

  1. 转到“虚拟机实例”页面
  2. 选择一个已装载目标 Cloud Filestore 文件共享的客户端虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。
  3. 运行以下命令来将数据复制到装载的 Cloud Filestore 文件共享,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值。将 -r 选项和 gsutil rsync 命令搭配使用,通过递归方式进入到您指定的位置的子目录中。

      gsutil rsync gs://[BUCKET] [MOUNT_DIRECTORY]
    

    其中:

    • [BUCKET] 是要从中复制数据的 Cloud Storage 存储分区、目录或子目录。
    • [MOUNT_DIRECTORY] 是客户端上用于装载该 Cloud Filestore 文件共享的目录。

示例

以下命令会将数据从 data 存储分区和所有子目录复制到 /mnt/filer 目录中。

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

Windows

  1. 转到“虚拟机实例”页面
  2. 选择一个已将目标 Cloud Filestore 文件共享映射到某一驱动器的客户端虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。
  3. 打开一个终端窗口,然后运行以下命令将某个驱动器映射到该 Cloud Filestore 文件共享:

    net use [DRIVE_LETTER]: \\[IP_ADDRESS]\[FILESHARE]
    

    其中:

    • [DRIVE_LETTER] 是要映射到该 Cloud Filestore 文件共享的驱动器。
    • [IP_ADDRESS] 是 Cloud Filestore 实例的 IP 地址。
    • [FILESHARE] 是 Cloud Filestore 实例上的文件共享的名称。

    例如,net use Z: \\10.123.45.67\my_share

  4. 运行以下命令将数据复制到映射的 Cloud Filestore 文件共享,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值。将 -r 选项和 gsutil rsync 命令搭配使用,通过递归方式进入到您指定的位置的子目录中。

      gsutil rsync gs://[BUCKET] [MAPPED_DRIVE]
    

    其中:

    • [BUCKET] 是要从中复制数据的 Cloud Storage 存储分区、目录或子目录。
    • [MAPPED_DRIVE] 是客户端上要将该 Cloud Filestore 文件共享映射到的驱动器。

示例

以下命令会将 data 存储分区和所有子目录中的数据复制到“Z:”驱动器,而后者已映射到 Cloud Filestore 文件共享。

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

将您环境中计算机上的数据复制到 Cloud Filestore 文件共享

您可以使用 gcloud compute scp 命令将您环境中计算机上的数据复制到 Compute Engine Linux 虚拟机实例上装载的 Cloud Filestore 文件共享。gcloud compute scp 命令不适用于 Windows 虚拟机实例。

  1. 通过 SSH 连接到包含要复制的数据的计算机。
  2. 运行以下命令来查看是否已安装 gcloud 工具:

    which gcloud
    

    如果安装了 gcloud 工具,该命令将返回安装路径。如果未返回安装路径,请按照安装 Cloud SDK 中的说明安装该工具。

  3. 运行以下命令将数据复制到已装载的 Cloud Filestore 文件共享,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值:

    gcloud compute scp [LOCAL_DATA_PATH] \
        [CLIENT_NAME]:/[MOUNT_DIRECTORY] \
        --project [PROJECT_ID] --zone [LOCATION]
    

    其中:

    • [LOCAL_DATA_PATH] 是本地文件或目录的路径,该文件或路径包含要复制到实例的数据。如果要从其他子目录复制数据,请在 [LOCAL_DATA_PATH] 的后面使用 --recurse 标志。
    • [CLIENT_NAME] 是装载 Cloud Filestore 文件共享的客户端虚拟机实例的名称。
    • [MOUNT_DIRECTORY] 是装载 Cloud Filestore 文件共享的客户端虚拟机实例上的目录。
    • [PROJECT_ID] 是包含该客户端虚拟机实例的 GCP 项目的 ID。如果您已使用 gcloud config set project [PROJECT_NAME] 设置了 gcloud 默认项目,则可以省略此标志并改用默认项目。
    • [LOCATION] 是客户端虚拟机实例所在的 GCP 地区。如果您已使用 gcloud config set compute/zone [ZONE] 设置了 gcloud 默认位置,则可以省略此标志并改用默认位置。

示例

以下命令将数据从本地 /etc/acme/data 目录及其子目录复制到 us-central1-c 地区的 myproject 项目中的 nfs-client 虚拟机实例上的 /mnt/filer 目录:

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

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

您可以使用 gsutil rsync 命令将数据从安装在 Compute Engine 虚拟机实例上的 Cloud Filestore 文件共享复制到 Cloud Storage 存储分区。

继续操作之前,请先确保客户端虚拟机可以向 Cloud Storage 写入数据:

  1. 转到“虚拟机实例”页面
  2. 选择一个已装载来源 Cloud Filestore 文件共享的客户端虚拟机实例。
  3. 检查实例是否具有读写范围:
    1. 点击实例名称来打开实例详情页面。
    2. 展开 Cloud API 访问权限范围,然后查看存储是否具有读写范围。

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

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

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

Linux

  1. 转到“虚拟机实例”页面
  2. 选择一个已装载来源 Cloud Filestore 文件共享的客户端虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。
  3. 运行以下命令来从装载的 Cloud Filestore 文件共享中复制数据,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值。将 -r 选项和 gsutil rsync 命令搭配使用,通过递归方式进入到您指定的位置的子目录中。

     gsutil rsync [MOUNT_DIRECTORY] gs://[BUCKET]
    

    其中:

    • [MOUNT_DIRECTORY] 是客户端上用于装载该 Cloud Filestore 文件共享的目录。
    • [BUCKET] 是要将数据复制到的 Cloud Storage 存储分区、目录或子目录。

示例

以下命令会将数据从 /mnt/filer 目录及其所有子目录复制到 archive 存储分区。

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

Windows

  1. 转到“虚拟机实例”页面
  2. 选择一个已装载来源 Cloud Filestore 文件共享的客户端虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。
  3. 打开一个终端窗口,然后运行以下命令将某个驱动器映射到该 Cloud Filestore 文件共享:

    net use [DRIVE_LETTER]: \\[IP_ADDRESS]\[FILESHARE]
    

    其中:

    • [DRIVE_LETTER] 是要映射到该 Cloud Filestore 文件共享的驱动器。
    • [IP_ADDRESS] 是 Cloud Filestore 实例的 IP 地址。
    • [FILESHARE] 是实例上的文件共享的名称。

    例如,net use Z: \\10.123.45.67\my_share

  4. 运行以下命令来从映射的 Cloud Filestore 文件共享中复制数据,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值。将 -r 选项和 gsutil rsync 命令搭配使用,通过递归方式进入到您指定的位置的子目录中。

    运行以下命令可将数据从映射的 Cloud Filestore 文件共享复制到 Cloud Storage 存储分区,注意要将 [VALUES_IN_BRACKETS] 替换为适当的值:

      gsutil rsync [MAPPED_DRIVE] gs://[BUCKET]
    

    其中:

    • [MAPPED_DRIVE] 是客户端上要将该 Cloud Filestore 文件共享映射到的驱动器。
    • [BUCKET] 是要将数据复制到的 Cloud Storage 存储分区、目录或子目录。

示例

以下命令会将数据从映射的驱动器 Z:\` and all subdirectories to the复制到“archive”存储分区。

gsutil rsync -r Z:\ gs://archive
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Filestore 文档