作者: branyang
硬盘有价,数据无价,本文将为大家分享Freezer的安装方法。Freezer主要用于数据的备份容灾,是OpenStack整个设计中一个必不可少的一环。
Freezer 作为一个OpenStack offical项目,主要致力于OpenStack的数据备份/恢复相关的工作,从OpenStack-Kilo版本开始支持。它不仅是分布式的备份工具,而且还支持多个平台的使用 windows linux osx 等等,对数据的一致性校验,加密,上传限速等都做了处理。
▲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文件
local|localrc
ADMIN_PASSWORD=password
DATABASE_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
MULTI_HOST=1
RECLONE=no
HOST_IP=192.168.9.129
SERVICE_TIMEOUT=180
USE_SCREEN=True
LOGFILE=$DEST/logs/stack.sh.log
LOGDAYS=2
LOG_COLOR=True
LIBVIRT_TYPE=qemu
ENABLED_SERVICES=key,mysql,rabbit
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-cauth,mysql,rabbit
ENABLED_SERVICES+=,c-sch,c-api,c-vol,c-bak
ENABLED_SERVICES+=,horizon,n-novnc
ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
enable_service n-cell
enable_service freezer
export FREEZER_API_SERVER_TYPE=apache2
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron
enable_service placement-api
IMAGE_URLS="
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vxlan
PUBLIC_INTERFACE=ens33
FLOATING_RANGE=192.168.9.0/24
PUBLIC_NETWORK_GATEWAY=192.168.9.2
Q_FLOATING_ALLOCATION_POOL=start=192.168.9.200,end=192.168.9.220
enable_plugin freezer
enable_plugin freezer-api
enable_plugin freezer-web-ui
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1
SWIFT_DATA_DIR=$DEST/data
SWIFT_ENABLE_TEMPURLS=True
SWIFT_HASH=password
SWIFT_TEMPURL_KEY=password
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
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。