使用 Veeam Backup & Replication 备份数据并将其存档至 Amazon S3 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Veeam Backup & Replication 备份数据并将其存档至 Amazon S3

由珍娜·詹姆斯、安东尼·菲奥雷 (AWS) (AWS) 和威廉·奎格利创作

环境:生产

技术:存储和备份

AWS服务:亚马逊EC2;亚马逊 S3;亚马逊 S3 Glacier

Summary

此模式详细介绍了使用 Veeam 横向扩展备份存储库功能将 Veeam Backup & Replication 创建的备份发送至支持的 Amazon Simple Storage Service (Amazon S3) 对象存储类的过程。 

Veeam 支持多个 Amazon S3 存储类,以更好地满足您的特定需求。您可以根据备份或存档数据的数据访问、弹性和成本要求选择存储类型。例如,您可以将 30 天或更长时间内不打算访问的数据存储为 Amazon S3 不经常访问 (IA) 存储类型,从而降低成本。如果您计划将数据存档 90 天或更长时间,则可以使用 Amazon Simple Storage Service Glacier (Amazon S3) Glacier Flexible Retrieval 或 S3 Glacier Deep Archive (带 Veeam 存档层)。您还可以使用 S3 对象锁定功能,使 Amazon S3 中的备份保持不变。

此模式不包括如何在 AWS Storage Gateway 中使用磁带网关设置 Veeam Backup & Replication。有关该主题的信息,请参阅 Veeam 网站上的 Veeam 使用AWSVTL网关进行备份和复制-部署指南

警告:这种情况要求IAM用户具有编程访问权限和长期证书,这会带来安全风险。为帮助减轻这种风险,我们建议仅向这些用户提供执行任务所需的权限,并在不再需要这些用户时将其移除。必要时可以更新访问密钥。有关更多信息,请参阅《IAM用户指南》中的更新访问密钥

先决条件和限制

