- 前言
面对数据可靠性和合规性要求的不断增长,只备份一份数据已经不能满足用户对于数据可靠性的需求。传统备份厂商的异地备份方案是将用户生产环境里的数据备份至不同机柜或者异地机房来保护数据,规避单机房存在的机柜或机房断电断网等问题。公共云的出现改变了整个备份的架构和方案。依托公共云存储的高可靠性和高可用性,用户可以选择将数据直接备份至公共云或者将第二级备份放在公共云上。
用户在面对公共云和传统备份架构时,该如何选择呢?是继续保留已有的备份架构和方案,还是使用传统的备份厂商的软件上云,还是直接使用云厂商的备份归档方案上云,或者是传统备份软件与云厂商的产品结合的方案?本文结合Veeam备份软件的使用,一方面来阐述传统备份软件是如何与阿里云云存储网关产品结合,将用户数据备份上云的,另一方面也试着给出一些想法和建议,用于指导用户结合自身的情况做选择。
- 基于云存储网关两种部署方式的Veeam备份归档上云方案
以下是基于云存储网关的Veeam备份归档上云方案架构图。取决于用户机房的实际情况,如果线下备份数据量不大,且线下已经部署了虚拟化平台,如VMware,Hyper-V,KVM虚拟化服务器,可以通过云存储网关镜像部署一个云存储网关实例。如果备份数据量比较大,结合云上服务的弹性,可以直接开通公共云云存储网关的服务来实现。
基于公共云上云存储网关的Veeam备份上云架构图
基于线下部署云存储网关的Veeam备份上云架构图
无论哪种模式,备份流程分三部分:Veeam将备份数据备份至本地存储空间;再将历史备份数据分层存储到云存储网关,也可以将本地备份库的数据复制一份到云存储网关上;存储网关再将数据同步至阿里云OSS中。在云上,用户可以设置生命周期(life cycle)策略,来将历史归档数据分层到归档OSS中。当数据需要恢复时,近期数据直接从Veeam本地备份库恢复。如果需要恢复的数据存在云上OSS上,则通过云存储网关的反向同步将归档数据返回给Veeam服务器用于数据恢复。当然,如果本地备份库暂时无法访问,用户也可以直接从云端直接拉回数据来做恢复。对于备份软件的恢复流程而言,用户是可以选择从本地备份库还是在云端备份库来恢复数据的。
后文,会详细描述各部分的部署配置,并完成备份数据上云和模拟数据恢复的过程。
- 云存储网关的线下部署
首先,用户需要登陆阿里云控制台,开通云存储网关服务(https://sgwnew.console.aliyun.com)。需要用户注意一点:用户业务所在的区域需要跟阿里云的服务区尽可能的靠近。比如,在本文中,我们选择的可用区为‘华东1(杭州)’。
在创建完网关集群后,用户就可以在网关集群内点击‘创建’去创建云存储网关了。
创建云存储网关页面
在给网关命名之后,因为我们需要部署文件网关在本地数据中心,所以选择‘本地数据中心’-‘云存储网关’-‘文件网关’,再点击下一步。
创建云存储网关步骤一:选择类型
之后,用户就可以看见针对不同虚拟化平台的线下网关镜像。用户可以根据自己的虚拟化平台类型,来选择合适的镜像来下载并部署。在创建VMware虚机前,需要注意版本信息。云存储网关线下数据中心版,仅支持在6.0及以上版本的vSphere上部署。另外一点需要特别注意的是,部署网关虚机需要在网页版的vCenter vSphere Web Client上进行操作。
创建云存储网关步骤二:下载镜像
具体如何在vSphere Web Client部署云存储网关,这里不再赘述。详细请参见在线文档:https://help.aliyun.com/knowledge_detail/54123.html。在部署完成云存储网关的虚机之后,通过‘root/Alibaba#sgw#1030’账号和密码登录,就可以进入网关的控制台。
网关控制台
选择语言之后,进入网络配置界面。
网关网络配置
输入静态IP地址,子网掩码和网关。
配置静态IP地址
配置完网关的IP地址之后,配置网关的DNS信息。
配置DNS
在配置IP地址和DNS之后,需要进行网络连通性测试,以确认云存储网关和阿里云之间的网络连通性是满足需求的。
网路连通性测试
在连通性测试通过后,会返回如下的测试结果。
网络连通性测试通过
下一步,就是配置存储网关系统的时间。
配置系统时间
选择NTP server
使用阿里云的NTP服务区:“ntp.aliyun.com”。
配置aliyun NTP server
查看网关系统信息
在配置完网关虚拟机的IP地址,DNS和NTP服务器之后,需要回到阿里云控制台。点击“下一步”,控制台会弹出信息,让用户确认网关的IP等信息的配置都完成了。
确认IP设置
进行网关的激活。在这个激活的页面,用户需要提供之前配置的网关IP,并设定网关的用户名和密码,用于之后的网关配置和维护。如页面显示的那样,当前浏览器必须能连接到输入的网关IP,网关IP可以是数据中心的内网IP,该IP地址可以无需公网访问。激活流程将会安全的把网关和阿里云账号进行绑定。
网关激活
点击“完成”之后,会弹出手机验证的菜单。输入完手机验证码之后,控制台创建网关的工作即完成激活。网关在控制台的状态为“已激活”。这里需要注意一点:激活线下网关需要该用户开通以下2个权限“AliyunHCSSGWFullAccess”和“AliyunOSSFullAccess”。
网关创建成功,待激活
激活成功之后,用户就可以通过https://地址>这个URL去访问存储网关的线下控制台了。
云存储网关主界面
进入了网关的主界面,剩余的配置只需简单的3步:缓存设置,云资源设置和NFS/CIFS目录设置。与公共云上的云存储网关缓存配置不一样的是线下云存储网关的缓存盘不是来自于ECS的云盘,而是需要用户从ESXi服务器上划分虚拟磁盘。如下图中,给存储网关的虚机添加了一块512GB的虚拟磁盘。
vCenter中给虚机添加虚拟磁盘
之后,用户即可返回存储网关的控制台,在“缓存设置”中,点击“创建”就能看到上一步创建的512GB的虚拟磁盘了。如果没有显示任何磁盘,可以点击“取消”,点击“创建”右边的“刷新”按钮。选择该磁盘,点击“确认”完成缓存的设置。
添加缓存盘
接下来便是绑定云资源,即将公共云OSS bucket与线下云存储网关绑定。因为线下机房已经有专线,因此我们选择的是“华东1(杭州)内网”。之后,选择预先创建好的bucket “veeam-csg-test”。最后,选择“使用SSL”来保证备份数据从存储网关到公共云OSS的传输过程中都是加密的。
云资源设置
进行最后一步创建NFS/SMB目录,因为Veeam支持NFS目录和SMB目录作为备份库,我们这里选择NFS目录作为备份库。需要注意的是在设置云存储网关的模式时需要选择缓存模式;忽略删除选是,因为是备份场景,不希望通过NFS目录的删除去触发云端备份文件的删除;NFSv4优化选是,通过v4挂载来提升NFS性能。其他的保持默认即可。
NFS目录配置
创建完成后,即可看到目录的挂载点,在图中是‘172.16.0.57:/veeamcsgtest’。需要记录该地址,因为在后面的Veeam备份库的客户端会用到该挂载点地址。
目录挂载点
- Veeam配置及数据备份
接下来,我们到Veeam这边的配置。本次集成方案验证,选择的是Veeam Backup and Replication Enterprise 10。安装和配置的过程这里省略,可以参考Veeam的手册。
Veeam版本
在Backup Infrastructure里,可以看到已经有了一个默认的备份库(Default Backup Repository)。可以点击Add Repository来添加网关目录。
Veeam Backup Infrastructure
选择Network attached storage来添加网关的NFS目录作为备份库。
Add Backup Repository
选择NFS share,即由云存储网关提供。
Network Attached Storage
输入新的备份库的名称。
新备份库名称
输入之前复制的NFS挂载点路径。Veeam会去连接和挂载该目录。
新备份库共享目录
连接完成后,就可以看到云存储网关对应的目录了。可以看到因为设置为缓存模式,容量显示为256TB。256TB只是网关呈现给主机端的一个容量参数,实际上,依托于后端公共云OSS存储,是可以通过云存储网关写入无限的数据。在下面的流量控制(Load Control)里,可以看到默认Veeam是设置了最大并发任务为4个,还可以对读写速度做限流。这里我们保持默认配置。
在高级选项(Advanced)中,我们保持默认,不选择任何选项。
新备份库地址及配置
在挂载服务器(Mount Server)页面,保持默认配置即可,即该Veeam Server作为NFS目录的挂载服务器。
新备份库挂载服务器
应用以上备份库的设置。
应用新备份库配置
完成配置后,即可在备份库列表中看到新添加的CSG Repo备份库。
备份库列表
完成了备份库的添加,接下来,我们将配置一台Windows服务器和一台Linux服务器作为被Veeam备份保护的服务器。它们分别有一块1T的数据盘和500G的数据盘需要做文件备份。
到Inventory页面,选择文件共享(File Shares)之后,选择添加一个文件共享(Add File Share)。在Veeam里,NFS目录,SMB目录,或者是Windows还是Linux服务器,都被归类为文件共享。
Veeam Inventory
在New File Server页面,增加一个台新的Windows服务器。在输入用户名密码以供Veeam去连接该Windows服务器之后,即完成了添加任务。
增加被保护的Windows服务器
点击下一步,以完成添加被保护服务器的任务。
应用添加服务器的配置
在新的文件共享界面就可以看到刚才被添加的Windows服务器了。点击下一步。
新增文件共享
到处理页面,默认的缓存备份库是Veeam服务器本地的备份库。然后再备份IO流控配置,保持默认即可。
文件共享备份处理
添加完成之后,就可以在Veeam-File Servers列表里看到新添加的Windows服务器。以相同的方式,添加Linux服务器即可。
文件服务器列表
到Veeam界面的文件里,就能看到刚才添加的2台服务器的本地路径。Windows服务器的D盘Archive目录和Linux服务器的archive目录就是这次需要通过Veeam做备份保护的。
文件列表
接下来,回到主页,给文件共享创建备份任务。
给文件共享创建备份任务
给新的备份任务命名。
备份任务命名
将之前加入的Windows和Linux服务器需要备份的目录添加到备份列表中。
添加备份目录
在备份存储的页面,选择默认的本地备份库为该备份任务的备份库。关于各个字段的解释,可以参见Veeam官方文档的解释。为了测试方便,我们将设置在本地备份库保留所有文件最新的副本的天数设置为2天;将更长时间的直至3年的版本存储在存储网关上,即通过存储网关上传到公共云OSS上。
备份存储配置
Veeam关于备份存储的解释
在高级选项中,有关于访问权限(ACL),压缩,备份文件一致性健康检查,邮件通知及备份前置和后置脚本的支持。如果有需要可以做针对性的配置,可以按照需求来做配置。这里我对文件校验和邮件通知做了设置,以便保证备份数据一致性和及时收到备份任务运行情况的通知。
备份存储的高级选项
在Secondary Target不做配置,到备份任务排程页面,定义了周期性的备份任务:每天晚上10点备份;备份失败会重试3次,每次重试会间隔10分钟。下面的备份窗口(Backup Window)的意思是可以配置一个备份窗口,当备份任务在窗口时间内没有完成,该任务就会被自动中止,以免影响源端存储在生产期间的正常性能。
备份任务周期排程
勾选‘Run the job when I click Finish’,在完成任务配置后,触发第一次备份任务。
- 完成备份任务配置
取决于第一次备份的数据量大小,任务会处在运行状态。如果备份数据不多,很快就会在过去24小时的备份成功任务列表里看到刚才触发的这次备份。
备份成功任务列表
到Veeam备份服务器D盘的Backup目录下,可以看到2台服务器各自目录的备份的内容。
备份库内容
在第二天晚上10点,备份再次启动并执行成功。可以看到,备份扫描到了474个新增目录和56022个新增文件,总大小为22.8GB。整个备份花费了3分13秒,备份速度为142MB/s。
备份详情
在经过几天的备份,同时做了一些源端文件的删除修改之后,可以看到在Windows服务器和Linux服务器上的目录情况:
- Windows服务器从4月5日开始备份,每天增加1个新的目录,直到4月11日;同时,5日和6日的目录被删除,个别目录内的文件也有被修改或者删除;
- Linux服务器从4月4日开始备份,每天增加1个新的目录,直到4月10日;同时,5日的目录被删除,个别目录内同样有文件被修改或者删除;
- Windows服务器备份目录
- Linux服务器备份目录
再来看下,4月11日晚10点备份任务执行的情况。
备份任务执行详情
当该任务被执行完,可以看到云存储网关备份库里已经被使用了1.3GB的空间。这也就意味着有超过2天的文件变动被备份到了云端保存。这样便实现了,历史备份数据上云的过程。
备份库状态
如文章开头提到的那样,备份软件支持二级存储的功能,将备份复制一份到二级存储中。在Veeam的文件备份任务中,可以将云存储网关备份库配置为第二级备份目的。将备份在本地的数据复制另外一份到云存储网关。这样就可以形成本地加云端的两级全量备份体系。
二级备份存储
在每次备份完成后,会有另外一个备份复制的任务,将备份库内的数据再复制一份到云存储网关上。通过备份复制任务详情,可以看到数据复制到云存储网关的性能基本稳定在139MB/s左右。
备份服务复制任务详情
备份复制完成后,可以看到CSG的使用容量增长很快。
备份库详情
在对象存储的bucket里,也看到复制拷贝的被保护的数据。
OSS bucket文件管理列表
**- Veeam数据恢复
**
在数据恢复时,Veeam提供了三个选项:恢复整个文件共享将最新版本的所有文件恢复到指定路径;回滚所有文件到之前的某个时间点;针对文件和目录的细粒度文件恢复。
Veeam文件恢复
我们选择第二个选项恢复回滚所有文件到某个时间点来模拟病毒感染的场景。可以看到Veeam可以从本地备份库和云端的复制备份库来恢复数据。
回滚文件到某个时间点
我们选择从云端复制的备份库来恢复所有数据到4月11日晚11点23分的状态。以Windows服务器为例,可以看到恢复的目录和时间点情况。在此之前,我删除了Windows服务器D盘内的个别目录和文件。
恢复时间点
在恢复过程中,Veeam会在比对完文件后,计算出需要恢复的文件和目录列表,再进行恢复。
恢复过程
恢复完成后,可以知道整个恢复的数据量和耗时,恢复的性能在40MB/s左右。对比之前写入到存储网关的性能可以看的出来,备份写入的性能可以到139MB/s。差别主要在于,备份写入只要完成对于网关的写入即可,网关上传到云端的时间没有计算在内。而恢复的过程,部分数据从云端备份库先恢复到云存储网关的缓存,再恢复到被保护的Windows服务器上。所以,多了从对象存储到云存储网关的部分。另外,Veeam在备份写入的时候可以设置并发数目,在恢复读取的时候,并发数没有自定义的选项,这也可能是一个原因。但主要还是前面提到的从云端读取到本地是需要时间的。
恢复完成
- 总结
通过上面的备份及恢复流程可以看出,Veeam可以将云存储网关创建为备份库,灵活地配置成本地备份库的延展备份库,也可以配置成本地备份库的第二级的复制备份库,从而将最近几天的版本存储在本地,将更长时间的历史数据备份在云端,或者直接复制本地备份到云端形成两份备份数据。这样的备份策略能充分利用本地备份库的性能和云端备份库的弹性和无限空间,增加了数据保护的力度,却降低了备份的整体TCO。
再回到文章开始时提到的问题,Veeam已经支持将公共云存储创建为云端备份库(暂不支持阿里云),可以直接将数据备份到云端,为什么还要通过云储存网关作为桥梁来将备份数据写上云呢?这有两方面原因:
- 备份软件一般是需要购买或升级到新版才能支持备份上云的功能,或者部分软件需要额外的付费许可,升级版本或者购买单独许可的费用远比云存储网关的费用高。
- 不少备份软件还不支持阿里云的公共云存储或者支持不完善,而云存储网关是云原生的服务,可以与阿里云各产品保持最好的兼容性和对接性能。例如,云存储网关可以第一时间支持阿里云对象存储的归档存储功能。
除了兼容性,不同于备份软件的agent模式或者类似的网关模式,云原生最大的特点是对于资源的弹性伸缩和编排。通过云存储网关的控制台用户可以很方便的创建多个共享目录,或者多个存储网关实例,来弹性扩容,支持更多的备份库接入。
这样对用户来说,与公共云结合的新备份模式可以选择兼顾传统备份厂商和云服务商的优势,让专业备份软件做专业的备份,将上云的工作交给云原生的服务来完成。