这期内容当中小编将会给大家带来有关如何进行OpenStack云环境数据备份方案的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
对于很多用户来说,OpenStack 环境中的数据备份一直存在着众多痛点,影响了OpenStack备份,具体包括如下几个方面:
1. Nova Cinder 备份方式存在不统一性
OpenStack 数据备份过程中,我们的主要关注点在Nova 和Cinder中。
Nova备份方式,一贯做法是将该虚拟机进行快照处理。
Cinder的Volume备份目前主要有两种方式
1) 对Volume制作快照,形成Volume快照链备份数据
2) 对Volume使用Cinder-backup 的方式进行备份,针对不同的后端使用不同的备份Driver
如果我们在OpenStack的使用过程中,既要备份云主机又要备份云硬盘就需要在Nova 和Cinder上分别进行备份,无法使其由一种中间的方式来管理所有的备份
2. 备份数据不方便统一的管理
备份的数据存储比较独立,Nova Instance一般存放于Glance中,而Cinder Volume 一般存放备份数据,由不同的Driver存于不同的存储中
3. 无法进行有效的周期性备份
目前在OpenStack的云环境数据备份中,还无法对备份动作进行有效的周期性的自动化备份
4. 没有好的备份链管理
没有好的备份链管理,无法对备份数据进行整理
5. 对旧备份的删除不智能
对旧备份的删除能力,云硬盘的备份一般由手工判断等方式,进行清理,即不方便也不智能
综上所述,OpenStack环境数据备份中急需一套好的备份方案, 而Freezer在解决上述问题中也有比较好的表现,所以我们引入了Freezer
Freezer是一套开源的备份软件,它能帮助你自动的进行数据备份和还原动作。
目前Freezer已正式引入OpenStack,从事数据备份,是OpenStack社区中一个官方项目,旨在为OpenStack提供数据备份环境的解决方案。Freezer从OpenStack Liberty 版本开始引入支持,以前的版本支持需要做微量的修改。
上面我们已经解释了Freezer已经是OpenStack的一套数据备份的解决方案,那Freezer具体可以做哪些工作呢?
目前Freezer有四种Job可供支持
主要用于数据的备份任务。目前Freezer支持的数据备份有下面这些:
l FS:基于文件的数据备份
l Mysql: 对Mysql数据库进行有效的备份
l MongoDB: 对MongoDB数据库进行有效的备份
l SQL Server: 对Microsoft sql server数据库进行有效的备份
l OpenStack Nova instance(nova): 对OpenStack 云主机进行备份
l OpenStack Cinder volume(Cinder or Cindernative): 对OpenStack 云硬盘进行备份
说明: 目前Freezer 对云硬盘的备份主要有两种方式
1) Freezer自主的一套对云硬盘的备份机制(Cinder)
2) Freezer 编排Cinder Backup 的方式进行备份(Cindernative)
数据的还原任务
对备份数据的管理,主要用户整理备份链以及旧备份的删除任务
执行命令以及脚本
Freezer的特性介绍
对于Freezer可以做哪些,我们已经有了大概的认识,那么Freezer还有哪些额外的特性呢。
1. 多平台支持性
目前Freezer支持平台包括 Linux Based OS、 Windows、 Mac-OS、BSD Based OS 等多种平台
2. 备份数据的多存储支持
目前Freezer 备份数据可以支持的存储包括 对象存储Swift,本地挂载存储Local以及备份数据到远程的SSH server
3. 备份数据的一致性校验
Freezer对每次备份都会做数据一致性的校验
4. 备份数据的压缩以及加密
默认的压缩方式为zip,支持的压缩方式有 bzip、xz等
加密方式采用openssl的 AES-256-CFB方式
5. 备份数据可支持增量全量
备份数据可以备份数据的全量以及增量
6. 备份数据的上传带宽的限速
对备份的数据在上传到存储中时,为了不影响业务,还可以限制上传的带宽
7. 对备份链的整理
对备份的整理,方便管理员对备份数据进行有效的整理,删除旧备份,整理全量备份等。
对Freezer的能力已经有了大概的认识,那么Freezer的内部到底是如何进行工作的,下面主要说明Freezer的构成。
Freezer主要有四个组件, Freezer-Agent、Freezer-Scheduler、Freezer-Web-Ui、 Freezer-Api。
l Freezer-Agent:
主要用于真正执行备份、还原等动作的组件。
l Freezer-Scheduler:
与Freezer-api进行交互以及编排Freezer-agent定期执行特定任务的组件。
l Freezer-Api:
提供Rest Api 服务,与数据库进行交互,存取Job的一些信息。
l Freezer-Web-Ui:
在Horizon中进行任务的编排,与Freezer-api进行交互发送Job的一些信息等。
Freezer的总体架构图
1) Freezer-web-ui 编排Job信息通过apiclient发送给Freezer-api。
2) Freezer-api 生成action 生成任务。
3) Freezer-scheduler 通过三种不同的周期任务方式调用Freezer-agent 执行任务。
4) Freezer-agent 执行任务将数据存储在备份的Storage中。
任务需求:
1. 备份OpenStack 云环境中一个正在使用的云硬盘。
2. 进行周期的进行全量备份。
3. 每次备份完成后保留最后的三次全量备份,并删除以前的旧备份。
使用freezer-scheduler 进行备份
编辑备份所需要的任务json文件
创建任务
freezer-scheduler job-create –file backup-cinder.json
说明:
freezer-action:
action: backup 表示备份job
cindernative-vol-id: 表示使用的cinder volume的uuid
action: admin 表示使用admin job
fullbackup-rotation: 3 表示保留三次备份
job-schedule:
schedule_interval: 1 weeks 表示每隔一周执行该job 一次
schedule_start_date: 表示第一次开始执行的时间
1. Freezer 社区开发人员目前过少
2. 数据备份尚未对Ceph支持
3. 目前还无法对OpenStack进行整体的备份
4. 对计算节点的服务进行监控,保护业务的不间断性
上述就是小编为大家分享的如何进行OpenStack云环境数据备份方案的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。