先决条件

  • Veeam Backup & Replication,包括 Veeam Availability Suite 或 Veeam Backup Essentials,已安装(您可以注册免费试用

  • 具有企业版或企业增强版功能的 Veeam Backup & Replication 许可证,其中包括 Veeam 通用许可 () VUL

  • 有权访问 Amazon S3 存储桶的活跃AWS身份和访问管理 (IAM) 用户

  • 有权访问亚马逊弹性计算云 (AmazonEC2) 和亚马逊虚拟私有云 (AmazonVPC)(如果使用存档层)的活跃IAM用户

  • 通过公共互联网连接或 Di AWS rect Connect 公共虚拟接口,从本地连接到具有可用带宽的AWS服务,用于备份和恢复流量 (VIF)

  • 打开以下网络端口和端点,以确保与对象存储库通信正常:

    • 亚马逊 S3 存储 — TCP — 端口 443:用于与亚马逊 S3 存储进行通信。

    • 亚马逊 S3 存储 — 云端节点 — *.amazonaws.com 适用于AWS地区和 AWS GovCloud (美国)地区,或*.amazonaws.com.rproxy.goskope.com.cn 用于中国区域:用于与亚马逊 S3 存储进行通信。有关连接终端节点的完整列表,请参阅AWS文档中的 Amazon S3 终端节点

    • Amazon S3 存储 TCP HTTP — — 端口 80:用于验证证书状态。请考虑证书验证终端节点(证书吊销列表 (CRL) URLs 和在线证书状态协议 () 服务器OCSP)可能会发生变化。实际地址列表请参见证书本身。

    • Amazon S3 存储 – 证书验证端点 – *.amazontrust.com:用于验证证书状态。请考虑证书验证端点(CRLURLs和OCSP服务器)可能会发生变化。实际地址列表请参见证书本身。

限制

  • 对于用作 Veeam 对象存储库的任何 S3 存储桶,Veeam 均不支持其 S3 生命周期策略。其中包括带有 Amazon S3 存储类转换和 S3 生命周期过期规则的策略。Veeam 必须 是管理这些对象的唯一实体。启用 S3 生命周期策略可能会导致异常结果,包括数据丢失。

产品版本

  • Veeam Backup & Replication v9.5 Update 4 或更高版本(仅备份或容量层)

  • Veeam Backup & Replication v10 或更高版本(仅备份或容量层和 S3 对象锁定)

  • Veeam Backup & Replication v11 或更高版本(备份或容量层、存档或存档层以及 S3 对象锁定)

  • Veeam Backup & Replication v12 或更高版本(性能层、备份或容量层、存档或存档层以及 S3 对象锁定)

  • S3 标准

  • S3 标准 - IA

  • S3 单区 - IA

  • S3 Glacier Flexible Retrieval(仅 v11 及更高版本)

  • S3 Glacier Deep Archive(仅 v11 及更高版本)

  • S3 Glacier Instant Retrieval (仅 v12 及更高版本)

架构

源技术堆栈

  • 从 Veeam 备份服务器或 Veeam 网关服务器连接至 Amazon S3 的本地 Veeam Backup & Replication 安装

目标技术堆栈

  • Amazon S3

  • Amazon VPC 和 AmazonEC2(如果使用存档层)

目标架构:SOBR

下图显示了横向扩展备份存储库 (SOBR) 架构。

SOBR用于将数据从 Veeam 备份到 Amazon S3 的架构

Veeam Backup and Replication 软件可保护数据免受逻辑错误(例如系统故障、应用程序错误或意外删除)的影响。在此图中,备份首先在本地运行,然后将辅助副本直接发送至 Amazon S3。备份代表数据的 point-in-time副本。

工作流程包括将三个主要组件(分层或复制备份至 Amazon S3 所需组件)和一个选件:

  • Veeam Backup & Replication (1) – 是负责协调、控制和管理备份基础设施、设置、任务、恢复任务和其他过程的备份服务器。

  • Veeam 网关服务器(未在图中显示)— 当 Veeam 备份服务器未与 Amazon S3 出站连接时需要使用的可选本地网关服务器。

  • 横向扩展备份存储库 (2) – 支持多层数据存储水平扩展的存储库系统。横向扩展备份存储库由一个或多个备份存储库组成,可快速访问数据,并可使用 Amazon S3 对象存储库扩展,以便用于长期存储(容量层)和存档(存档层)。Veeam 使用横向扩展备份存储库在本地(性能层)与 Amazon S3 对象存储(容量层和存档层)之间自动分层数据。

  • Amazon S3 (3) — 提供可扩展性、数据可用性、安全性和性能的AWS对象存储服务。

目标架构:DTO

下图显示了 direct-to-object (DTO) 架构。

DTO用于将数据从 Veeam 备份到 Amazon S3 的架构

在此图中,备份数据被直接发送至 Amazon S3,无需先存储于本地。辅助副本可以存储至 S3 Glacier。

自动化和扩缩

您可以使用存储库中提供的AWS CloudFormation 模板自动创建IAM资源和 S3 VeeamHub GitHub 存储桶。模板包括标准选项和不可变选项。

工具

工具和AWS服务

  • Veeam Backup & Replication 是用于保护、备份、复制和恢复虚拟和物理工作负载的 Veeam 解决方案。

  • AWS CloudFormation帮助您对资源进行建模和设置,快速一致地配置AWS资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个AWS账户和AWS地区管理和配置堆栈。

  • 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要使用 Amazon EC2 启动任意数量或数量的虚拟服务器,也可以进行横向扩展或扩展。

  • AWSIdent@@ ity and Access Management (IAM) 是一项用于安全控制AWS服务访问的 Web 服务。借IAM助,您可以集中管理用户、安全证书(例如访问密钥)以及控制用户和应用程序可以访问哪些AWS资源的权限。

  • Amazon Simple Storage Service (Amazon S3) 是一项对象存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。

  • Amazon S3 Glacier (S3 Glacier) 是一项安全、持久且成本较低的存储服务,适用于数据存档和长期备份。

  • Amazon Virtual Private Cloud(AmazonVPC)提供了AWS云中逻辑上隔离的部分,您可以在其中启动您定义的虚拟网络中的AWS资源。该虚拟网络与您在自己的数据中心中运行的传统网络非常相似,其优点是使用的可扩展基础架构。AWS

代码

使用VeeamHub GitHub 存储库中提供的 CloudFormation 模板自动为此模式创建IAM资源和 S3 存储桶。如果更喜欢手动创建资源,请按操作说明部分中的步骤操作。

最佳实践

  • 根据IAM最佳实践,我们强烈建议您定期轮换长期IAM用户证书,例如用于将 Veeam Backup & Replication 备份写入 Amazon S3 的IAM用户。有关更多信息,请参阅IAM文档中的安全最佳实践

操作说明

任务描述所需技能

创建IAM用户。

按照IAM文档中的说明创建IAM用户。此用户不应具有AWS控制台访问权限,您需要为此用户创建访问密钥。Veeam 使用此实体进行身份验证AWS以读取和写入您的 S3 存储桶。您必须授予最低权限(即,只授予执行任务所需权限),这样用户拥有的权限就不会超出所需。有关向 Veeam IAM 用户附加的IAM策略示例,请参阅 “其他信息” 部分。

注意或者,您可以使用VeeamHub GitHub 存储库中提供的 CloudFormation 模板为此模式创建IAM用户和 S3 存储桶。

AWS管理员

创建 S3 存储桶。

  1. 登录AWS管理控制台并打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/。 

  2. 如果您还没有现有 S3 存储桶可用作目标存储,请选择创建存储桶,然后指定存储桶名称、AWS区域和存储桶设置。

    • 建议为 S3 存储桶启用阻止公共访问选项,并设置访问和用户权限策略,以满足组织的要求。有关示例,请参阅 Amazon S3 文档

    • 建议启用 S3 对象锁定,即便您不打算立即使用。此设置仅能在创建 S3 存储桶时启用。

有关更多信息,请参阅 Amazon S3 文档中的创建存储桶

AWS管理员
任务描述所需技能

启动新对象存储库向导。

在 Veeam 中设置对象存储和横向扩展备份存储库前,必须添加要用于容量和存档层的 Amazon S3 和 Amazon S3 Glacier 存储库。在下一个操作说明中,将学习如何将此类存储库连接至横向扩展备份存储库。

  1. 在 Veeam 控制台上,打开备份基础设施视图。 

  2. 在库存窗格,选择备份存储库节点,然后选择添加存储库。 

  3. 添加备份存储库对话框中,选择对象存储Amazon S3

AWS管理员、应用程序所有者

为容量层添加 Amazon S3 存储。

  1. Amazon Cloud Storage Services 对话框中,选择 Amazon S3

  2. 在向导的命名步骤中,指定对象存储名称和简短描述,例如创建者和创建日期。 

  3. 在向导的账户步骤中,指定对象存储账户。 

    • 对于证书,请选择您在第一个长篇故事中创建的IAM用户来访问您的 Amazon S3 对象存储。 

    • 对于AWS区域,请选择 Amazon S3 存储桶所在的AWS区域。

  4. 在向导的存储桶步骤中,指定对象存储设置。

    • 对于数据中心区域,选择 Amazon S3 存储桶所在的AWS区域。

    • 对于存储桶,请选择第一个操作中创建的 S3 存储桶。

    • 对于文件夹,请创建或选择要将对象存储库映射到的目标云文件夹。 

    • 如果想启用不可变性,请选择使最近备份在 X 天内不可变,然后设置应锁定备份的时间段。请注意,由于从 Veeam API 调用 Amazon S3 的次数增加,启用不可变性会导致成本增加。

  5. 在向导的摘要步骤中,查看配置信息,然后选择完成

AWS管理员、应用程序所有者

为存档层添加 S3 Glacier 存储。

如果要创建存档层,请使用 “其他信息” 部分中详述的IAM权限。 

  1. 如前所述,启动新对象存储库向导。

  2. Amazon Cloud Storage Services 对话框中,选择 Amazon S3 Glacier

  3. 在向导的命名步骤中,指定对象存储名称和简短描述,例如创建者和创建日期。

  4. 在向导的账户步骤中,指定对象存储账户。

    • 对于证书,请选择您在第一个长篇故事中创建的IAM用户来访问您的 Amazon S3 Glacier 对象存储。 

    • 对于AWS区域,请选择 Amazon S3 存储桶所在的AWS区域。

  5. 在向导的存储桶步骤中,指定对象存储设置。

    • 对于数据中心区域,请选择AWS区域。

    • 对于存储桶,请选择用于存储备份数据的 S3 存储桶。这与容量层所用存储桶相同。

    • 对于文件夹,请创建或选择要将对象存储库映射到的目标云文件夹。 

    • 如果想启用不可变性,请选择使最近备份在整个保留策略期间不可变。请注意,由于从 Veeam API 调用 Amazon S3 的次数增加,启用不可变性会导致成本增加。

    • 如果想使用 S3 Glacier Deep Archive 作为存档存储类,请选择使用 Deep Archive 存储类

  6. 在向导的代理设备步骤中,配置用于将数据从 Amazon S3 传输至 Amazon S3 Glacier 的辅助实例。您可以使用默认设置或手动配置每个设置。若要手动配置设置:

    • 选择 Customize (自定义)

    • 对于EC2实例类型,请根据将备份文件传输到横向扩展备份存储库的存档层的速度和成本要求,选择代理设备的实例类型。

    • 对于 Amazon VPC,请VPC为目标实例选择。

    • 对于子网,请选择代理设备的子网。

    • 对于安全组,请选择与选项关联的 VPC 安全组。

    • 对于重定向器端口,请指定用于在代理设备和备份基础架构组件之间路由请求的TCP端口。

    • 选择 确认 确认设置。

  7. 在向导的摘要步骤中,查看配置信息,然后选择完成

AWS管理员、应用程序所有者
任务描述所需技能

启动新横向扩展备份存储库向导。

  1. 在 Veeam 控制台上,打开备份基础设施视图。 

  2. 在库存窗格,选择横向扩展存储库,然后选择添加横向扩展存储库

应用程序所有者、AWS系统管理员

添加横向扩展备份存储库,并配置容量和存档层。

  1. 在向导的命名步骤中,指定扩展备份存储库的名称和简要描述。 

  2. 如果需要,则添加性能范围。您也可以使用现有的 Veeam 本地备份存储库作为性能等级。 从 Veeam 版本 12 开始,您可以绕过本地性能层添加 S3 存储桶作为 direct-to-object (DTO) 备份的性能范围。

  3. 选择高级,然后为横向扩展备份存储库指定其他选项。

    • 选择使用每台计算机的备份文件,以为每台计算机创建单独的备份文件,并将这些文件同时以多个流的形式写入备份存储库。建议使用此选项改善存储和计算资源利用率。

    • 选择在所需数据区处于脱机状态时执行完全备份以创建完整备份文件,以防包含增量备份还原点的数据区脱机。此选项需要通过横向扩展备份存储库中的可用空间托管完整备份文件。

  4. 在向导的策略步骤中,为存储库指定备份放置策略。 

    • 选择数据局部性,以将属于同一链的完整备份文件和增量备份文件存储至相同的性能范围。您可以将属于新备份链的文件按相同的性能范围或不同的性能范围存储(除非您以重复存储设备作为性能范围)。

    • 选择性能以将完整备份文件和增量备份文件按不同性能范围存储。此选项需要快速可靠的网络连接。如果选择性能,则可在每个性能范围内限制要存储的备份文件类型。例如,您可以在一个数据区存储完全备份文件,并在其他数据区上存储增量备份文件。若要选择文件类型:

      • 选择 Customize (自定义)

      • 备份放置设置对话框中,选择性能范围,然后选择编辑

      • 选择要在此范围内存储的备份文件类型。

  5. 在向导的容量层步骤中,配置要连接至横向扩展备份存储库的长期存储层。 

    • 选择使用对象存储扩展横向扩展备份存储库容量。对于对象存储库,请为您在上一操作中添加的容量层选择 Amazon S3 Glacier 存储。

    • 选择窗口 以选择用于移动或复制数据的时间窗口。

    • 选择创建备份后立即将其复制到对象存储,以将所有或仅最近创建的备份文件复制到容量范围。 

    • 选择在备份过期时将其移至对象存储,以将非活动备份链转移至容量范围。在移动 X 天以上的备份文件字段中,指定卸载备份文件的持续时间。(如果要在非活动备份链创建之日即卸载,请指定 0 天。) 如果横向扩展备份存储库已达到指定阈值,您还可以选择覆盖以更快地移动备份文件。

    • 选择加密上传至对象存储的数据,并指定密码来加密所有数据及其元数据,以进行分载。选择添加管理密码,以指定新密码。

  6. 在向导的存档层步骤中,配置要连接至横向扩展备份存储库的长期存档层。(如果您跳过添加 Amazon S3 Glacier 存储,则不会出现此步骤。) 

    • 选择 “将GFS完整备份存档到对象存储”。对于对象存储库,请选择您在上一操作中添加的 Amazon S3 Glacier 存储。

    • 对于超过 N 天的存档GFS备份,请选择将文件移动到存档区的时间窗口。(如果要在非活动备份链创建之日即存档,则指定 0 天。)

  7. 在向导的摘要步骤中,查看横向扩展备份储存库的配置信息,然后选择完成

应用程序所有者、AWS系统管理员

相关资源

其他信息

以下各节提供了在此模式的 Epics 部分创建IAM用户时可以使用的示例IAM策略。

IAM容量等级策略

请注意:将示例策略中的 S3 存储桶的名称从 <yourbucketname> 更改为欲用于 Veeam 容量层备份的 S3 存储桶的名称。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:ListBucketVersions", "s3:ListBucket", "s3:PutObjectLegalHold", "s3:GetBucketVersioning", "s3:GetObjectLegalHold", "s3:GetBucketObjectLockConfiguration", "s3:PutObject*", "s3:GetObject*", "s3:GetEncryptionConfiguration", "s3:PutObjectRetention", "s3:PutBucketObjectLockConfiguration", "s3:DeleteObject*", "s3:DeleteObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::/*", "arn:aws:s3:::" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket" ], "Resource": "*" } ] }

IAM存档层策略

请注意:将示例策略中的 S3 存储桶的名称从 <yourbucketname> 更改为要用于 Veeam 存档层备份的 S3 存储桶的名称。

要使用现有的VPC、子网和安全组,请执行以下操作:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:RestoreObject", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketObjectLockConfiguration", "s3:PutObjectRetention", "s3:GetObjectVersion", "s3:PutObjectLegalHold", "s3:GetObjectRetention", "s3:DeleteObjectVersion", "s3:ListBucketVersions", "ec2:DescribeInstances", "ec2:CreateKeyPair", "ec2:DescribeKeyPairs", "ec2:RunInstances", "ec2:DeleteKeyPair", "ec2:DescribeVpcAttribute", "ec2:CreateTags", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeImages", "ec2:DescribeVpcs" ], "Resource": "*" } ] }

要创建新组VPC、子网组和安全组,请执行以下操作:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:RestoreObject", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketObjectLockConfiguration", "s3:PutObjectRetention", "s3:GetObjectVersion", "s3:PutObjectLegalHold", "s3:GetObjectRetention", "s3:DeleteObjectVersion", "s3:ListBucketVersions", "ec2:DescribeInstances", "ec2:CreateKeyPair", "ec2:DescribeKeyPairs", "ec2:RunInstances", "ec2:DeleteKeyPair", "ec2:DescribeVpcAttribute", "ec2:CreateTags", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeImages", "ec2:DescribeVpcs", "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:DescribeRouteTables", "ec2:DescribeInstanceTypes" ], "Resource": "*" } ] }