例如创建一个虚拟机,nova-api接收到客户端请求后,经过nova-scheduler调度器调度,再将请求通过rpc机制发送给某个选定的nova-compute节点,nova-compute模块经过一系列的动作之后将命令下发到真正的hypervisor(运行在物理服务器上的软件层,可以实现虚拟化并在物理服务器上运行多个虚拟机)进行虚拟机的创建。
nova-compute与Hypervisor一起实现OpenStack对instance生命周期的管理。Nova-compute为这些Hypervisor定义了统一的接口,Hypervisor只需要实现这些接口,就可以以Driver的形式即插即用到OpenStack系统中。
安装nova-compute组件
compute节点
yum -y install openstack-nova-compute
修改配置文件
#查看文件属性 ll /etc/nova/nova.conf -rw-r----- 1 root nova .... #备份配置文件 cp /etc/nova/nova.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/nova/nova.conf.bak >/etc/nova/nova.conf #查看文件属性 ll /etc/nova/nova.conf -rw-r----- 1 root nova .....
vi /etc/nova/nova.conf
[DEFAULT]#指定nova支持的api类型enabled_apis = osapi_compute,metadata#指定连接的rabbitmq的用户密码:123transport_url = rabbit://openstack:123@controller#定义本机IPmy_ip = 192.168.0.51#通过 neutron 获取虚拟机实例IP地址use_neutron = true#禁用nova服务的防火墙驱动,否则会与网络服务neutron防火墙驱动冲突firewall_driver = nova.virt.firewall.NoopFirewallDriver[api]#指定使用keystone认证auth_strategy = keystone#配置keystone认证信息,密码:123[keystone_authtoken]www_authenticate_uri = http://controller:5000/auth_url = http://controller:5000/memcached_servers = controller:11211auth_type = passwordproject_domain_name = Defaultuser_domain_name = Defaultproject_name = serviceusername = novapassword = 123[vnc]#启动vncenabled = true#指定vnc的监听地址server_listen = 0.0.0.0#server客户端地址为本机IPserver_proxyclient_address = $my_ip#通过内网IP来访问vnc server时的地址novncproxy_base_url = http://controller:6080/vnc_auto.html[glance]#指定glacne的api,nova启动实例需要找glance要镜像api_servers = http://controller:9292[oslo_concurrency]#配置lock锁的临时存放目录,锁的作用是创建虚拟机时,在执行某个操作的时候,需要等此步骤执行完后才能执行下一个步骤,不能并行执行,保证操作是一步一步的执行
lock_path = /var/lib/nova/tmp
#nova需要访问placement获取计算节点的资源使用情况,这里的placement密码是:123[placement]region_name = RegionOneproject_domain_name = Defaultproject_name = serviceauth_type = passworduser_domain_name = Defaultauth_url = http://controller:5000/v3username = placementpassword = 123
egrep -c '(vmx|svm)' /proc/cpuinfo
#返回值2为开启,0未开启
设置开机自启并启动服务
systemctl enable libvirtd.service openstack-novacompute.service
systemctl start libvirtd.service openstack-novacompute.service
systemctl is-active libvirtd.service openstack-novacompute.service
接下来在controller节点查看compute节点是否注册到controller上
controller节点
source admin-openrc
openstack compute service list --service nova-compute
将新的计算节点添加到openstack集群(会输出一些warning,不是error不重要,表结构的一些变化)
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
定义Nova自动发现新主机的时间间隔
controller节点
vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval = 300
controller节点
source admin-openrc
openstack compute service list
查看各个组件的 api 是否正常
openstack catalog list
查看是否能够获取镜像(之前的小镜像)
openstack image list
nova-status upgrade check