将数据复制到实例或从实例复制数据

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

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

我们建议您使用以下选项来转移大量数据:

准备工作

要按照这些说明操作,您必须安装 gsutilgcloud 命令行工具。gcloud CLI 中提供了这两个工具。

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

要将数据从 Cloud Storage 存储桶复制到装载在 Compute Engine 虚拟机实例上的 Filestore 文件共享,请使用 gsutil rsync 命令。gsutil rsync 命令适用于 Linux 和 Windows 虚拟机。如需在 Linux 虚拟机实例上复制数据,您还可以使用诸如 rsync 之类的标准命令。

Linux

  1. 在 Google Cloud 控制台中,转到“虚拟机实例”页面。

    转到“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. 在 Google Cloud 控制台中,转到“虚拟机实例”页面。

    转到“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 文件共享

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

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

     which gcloud
    

    如果已安装 gcloud CLI,该命令将返回安装路径。 如果未返回安装路径,请按照安装 gcloud CLI 中的说明进行安装。

  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 是包含该客户端虚拟机实例的项目的 ID。如果您使用 gcloud config set project project-id 设置了 gcloud 默认项目,则可以跳过此标志并改用默认项目。
    • zone 是 Compute Engine 虚拟机实例所在的可用区。如果您使用 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. 在 Google Cloud 控制台中,转到“虚拟机实例”页面。

    转到“Compute Engine 实例”页面

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

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

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

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

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

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

Linux

  1. 在 Google Cloud 控制台中,转到“虚拟机实例”页面。

    转到“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. 在 Google Cloud 控制台中,转到“虚拟机实例”页面。

    转到“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

问题排查

使用 gsutil 将数据从 Cloud Storage 复制到 Filestore 实例可能速度比较慢。如需详细了解如何提高性能,请参阅提高各项 Google Cloud 资源的性能