參考文檔:
- 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
十四.Nova計算節點
1. 安裝nova-compute
# 在全部計算節點安裝nova-compute服務,以compute01節點為例 [root@compute01 ~]# yum install python-openstackclient openstack-utils openstack-selinux -y [root@compute01 ~]# yum install openstack-nova-compute -y
2. 配置nova.conf
# 在全部計算節點操作,以computer01節點為例; # 注意”my_ip”參數,根據節點修改; # 注意nova.conf文件的權限:root:nova [root@compute01 ~]# cp /etc/nova/nova.conf /etc/nova/nova.conf.bak [root@compute01 ~]# egrep -v "^$|^#" /etc/nova/nova.conf [DEFAULT] my_ip=172.30.200.41 use_neutron=true firewall_driver=nova.virt.firewall.NoopFirewallDriver enabled_apis=osapi_compute,metadata # 前端采用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 [api] auth_strategy=keystone [api_database] [barbican] [cache] [cells] [cinder] [compute] [conductor] [console] [consoleauth] [cors] [crypto] [database] [devices] [ephemeral_storage_encryption] [filter_scheduler] [glance] api_servers=http://controller:9292 [guestfs] [healthcheck] [hyperv] [ironic] [key_manager] [keystone] [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller01:11211,controller02:11211,controller03:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = nova_pass [libvirt] # 通過“egrep -c '(vmx|svm)' /proc/cpuinfo”命令查看主機是否支持硬件加速,返回1或者更大的值表示支持,返回0表示不支持; # 支持硬件加速使用”kvm”類型,不支持則使用”qemu”類型; # 一般虛擬機不支持硬件加速 virt_type=qemu [matchmaker_redis] [metrics] [mks] [neutron] [notifications] [osapi_v21] [oslo_concurrency] lock_path=/var/lib/nova/tmp [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [pci] [placement] os_region_name=RegionTest auth_type=password auth_url=http://controller:35357/v3 project_name=service project_domain_name=Default username=placement user_domain_name=Default password=placement_pass [quota] [rdp] [remote_debug] [scheduler] [serial_console] [service_user] [spice] [upgrade_levels] [vault] [vendordata_dynamic_auth] [vmware] [vnc] enabled=true vncserver_listen=0.0.0.0 vncserver_proxyclient_address=$my_ip # 因某些未做主機綁定的客戶端不能訪問”controller”名字,改為使用具體的ip地址 novncproxy_base_url=http://172.30.200.30:6080/vnc_auto.html [workarounds] [wsgi] [xenserver] [xvp]
3. 啟動服務
# 全部計算節點操作; # 開機啟動 [root@compute01 ~]# systemctl enable libvirtd.service openstack-nova-compute.service # 啟動 [root@compute01 ~]# systemctl restart libvirtd.service [root@compute01 ~]# systemctl restart openstack-nova-compute.service 查看狀態 [root@compute01 ~]# systemctl status libvirtd.service [root@compute01 ~]# systemctl status openstack-nova-compute.service
4. 向cell數據庫添加計算節點
# 在任意控制節點操作 [root@controller01 ~]# . admin-openrc # 確認數據庫中含有主機 [root@controller01 ~]# openstack compute service list --service nova-compute
1)手工發現計算節點
# 手工發現計算節點主機,即添加到cell數據庫 [root@controller01 ~]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
2)自動發現計算節點
# 在全部控制節點操作; # 為避免新加入計算節點時,手動執行注冊操作”nova-manage cell_v2 discover_hosts”,可設置控制節點定時自動發現主機; # 涉及控制節點nova.conf文件的[scheduler]字段; # 如下設置自動發現時間為5min,可根據實際環境調節 [root@controller01 ~]# vim /etc/nova/nova.conf [scheduler] discover_hosts_in_cells_interval=300 # 重啟nova服務,配置生效 [root@controller01 ~]# systemctl restart openstack-nova-api.service
5. 驗證
登陸dashboard,管理員-->計算-->虛擬機管理器
如果已注冊成功,在"虛擬機管理器"標簽下可發現計算節點,並能展示出各計算節點的資源;如果未注冊或注冊失敗,則"虛擬機管理器"標簽下無主機。