作者: 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 = "http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-uec.tar.gz,http://berrange.fedorapeople.org/images/2012-02-29/f16-x86_64-openstack-sda.qcow2"
- 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 freezerhttps://git.openstack.org/openstack/freezer master
- enable_plugin freezer-apihttps://git.openstack.org/openstack/freezer-api.git master
- enable_plugin freezer-web-uihttps://github.com/openstack/freezer-web-ui.git master
- 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
来源: https://cloud.tencent.com/developer/article/1006752?fromSource=gwzcw.701303.701303.701303