云存储的其他注意事项

如果您要备份到受支持的云存储位置,则需额外执行一些一次性配置。如果备份的群集正在云中的实例上运行,则还需额外执行一些步骤。对于 Amazon Web Services (AWS),您可能会选择加密备份。这需要额外执行一些步骤。

默认情况下,存储桶访问仅限于公共存储桶。对于其他存储桶的一次性操作(例如备份和还原数据库),请使用适当的凭据。有关其他信息,请参阅 Google Cloud Storage 参数S3 参数

为备份配置云存储

与任何存储位置一样,您必须使用 vbr init 任务对云存储位置进行初始化。

由于云存储不支持文件锁定,因此 Vertica 使用本地文件系统或云存储文件系统处理备份期间的文件锁定。您可以使用 vbr 配置文件中的 cloud_storage_backup_file_system_path 参数来识别此位置。在备份期间,Vertica 将在您的本地或云实例上创建一个锁定的标识文件,并在云存储备份位置创建一个重复文件。只要文件匹配,Vertica 就会继续备份,并在备份完成时释放锁定文件。只要文件始终保持相同,您就可以使用云存储位置来执行备份和还原任务。

如果锁定位置中的文件与备份位置中的文件不同步,则备份和还原任务将会失败并显示错误消息。您可以使用 --cloud-force-init 参数重新运行 init 任务,从而解决锁定不一致问题:

$ /opt/vertica/bin/vbr --task init --cloud-force-init -c filename.ini

为 Google Cloud Storage 配置身份验证

如果您要从基于 Google Cloud Platform 的群集备份到 Google Cloud Storage (GCS),则必须向 GCS 公共存储位置提供身份验证。按照配置与云存储之间的备份中的详细说明设置环境变量,以对 GCS 存储进行身份验证。

有关其他身份验证信息(包括如何创建基于哈希的消息身份验证代码 (HMAC) 密钥),请参阅 GCP 上 Eon 模式的先决条件

为 Amazon S3 配置 EC2 身份验证

如果从基于 EC2 的群集备份到 S3,则必须向 S3 主机提供身份验证。无论选择何种身份验证类型,您的凭据均不会离开 EC2 群集。Vertica 支持以下身份验证类型:

  • AWS 凭据文件

  • 环境变量

  • IAM 角色

AWS 凭据文件 - 您可以通过 ~/.aws/credentials 在 EC2 启动程序主机上手动创建配置文件。

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

有关凭据文件的更多信息,请参考 Amazon Web Services 文档

环境变量 - Amazon Web Services 提供以下环境变量:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

在启动程序上使用这些变量为您的 S3 主机提供身份验证。当会话结束时,AWS 会删除这些变量。有关更多信息,请参考 AWS 文档

IAM 角色 - 创建 AWS IAM 角色,并授予该角色访问您的 EC2 群集和 S3 资源的权限。建议使用此方法管理长期访问权限。有关更多信息,请参考 Amazon Web Services 文档

对 Amazon S3 上的备份进行加密

使用本机服务器端 S3 加密功能,可以对 Amazon S3 的备份进行加密。有关 Amazon S3 加密的更多信息,请参考 Amazon 文档

Vertica 支持以下形式的 S3 加密:

  • 使用 Amazon S3 管理密钥 (SSE-S3) 的服务器端加密

    • 使用 AES-256 加密备份

    • Amazon 管理加密密钥

  • 使用 AWS KMS 管理密钥 (SSE-KMS) 的服务器端加密

    • 使用 AES-256 加密备份

    • 需要 Amazon 密钥管理服务提供加密密钥

    • S3 存储桶必须与加密密钥来自同一区域

    • 允许审核用户活动

启用备份加密之后,Vertica 将在创建备份时对其进行加密。如果在创建初始备份后启用加密,则仅对启用加密后添加的增量备份进行加密。为了确保备份完全加密,请在启用加密之后创建新备份。

要启用加密,请将以下设置添加到配置文件中:

  • cloud_storage_encrypt_transport:在传输期间将备份加密。如果使用 SSE-KMS 加密,则必须启用此参数。

  • cloud_storage_encrypt_at_rest:启用备份加密。如果启用加密但不提供 KMS 密钥,则 Vertica 将使用 SSE-S3 加密。

  • cloud_storage_sse_kms_key_id:如果使用 KMS 加密,请使用此参数提供密钥 ID。

有关这些设置的更多信息,请参阅 [CloudStorage]

以下示例显示了备份的 KMS 加密的典型配置。


[CloudStorage]
cloud_storage_encrypt_transport = True
cloud_storage_encrypt_at_rest = sse
cloud_storage_sse_kms_key_id = 6785f412-1234-4321-8888-6a774ba2aaaa