共计 3037 个字符,预计需要花费 8 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关如何进行 OpenStack 云环境数据备份方案的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
为什么要引入 Freezer
对于很多用户来说,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 是一套开源的备份软件,它能帮助你自动的进行数据备份和还原动作。
目前 Freezer 已正式引入 OpenStack,从事数据备份,是 OpenStack 社区中一个官方项目,旨在为 OpenStack 提供数据备份环境的解决方案。Freezer 从 OpenStack Liberty 版本开始引入支持,以前的版本支持需要做微量的修改。
Freezer 可以做什么?
上面我们已经解释了 Freezer 已经是 OpenStack 的一套数据备份的解决方案,那 Freezer 具体可以做哪些工作呢?
目前 Freezer 有四种 Job 可供支持
BackupJob 数据备份
主要用于数据的备份任务。目前 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)
RestoreJob 数据还原
数据的还原任务
AdminJob 备份数据管理
对备份数据的管理,主要用户整理备份链以及旧备份的删除任务
ExecJob 命令以及脚本的执行
执行命令以及脚本
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 主要有四个组件,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 中。
Freezer 创建 Job 流程图
Freezer 创建备份实例举例说明
任务需求:
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: 表示第一次开始执行的时间
Freezer 的不足之处
1. Freezer 社区开发人员目前过少
2. 数据备份尚未对 Ceph 支持
3. 目前还无法对 OpenStack 进行整体的备份
4. 对计算节点的服务进行监控,保护业务的不间断性
上述就是丸趣 TV 小编为大家分享的如何进行 OpenStack 云环境数据备份方案的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。