云存储的其他注意事项
如果您要备份到受支持的云存储位置,则需额外执行一些一次性配置。如果备份的群集正在云中的实例上运行,则还需额外执行一些步骤。对于 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
注意
如果备份失败,请确认 Vertica 群集有权访问您的云存储位置。为 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 仅支持服务器端加密。不支持客户端加密。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