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

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

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

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

准备工作

要按照这些说明操作,您必须安装 gcloud CLI

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

要将数据从 Cloud Storage 存储桶复制到装载在 Compute Engine 虚拟机实例上的 Filestore 文件共享,请使用 gcloud storage rsync 命令。这个 适用于 Linux 和 Windows 虚拟机。如需复制 Linux 虚拟机实例上的数据,请执行以下操作: 也可以使用标准命令 rsync

Linux

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

    转到“Compute Engine 实例”页面

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

  3. 通过运行以下命令将数据复制到已装载的 Filestore 文件共享。要以递归方式同步 请将 --recursive 选项与 gcloud storage rsync 命令。

    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

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

    转到“Compute Engine 实例”页面

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

  3. 通过运行以下命令将数据复制到已映射的 Filestore 文件共享。要以递归方式同步 请将 --recursive 选项与 gcloud storage rsync 命令。

    gcloud storage rsync gs://bucket mount-directory
    

    其中:

    • bucket 是要从中复制数据的 Cloud Storage 存储分区、目录或子目录。
    • mount-directory 是装载 Filestore 文件共享的客户端上的目录。

示例

以下命令会将数据从 data 存储分区和所有子目录复制到映射到 Filestore 文件共享的 Z: 云端硬盘。

gcloud storage rsync gs://data Z:\ --recursive

将您环境中的计算机中的数据复制到 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 存储桶

您可以使用 gcloud storage 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 文件共享中复制数据。要以递归方式同步 请将 --recursive 选项与 gcloud storage rsync 命令。

    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

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

    转到“Compute Engine 实例”页面

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

  3. 通过运行以下命令从已映射的 Filestore 文件共享中复制数据。要以递归方式同步 请将 --recursive 选项与 gcloud storage rsync 命令。

    gcloud storage rsync mapped-drive gs://bucket
    

    其中:

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

示例

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

gcloud storage rsync Z:\ gs://archive --recursive

问题排查

使用 gcloud CLI 可能速度很慢。如需详细了解如何提高 请参阅提升各项 Google Cloud 资源的性能