本页面介绍如何在双区域存储桶上使用增强型复制功能。
前提条件
前提条件因所使用的工具而异:
控制台
如需使用 Google Cloud Console 完成本指南,您必须拥有适当的 IAM 权限。如需使用此功能,您必须在双区域位置拥有或打算创建一个存储桶。如果您要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需权限的列表,请参阅 Google Cloud Console 的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
命令行
为使用命令行实用程序完成本指南,您必须拥有适当的 IAM 权限。如需使用此功能,您必须在双区域位置拥有或打算创建一个存储桶。如果您要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需权限的列表,请参阅 gsutil 命令的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
代码示例
如需使用 Cloud Storage 客户端库完成本指南,您必须拥有适当的 IAM 权限。如需使用此功能,您必须在双区域位置拥有或打算创建一个存储桶。如果您要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。除非另有说明,否则客户端库请求通过 JSON API 发出。
如需查看特定操作所需的权限列表,请参阅 JSON 方法的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
REST API
JSON API
如需使用 JSON API 完成本指南,您必须拥有适当的 IAM 权限。如需使用此功能,您必须在双区域位置拥有或打算创建一个存储桶。如果您要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需的权限列表,请参阅 JSON 方法的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
XML API
此功能无法通过 XML API 进行管理。请改用 JSON API。
检查存储桶的复制状态
如需检查存储桶的恢复点目标 (RPO) 或复制状态,请按照以下说明操作:
控制台
- 在 Google Cloud Console 中,转到 Cloud Storage 的浏览器页面。
在存储桶列表中,点击要验证的存储桶的名称。
点击配置标签页。
如果该存储桶启用了增强型复制,则复制会设置为增强型。
命令行
使用 gsutil rpo get
命令:
gsutil rpo get gs://BUCKET_NAME/
其中:
BUCKET_NAME
是相关存储分区的名称, 例如my-bucket
。
如果成功,则响应类似如下示例:
gs://my-bucket: ASYNC_TURBO
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Bucket 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=rpo"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌的名称。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
响应如下例所示:
{ "name": "my-bucket", "projectNumber": "234...", ... "rpo": "ASYNC_TURBO" }
请注意
rpo
键。值ASYNC_TURBO
表示已启用增强型复制。DEFAULT
表示已应用默认复制。双区域和多区域存储桶中始终存在rpo
字段,但单区域存储桶中不存在该字段。
XML API
此功能无法通过 XML API 进行管理。请改用 JSON API。
设置增强型复制
如需在现有存储桶上启用或停用增强型复制,请按照以下说明操作:
控制台
- 在 Google Cloud Console 中,转到 Cloud Storage 的浏览器页面。
在存储桶列表中,点击所需存储桶的名称。
点击配置标签页。
在复制行中,点击
修改。随即显示的窗口表示您要启用增强型复制还是停用增强型复制。
点击保存以确认新设置。
命令行
使用 gsutil rpo set
命令:
gsutil rpo set STATE gs://BUCKET_NAME/
其中:
STATE
为ASYNC_TURBO
(用于启用 Turbo 复制)或DEFAULT
(用于停用 Turbo 复制)。BUCKET_NAME
是相关存储分区的名称, 例如my-bucket
。
如果成功,则不会返回响应。更改会立即生效。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
以下示例会在存储桶上启用增强型复制:
以下示例会在存储桶上启用默认复制:
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
创建一个包含以下信息的 JSON 文件:
{ "rpo": "STATE" }
其中,
STATE
为ASYNC_TURBO
(用于启用 Turbo 复制)或DEFAULT
(用于停用 Turbo 复制)。使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=rpo"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的 JSON 文件的路径。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
如果请求成功,则不会返回任何响应。
XML API
此功能无法通过 XML API 进行管理。请改用 JSON API。
创建具有增强型复制功能的双区域存储桶
如需创建启用了增强型复制的新双区域存储桶,请按照以下说明操作:
控制台
- 在 Google Cloud Console 中,转到 Cloud Storage 的浏览器页面。
点击创建存储分区。
在创建存储分区页面上,输入您的存储分区信息。如需转到下一步,请点击继续。
点击创建。
如需了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息,请参阅问题排查。
命令行
使用 gsutil mb --rpo
命令:
gsutil mb -l LOCATION -c CLASS --rpo REPLICATION_TYPE gs://BUCKET_NAME/
其中:
LOCATION
指定存储桶的地理位置。如果未指定位置,则默认为US
多区域。在此示例中,请指定双区域位置。例如nam4
。CLASS
指定存储类别。例如NEARLINE
。REPLICATION_TYPE
指定双区域和多区域存储桶的复制设置。DEFAULT
值表示默认复制,是双区域或多区域存储桶的有效选项。ASYNC_TURBO
表示增强型复制,是许多双区域存储桶的有效选项。如果未指定,则默认复制设置为默认复制。在此示例中,请使用ASYNC_TURBO
。BUCKET_NAME
是相关存储分区的名称, 例如my-bucket
。如果请求成功,该命令将返回以下消息:
Creating gs://BUCKET_NAME/...
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
创建一个包含存储桶的设置的 JSON 文件,其中必须包含存储桶的
name
。如需查看完整的设置列表,请参阅 Buckets:Insert 文档。以下是一些常用的设置,包括:{ "name": "BUCKET_NAME", "rpo": "REPLICATION_TYPE", "location": "BUCKET_LOCATION", "storageClass": "STORAGE_CLASS", "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true }, } }
其中:
BUCKET_NAME
是您要为自己的存储桶指定的名称(须遵循命名要求),例如my-bucket
。REPLICATION_TYPE
指定双区域和多区域存储桶的复制设置。DEFAULT
值表示默认复制,是双区域或多区域存储桶的有效选项。ASYNC_TURBO
表示增强型复制,是大多数双区域存储桶的有效选项。如果未指定,则默认复制设置为默认复制。在此示例中,请使用ASYNC_TURBO
。BUCKET_LOCATION
是您要用于存储自己的存储桶对象数据的位置。由于您要创建启用了增强型复制的存储桶,并且存储桶的地理位置一旦创建便无法更改,因此请指定双区域。例如NAM4
。STORAGE_CLASS
是您的存储桶的默认存储类别,例如NEARLINE
。
-
curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的 JSON 文件的路径。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。PROJECT_ID
是将与您的存储桶相关联的项目的 ID,例如my-project
。
XML API
此功能无法通过 XML API 进行管理。请改用 JSON API。
监控存储桶的增强型复制性能
- 在 Google Cloud Console 中,转到 Cloud Storage 的浏览器页面。
在存储桶列表中,点击所需存储桶的名称。
点击配置标签页。
在复制行中,点击查看复制指标。
如果复制对象用时超过 15 分钟,则系统会汇总额外的分钟数并在 Cloud Console 中显示为缺少 RPO 的分钟数。Cloud Console 还会跟踪已完成的对象复制的数量,显示为使用增强型功能复制对象的次数。
如需了解详情,请参阅了解 RTO 和 RPO。