在阿里云上使用OSS对进行远程备份
一、需求
客户对异地容灾有强烈诉求,需要定时对主机(ECS)上的磁盘和镜像进行备份
二、实现方案综述
该方案在阿里云上有多种实现方案,这里使用阿里云对象存储(OSS)、云监控(Cloud Monitor)和函数计算(Function Compute)来实现。
- OSS :用来存储进行,因为阿里云自身的镜像存储数量有限制,所以把进项导出到OSS进行备份;
- Cloud Monitor:用来做快照生成后的生产并导出镜像的触发器;
- Function Compute:作为总体控制器,和操作流程的处理器,通用调用产品的API来处理没一步的处理流程。
三、整体流程图
步骤说明
1. 自动生成快照
快照的自动生成有两种方式:
- 使用自动快照策略
自动快照策略每小时可以生成一个快照,基本可以满足快照要求。自动快照策略在控制台可以设置,这里不再赘述。 - 使用函数计算的定时器。
使用函数计算的定时器好处是时间周期和次数定义比较灵活,如果需要远程备份的数据和快照不一致的情况下,可以搭配使用。这里重点介绍基于函数计算自动生成快照。
2.快照生成子定义镜像
使用ECS的API :CreateImage来创建自定义镜像。
3.导出子定义镜像到本地OSS
使用ECS的API :ExportImage来导出进行到OSS。
4.OSS远程备份
设置OSS bucket的跨区域复制,当自定义镜像导出的时候可以自动备份到异地。
实现步骤
一、开通OSS并设置跨区域备份
- 开通本地的OSS bucket和远程备份OSS bucket,例如
- 本地Bucket在北京:image-backup-test
- 远程Bucket在石家庄:remote-image-backup-lib
- 设置image-backup-test跨区域复制选项
二、用函数计算实现定时生成快照和镜像,并导出到OSS中
一个Function Compute函数由两个部分组成:触发器和函数主体。 实现备份工作,需要编写两个函数
- 函数CreateSnatshop:定时生成快照;
- 函数CreateImageAndExport:在快照生成后,从快照生成镜像,并把镜像导出到本地OSS中。
函数CreateSnatshop
- 触发器选择定时出发器,如图所示,可以根据需要来设定备份规则
定时触发器的规则编写参考
https://help.aliyun.com/document_detail/68172.html?spm=5176.8663048.function-trigger-overview.1.49a43edcSnIpI9
- 函数代码如下所示
#-*- coding: utf-8 -*-
import logg