參考文檔:
- Install-guide:https://docs.openstack.org/install-guide/
- OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html
- 理解Pacemaker:http://www.cnblogs.com/sammyliu/p/5025362.html
十六.Cinder計算節點
在采用ceph或其他商業/非商業后端存儲時,建議將cinder-volume服務部署在控制節點,通過pacemaker將服務運行在active/passive模式。
以下配置文件可供參考,但部署模式(經驗證后發現)並不是"最佳"實踐。
1. 安裝cinder
# 在全部計算點安裝cinder服務,以compute01節點為例 [root@compute02 ~]# yum install -y openstack-cinder targetcli python-keystone
2. 配置cinder.conf
# 在全部計算點操作,以compute01節點為例; # 注意”my_ip”參數,根據節點修改; # 注意cinder.conf文件的權限:root:cinder [root@compute01 ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak [root@compute01 ~]# egrep -v "^$|^#" /etc/cinder/cinder.conf [DEFAULT] state_path = /var/lib/cinder my_ip = 172.30.200.41 glance_api_servers = http://controller:9292 auth_strategy = keystone # 簡單的將cinder理解為存儲的機頭,后端可以采用nfs,ceph等共享存儲 enabled_backends = ceph # 前端采用haproxy時,服務連接rabbitmq會出現連接超時重連的情況,可通過各服務與rabbitmq的日志查看; # transport_url = rabbit://openstack:rabbitmq_pass@controller:5673 # rabbitmq本身具備集群機制,官方文檔建議直接連接rabbitmq集群;但采用此方式時服務啟動有時會報錯,原因不明;如果沒有此現象,強烈建議連接rabbitmq直接對接集群而非通過前端haproxy transport_url=rabbit://openstack:rabbitmq_pass@controller01:5672,controller02:5672,controller03:5672 [backend] [backend_defaults] [barbican] [brcd_fabric_example] [cisco_fabric_example] [coordination] [cors] [database] connection = mysql+pymysql://cinder:cinder_dbpass@controller/cinder [fc-zone-manager] [healthcheck] [key_manager] [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller01:11211,controller02:11211,controller03:11211 auth_type = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = cinder_pass [matchmaker_redis] [nova] [oslo_concurrency] lock_path = $state_path/tmp [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [oslo_reports] [oslo_versionedobjects] [profiler] [service_user] [ssl] [vault]
3. 啟動服務
# 在全部計算點操作; # 開機啟動 [root@compute01 ~]# systemctl enable openstack-cinder-volume.service target.service # 啟動 [root@compute01 ~]# systemctl restart openstack-cinder-volume.service [root@compute01 ~]# systemctl restart target.service
4. 驗證
# 在任意控制節點(或具備客戶端的節點)操作 [root@controller01 ~]# . admin-openrc # 查看agent服務; # 或:cinder service-list; # 此時后端存儲服務為ceph,但ceph相關服務尚未啟用並集成到cinder-volume,導致cinder-volume服務的狀態也是”down” [root@controller01 ~]# openstack volume service list