OpenStack 数据备份安装篇

2017-12-07 11:53:35 浏览数 (1)

作者: branyang

硬盘有价,数据无价,本文将为大家分享Freezer的安装方法。Freezer主要用于数据的备份容灾,是OpenStack整个设计中一个必不可少的一环。

Freezer说明

Freezer 作为一个OpenStack offical项目,主要致力于OpenStack的数据备份/恢复相关的工作,从OpenStack-Kilo版本开始支持。它不仅是分布式的备份工具,而且还支持多个平台的使用 windows linux osx 等等,对数据的一致性校验,加密,上传限速等都做了处理。

▲Freezer 架构图

Freezer组件说明

▷Freezer-api

主要提供服务的Restful Api服务,监听端口默认为9090。主要用于通过该API与数据库进行交互并维护Freezer的Job 以及备份周期时间等相关的metadata等。多用于与Freezer-shceduler进行交互,freezer-scheduler定期从freezer-api读取相应的Job信息等。

▷Freezer-Scheduler

Freezer-scheduler 主要用于与Freezer-api进行交互获取Job 进行,并将Job中的信息以及metadata数据等进行使用Apscheduler进行不同方式的scheduler,并调用Freezer-agent 进行具体相应的任务的执行。Freezer-scheduler与Freezer-agent的强关联性,一般Freezer-scheduler与Freezer-agent安装在同一台节点上。目前支持的定期执行任务的方式一般为,interval,cron-like, date三个。

▷Freezer-agent

Freezer-agent 作为Freezer的主要动作的执行者,主要直接与相应的OpenStack的数据服务相直接接触,使用Cinderclient,Novaclient, Osbrick等直接与OpenStack需要备份的数据进行交互。目前支持的备份包括,nova-instance,cinder-volume,mysql,sqlserver等。

▷Freezer-web-ui

主要集成与OpenStack Horizon,提高UI服务,实现调用Freezerclient与Freezer-api进行串联实现数据备份动作等。

▷Freezer-DR

主要提供虚拟机的VMHA服务,利用Freezer-DR创建监听器,通过监听nova-compute节点的是否正常,并实现触发在共享存储下的虚拟机HA,保障了业务的高可用。

安装

▷使用Devstack 开发环境安装

▷准备DevStack开发环境

这里不再过多说明如何准备DevStack环境,可以参考devstack.org进行查看。

▷准备Freezer localrc文件

代码语言:txt复制
local|localrc
代码语言:txt复制
ADMIN_PASSWORD=password
代码语言:txt复制
DATABASE_PASSWORD=stackdb
代码语言:txt复制
RABBIT_PASSWORD=stackqueue
代码语言:txt复制
SERVICE_PASSWORD=$ADMIN_PASSWORD
代码语言:txt复制
MULTI_HOST=1
代码语言:txt复制
RECLONE=no
代码语言:txt复制
HOST_IP=192.168.9.129
代码语言:txt复制
SERVICE_TIMEOUT=180
代码语言:txt复制
USE_SCREEN=True
代码语言:txt复制
LOGFILE=$DEST/logs/stack.sh.log
代码语言:txt复制
LOGDAYS=2
代码语言:txt复制
LOG_COLOR=True
代码语言:txt复制
LIBVIRT_TYPE=qemu
代码语言:txt复制
ENABLED_SERVICES=key,mysql,rabbit
代码语言:txt复制
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-cauth,mysql,rabbit
代码语言:txt复制
ENABLED_SERVICES =,c-sch,c-api,c-vol,c-bak
代码语言:txt复制
ENABLED_SERVICES =,horizon,n-novnc
代码语言:txt复制
ENABLED_SERVICES =,s-proxy,s-object,s-container,s-account
代码语言:txt复制
enable_service n-cell
代码语言:txt复制
enable_service freezer
代码语言:txt复制
export FREEZER_API_SERVER_TYPE=apache2
代码语言:txt复制
disable_service n-net
代码语言:txt复制
enable_service q-svc
代码语言:txt复制
enable_service q-agt
代码语言:txt复制
enable_service q-dhcp
代码语言:txt复制
enable_service q-l3
代码语言:txt复制
enable_service q-meta
代码语言:txt复制
enable_service q-metering
代码语言:txt复制
enable_service neutron
代码语言:txt复制
enable_service placement-api
代码语言:txt复制
IMAGE_URLS="
代码语言:txt复制
Q_PLUGIN=ml2
代码语言:txt复制
Q_ML2_TENANT_NETWORK_TYPE=vxlan
代码语言:txt复制
PUBLIC_INTERFACE=ens33
代码语言:txt复制
FLOATING_RANGE=192.168.9.0/24
代码语言:txt复制
PUBLIC_NETWORK_GATEWAY=192.168.9.2
代码语言:txt复制
Q_FLOATING_ALLOCATION_POOL=start=192.168.9.200,end=192.168.9.220
代码语言:txt复制
enable_plugin freezer
代码语言:txt复制
enable_plugin freezer-api
代码语言:txt复制
enable_plugin freezer-web-ui
代码语言:txt复制
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
代码语言:txt复制
SWIFT_REPLICAS=1
代码语言:txt复制
SWIFT_DATA_DIR=$DEST/data
代码语言:txt复制
SWIFT_ENABLE_TEMPURLS=True
代码语言:txt复制
SWIFT_HASH=password
代码语言:txt复制
SWIFT_TEMPURL_KEY=password
代码语言:txt复制
enable_plugin devstack-plugin-cephgit://git.openstack.org/openstack/devstack-plugin-ceph

验证

▷启动freezer-scheduler

   freezer-scheduler start

▷使用Freezer

   freezer client-list

  freezer job-list

这里Freezer 已经简单的安装完成,后续我们继续进行使用介绍。

如果想要对社区有更多的了解,可以查看Freezer的代码仓库地址。

Freezer: https://github.com/openstack/freezer

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

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

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

0 人点赞