前文介绍了混合云备份是如何跨云备份(多云备份)和恢复云主机中的目录与文件。假如用户对于数据保护的实时性有要求,比如一个公司内,大家通过一个共享目录来集中存储一些文档,希望这些文档能够在非常短的时间内(RTO)触发备份,或者分发广播到别的用户那里。在这样的场景下,混合云存储的云存储网关的复制模式就派上用场了。
基于云存储网关的跨云复制架构
云存储网关是可以部署在线上云主机和线下虚拟机的纯软件的网关形态。它对客户端主机提供NFS和CIFS文件协议支持,将写入网关的文件上传至阿里云对象存储(OSS)中。云存储网关支持缓存和复制两种模式。两种模式不同之处在于复制模式保证本地和云上都是全量的数据,而缓存模式只在本地保留热数据和冷数据的元数据。用户访问冷数据时,需要从云端拉取对应的数据。
在本章节中,通过一次备份和一次恢复操作来展示云存储网关是如何迅速地备份用户本地数据到阿里云OSS中和方便地反向同步恢复OSS中的数据到用户本地环境中。存储网关的部署和配置灵活性可以在数据恢复的时候,将阿里云OSS内的备份数据恢复到阿里云,第三方云,或者是客户的线下机房,只要恢复目标端的云存储网关和阿里云OSS的网络是连通的。
云存储网关跨云复制架构图
基于云存储网关的跨云复制实施
首先,我们要在客户的云环境中部署一台云主机以支持云存储网关。为了方便用户快速部署云存储网关,云存储网关提供了虚拟机镜像文件,可以直接生成云主机。先进入阿里云控制台的云存储网关页面,选择‘华东2-上海’区,点击右上角的‘创建网关集群’来创建一个网关集群。网关集群类似于一个标签或者组的概念,可以方便用户把多个网关聚合在一个页面管理和维护。
创建网关集群
创建网关集群之后,进入该集群页面,创建一个网关。注意这里的‘位置’选择‘本地数据中心’,‘类型’选择‘文件网关’。然后进入下一步下载KVM镜像。该镜像与云厂商T的云主机镜像兼容,可以被用来创建云厂商T的云主机。
创建网关和下载镜像
到最后一步,下载证书。下载完成之后,即完成了阿里云控制台创建网关的步骤。
下载证书完成创建
回到云厂商T的控制台,选择‘上海’区的,在‘镜像’-‘自定义镜像’下,点击‘导入镜像’。
进入镜像页面
第一次导入自定义镜像需要开启该云厂商对象存储的功能,依照步骤开启即可。然后将云存储网关的镜像文件上传至对象存储中。之后,复制该镜像文件的链接。
对象存储中的文件链接
回到导入镜像页面,将镜像文件链接复制到‘镜像文件URL’中,填写其他必选项目。点击‘开始导入’即可。
导入镜像
等待5-10分钟,该镜像文件即导入成功。如下图所示,可以在镜像列表中看到该镜像。
镜像导入成功
点击镜像列表右侧‘创建云主机’来创建一个云主机。接下来一步就是定制云主机的规格。云存储网关支持不同的配置,用户可以根据自身业务需求,来合理选择合适的配置。如果遇到不确定的问题,也可以咨询阿里云的云存储网关团队来寻求建议。在测试中,我们选取最低一档的配置来部署云存储网关。
云存储网关主机配置
购买云主机成功之后,等待几分钟后,系统初始化完成。这里需要注意一点是,云存储网关的web管理及NFS和CIFS协议需要开启一些额外的端口。所以,接下来需要进入该云主机的安全组中,开启以下端口的支持。
云存储网关开启端口
默认该云主机应该已经添加了一个合适的安全组策略。只需要在该策略中添加未开启的端口即可。
完成之后,即可在浏览器输入:https://<公网IP>:443,来打开云存储网关的Web管理界面。用户需要提供阿里云账号的AK,并设定网关的管理员用户名和密码。同时,用户需要上传之前创建网关时下载的证书。这个证书跟混合云备份客户端的证书作用相同。
云存储网关注册界面
完成注册之后,阿里云控制台的云存储网关页面就可以看到该网关由‘已初始化’变成‘已激活’的状态。在这种状态下,说明云存储网关已上线,阿里云控制台是可以监控云厂商T网络里的云存储网关的资源状态的。
云存储网关激活
同时,云存储网关的管理界面在注册完成之后,即可使用。
云存储网关管理界面
接下来用户只需简单的三步即可完成云存储网关的配置:云资源设置,缓存设置和NFS/CIFS挂载设置。
云资源管理是将阿里云OSS资源与网关链接。在此之前,用户需要在华东2-上海区创建好OSS bucket。然后,云存储网关就会自动拉取该区域所有可用的OSS bucket供用户选择。这里需要注意,‘区域’需要选取‘外网’,因为云厂商T的网络和阿里云的云存储网关是通过公网连接的。
创建云资源
缓存设置是将之前创建云主机时的数据盘格式化使用的过程。选择该磁盘,即完成了缓存设置。
缓存设置
最后一步,NFS/CIFS设置。因为我们在演示混合云备份时创建了一台Linux主机,所以,这里我们只设置NFS(CIFS设置类似)。需要给共享取名,然后选取之前创建的云资源和缓存路径及用户映射。只读和读写客户端列表,用户可以根据自己的IT环境来编辑。对于本次演示而言,之前创建的webserver主机与云存储网关处在同一内网环境中,所以,在读写客户端列表栏填入webserver主机的内网IP。模式选取‘同步模式’。在‘高级设置’里,对‘忽略删除’选‘是’来保证本地的删除操作不会删除云上OSS的文件。确认创建即可。
NFS设置
NFS设置-高级设置
至此,云存储网关的配置已经完成。接下来,就可以登陆之前创建的webserver云主机挂载云存储网关提供的NFS目录。用户可以通过showmount命令查看云存储网关上的挂载是否就位。
查看云存储网关NFS目录
这里需要注意一点,通过showmount显示的NFS目录,并不是挂载时用到的目录名。用户应该使用创建NFS时输入的‘共享名称’来挂载该目录。我们之前创建的共享名称为‘crosscloudnfs’。
客户端挂载NFS目录
通过df -h命令我们可以看出来,复制(同步)模式下,该目录的空间为40GB。原因是云存储网关的复制模式,本地缓存空间和云上OSS空间是等量的。所以,本地缓存空间的大小决定了云上OSS会有多少空间被使用。对于缓存模式而言,云上OSS空间是本地缓存空间的扩展,因此,在客户端挂载后,看到的大小为256TB。用户在选取不同模式和做业务规划的时候,需要考虑到这一点。
复制模式下的目录空间
这一步完成之后,用户的服务器,云存储网关和阿里云OSS三者已经连接起来了。接下来,通过两个拷贝操作来模拟多用户共享存储时云存储网关备份上云的情形:一个用户向cross_cloud_gw目录拷贝之前备份的db_file目录,另一个用户则拷贝server_log_new目录。
向云存储网关拷贝两个目录
拷贝还在进行中,用户可以在阿里云控制台查看OSS中的文件状态。两个目录和正在拷贝的文件基本实时地被上传到OSS中。之所以有的文件在OSS中显示的文件大小为0KB,是因为这些文件在云存储网关缓存盘上的写入还没有完成。在云存储网关确认写入完成之后,这些文件就会被同步上传至阿里云OSS中。云存储网关除了实现了OSS上传API,还实现了文件切片,校验,出错重传等机制保证高效与可靠的文件上传。
上传中的OSS文件状态
用户可以通过云存储网关的管理界面的监控页面查看资源使用情况。阿里云控制台上也可以监控CPU,内存,磁盘和网络等资源的使用情况。阿里云云存储网关实现了一套前端流量和后端流量关联的流控算法,来保障当网关缓存空间足够时,保证前端读写性能,而当网关缓存空间的占用处于高水位时,控制前端写入速度,保证网关的本地缓存空间不被撑满。
云存储网关资源监控
在拷贝进行中,也可以在webserver主机上,也就是挂载客户端上,查看NFS目录cross_cloud_gw的空间使用情况。
NFS目录空间占用
当所有缓存数据都同步上传到OSS之后,网关的缓存状态就会变成‘同步完成’。
同步完成
接下来,我们模拟灾难场景:当webserver云主机的目录内有文件被误删除或者是云厂商T的云主机出现长时间不可用的情况下,如何利于云存储网关恢复云上OSS文件到云主机目录或者新的云主机中。这里我们演示后一种情况:将OSS上文件反向同步至阿里云内部署的云存储网关上,供阿里云上的ECS访问。
在阿里云上创建云存储网关,与之前创建线下云存储网关的步骤类似,在此省略。我们直接跳到云存储网关的NFS设置。跟之前那次不同的一点是,‘反向同步’选‘是’用来反向同步云上OSS文件到网关本地缓存盘,从而提供给前端用户访问,达到灾难恢复的目的。
创建云存储网关NFS目录
确认创建新的NFS目录之后,用户就可以挂载它了。反向同步模式下,云存储网关NFS目录会自动同步OSS文件到本地缓存空间。所以,文件就这样轻松地恢复了,并且可以在任意一台挂载了该目录的主机上访问。当然,如果文件比较多,且都是大文件的时候,同步完成的时间取决于带宽情况。文件从OSS同步到存储网关缓存的时候,同样有校验算法保证文件一致性的。
云存储网关反向同步
假如用户想将OSS内的文件反向同步回云厂商T的云存储网关中,也就是文章开头的架构图的第7步,在云厂商T网络内部署好的云存储网关上,只需将NFS设置的‘反向同步’打开即可。数据就会自动同步到网关的缓存中,供前端主机访问。
小结
通过云存储网关同步复制模式的文件备份和反向同步的文件恢复,用户可以从操作上感受到云存储网关的易用性。做为纯软件形态的云存储网关部署灵活,且配置简单,跟用户现有的业务系统可以无缝对接。‘写入完成即开始备份’的复制模式非常适合集中式共享目录的备份场景。既可以将阿里云OSS内的备份文件恢复到任一云厂商的主机中,包括阿里云的ECS主机中,甚至客户自己的线下机房,完美解决用户跨云(多云)场景下的文件备份问题。云存储网关可以部署在哪里,数据就可以恢复到哪里。通过网关来分发恢复数据,效率极高!