如何进行OpenStack云环境数据备份方案的分析

76次阅读
没有评论

共计 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 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3037字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)