本页面介绍如何从以下位置复制数据:
- Cloud Storage 存储分区到 Filestore 文件共享
- 您环境中的计算机到 Filestore 文件共享
- Filestore 文件共享到 Cloud Storage 存储分区
我们建议您使用以下选项来转移大量数据:
- Transfer Appliance:如果您想要将数据离线转移到 Google Cloud 或从互联网连接状况不佳的区域转移到 Google Cloud。
- Storage Transfer Service:如果您想要将在线数据源(例如其他云产品)中的数据转移到 Google Cloud。
- Transfer Service for On Premises Data:如果您想要将数据从本地转移到 Google Cloud。
准备工作
若要按照这些说明操作,您必须安装 gcloud CLI。
将数据从 Cloud Storage 存储桶复制到 Filestore 文件共享
要将数据从 Cloud Storage 存储桶复制到装载在 Compute Engine 虚拟机实例上的 Filestore 文件共享,请使用 gcloud storage rsync
命令。此命令适用于 Linux 和 Windows 虚拟机。如需在 Linux 虚拟机实例上复制数据,您还可以使用诸如 rsync
之类的标准命令。
Linux
在 Google Cloud 控制台中,前往“虚拟机实例”页面。
选择已装载目标 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。
通过运行以下命令将数据复制到已装载的 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
在 Google Cloud 控制台中,前往“虚拟机实例”页面。
选择一个已将目标 Filestore 文件共享映射到某一云端硬盘的 Compute Engine 虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。
通过运行以下命令将数据复制到已映射的 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 虚拟机实例。
- 通过 SSH 连接到包含要复制的数据的计算机。
通过运行以下命令来检查您是否安装了 gcloud CLI:
which gcloud
如果安装了 gcloud CLI,该命令会返回安装路径。如果未返回安装路径,请按照安装 gcloud CLI 中的说明进行安装。
将数据复制到已装载的 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
默认可用区,则可以跳过此标志并改用默认可用区。
- local-data-path 是本地文件或目录(其中包含要复制到实例的数据)的路径。如果要从其他子目录复制数据,请在 local-data-path 之后使用
示例
以下命令会将本地 /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
将数据从 Filestore 文件共享复制到 Cloud Storage 存储桶
您可以使用 gcloud storage rsync
命令将数据从装载在 Compute Engine 虚拟机实例上的 Filestore 文件共享复制到 Cloud Storage 存储分区。
在继续操作之前,请先确保 Compute Engine 虚拟机可以写入到 Cloud Storage:
在 Google Cloud 控制台中,前往“虚拟机实例”页面。
选择已装载来源 Filestore 文件共享的 Compute Engine 虚拟机实例。
检查实例是否具有读写范围:
- 点击实例名称来打开实例详情页面。
- 展开 Cloud API 访问权限范围,然后查看存储是否具有读写范围。
如果 Compute Engine 虚拟机没有读写范围,请执行以下步骤:
- 点击停止以停止 Compute Engine 实例。
- 实例停止后,点击页面顶部的修改。
- 在访问权限范围下,选择针对每个 API 设置访问权限。
- 在存储下,选择读写,然后点击保存。
- 实例更新完成后,点击页面顶部的开始。
要将数据从 Filestore 文件共享复制到 Cloud Storage 存储分区,请执行以下操作:
Linux
在 Google Cloud 控制台中,前往“虚拟机实例”页面。
选择已装载来源 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 SSH 以在该虚拟机实例上打开一个终端。
通过运行以下命令从已装载的 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
在 Google Cloud 控制台中,前往“虚拟机实例”页面。
选择一个具有来源 Filestore 文件共享的 Compute Engine 虚拟机实例,然后点击 RDP 以打开指向该虚拟机的远程桌面连接。
通过运行以下命令从已映射的 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 将数据从 Cloud Storage 复制到 Filestore 实例的速度可能会很慢。如需详细了解如何提高性能,请参阅提高 Google Cloud 资源的性能。