文档章节

OpenStack云环境数据备份方案解析

九州云99Cloud
 九州云99Cloud
发布于 2016/08/17 16:39
字数 1780
阅读 230
收藏 0

8月13日,OSC源创会分享第51期在杭州举行,九州云99Cloud工程师杨亚鹏在会上向500多位参会软件工程师、研发者分享了OpenStack社区中一个官方项目——Freezer。以下为分享内容介绍

为什么要引入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. 对计算节点的服务进行监控,保护业务的不间断性

 

Freezer 未来的发展趋势

1.    OpenStack 租户级别备份

https://blueprints.launchpad.net/freezer/+spec/tenant-backup

2.    Ceph的支持

https://blueprints.launchpad.net/freezer/+spec/ceph-support

3.    Freezer-DR OpenStack ComputeNode HA

https://github.com/openstack/freezer-dr.git

4.    Python-freezerclient client 从freezer中独立

https://github.com/openstack/python-freezerclient.git

 

Freezer的更多知识

1.    Repository

https://github.com/openstack/freezer

https://github.com/openstack/freezer-api

https://github.com/openstack/freezer-web-ui

2.    Wiki

https://wiki.openstack.org/wiki/Freezer

3.    Lanchpad

https://launchpad.net/freezer

4.    IRC

#openstack-freezer

© 著作权归作者所有

九州云99Cloud
粉丝 1
博文 3
码字总数 4371
作品 0
东城
私信 提问
OpenStack centos版安装(一)

OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。 OpenStack是一个云平台管理的项目,这个项目由几个主要的组件组合起来...

蓝狐乐队
2014/04/18
227
0
华为公有云 Openstack - WorkSpace 插件项目

温馨提醒: 如您想承接该项目又担心无法提供增值税发票,可使用平台提供的代开发票服务,具体请联系平台客服咨询。 【业务需求】 一、 项目背景 1、当前OTC的CLI是各服务单独提供的CLI,目前客...

华为众包
2017/01/10
42
4
华为公有云 Openstack - Volume Backup Service 插件项目

温馨提醒: 如您想承接该项目又担心无法提供增值税发票,可使用平台提供的代开发票服务,具体请联系平台客服咨询。 【业务需求】 一、 项目背景 1、当前OTC的CLI是各服务单独提供的CLI,目前客...

华为众包
2017/01/10
16
1
Veritas 联手红帽 共同保障OpenStack关键业务应用程序部署

北京 – 2016 年 9 月 14 日 – 今日,全球信息管理解决方案领导厂商Veritas Technologies宣布将与全球领先开源解决方案提供商红帽( Red Hat, Inc,纽约证交所代码:RHT)携手合作,共同致力...

玄学酱
2018/05/15
0
0
OpenStack波士顿峰会召开: 借助远程托管私有云、边缘计算及组合型基础设施,赢得新客户、实现新增长

主旨发言、现场演示,OpenStack借助成本效益双赢组合型开放基础设施来展示其在推动创新方面的强大实力 日前,来自六十多个国家数以千计的与会者齐聚OpenStack波士顿峰会,共同讨探讨如何实现...

玄学酱
2018/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
52分钟前
93
5
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部