十八、nova-compute的安装与配置(在 compute上root用户进行)
概述:
compute节点负责和底层的hypervisor交互,完成instance的整个生命周期、
openstack是提供IaaS服务的云计算平台,主要功能是提供虚拟机instance给用户,instance的创建和管理主要由nova完成,nova通过api接口和底层的hypervisor进行交互,比如通过libvirt和底层的KVM交互,通过XenAPI和XenServer交互,通过VMwareAPI和VMware ESXi交互,以api的方式,大大提高了nova的可扩展性。
nova作为openstack的核心组件,需要和其他组件进行交互,如和keystone完成认证,获得token和资源的访问端点endpoint;和glance进行交互,获取镜像资源,完成镜像的下载与启动;和neutron进行交互,完成虚拟机网络的构建,如地址分配,端口创建,网桥创建和安全组规则的建立;与dashboard交互,完成页面对hypervisor和instance的管理。
(1)安装nova软件包
# yum -y install openstack-nova-compute sysfsutils openstack-utils
(2)配置rabbit
# openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host controller0
# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_port 5672
# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_userid nova
# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_password NOVA_MQPASS
# openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_virtual_host /
(3)配置keystone连接
# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller0:5000/v2.0
# openstack-config --set /etc/nova/nova.conf keystone_authtoken identity_uri http://controller0:35357
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password NOVA_PASS
(4)配置VNC代理
# openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.20.0.30
# openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True
# openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0
# openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.20.0.30
#使得计算节点可以向控制台提交请求,这里不用主机名,否则会出现无法解析的情况
# openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://10.20.0.10:6080/vnc_auto.html
(5)配置glance image所在的主机
# openstack-config --set /etc/nova/nova.conf DEFAULT glance_host controller0
(6)校验compute节点是否支持硬件kvm
#如果为空找不到vmx的标志位,这需要设置kvm的连接类型为qemu
# cat /proc/cpuinfo |grep flags |grep -E "(vmx|svm)" | uniq
#或者:若反馈的数字不等于0则说明该主机支持虚拟机硬件加速,若不为0不做处理
# egrep -c '(vmxsvm)' /proc/cpuinfo
#若为空或者为0就执行下一步操作,设置kvm的连接类型为qemu
# openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu
(7)启动nova-compute服务
# systemctl start messagebus.service
# systemctl enable messagebus.service
# chkconfig libvirtd on
# service libvirtd start
# chkconfig openstack-nova-compute on
# service openstack-nova-compute start
(8)校验下compute服务状况
# openstack-status

(9) 在controller0上确认nova-compute服务是否正常
# source admin-openrc.sh
# nova service-list
# openstack-status


(10)在controller0上校验nova和glance是否正常交互
# nova image-list
#下图表名能正常交互

注: 以上的nova配置,是在compute0上操作,compute0节点负责和底层的hypervisor交互,完成instance的整个生命周期
nova安装完毕后,需要注意的是:
controller上需要启动的服务有:openstack-nova-api,openstack-nova-scheduler,openstack-nova-cert,openstack-nova-consolauth,openstack-nova-conductor,openstack-nova-novncproxy
compute节点则需要启动openstack-nova-compute和libvirtd服务,如果发现服务无法启动的话,检查对应的日志文件,根据日志的错误信息,排错,如openstack-nova-api的日志文件/var/log/nova/nova-api.log,检查日志文件信息,查找解决方案。