第四步(1):安装openstack-nova服务-计算节点

部署nova-compute

https://docs.openstack.org/nova/train/install/compute-install-rdo.html #nova-compute部署

nova-compute 服务是安装在 node 节点上的服务

1、hostnamectl set-hostname openstack-node1.example.local

2、yum install centos-release-openstack-train.noarch -y #安装openstack的yum源

3、yum install python-openstackclient -y   #安装openstack的客户端

4、yum install openstack-selinux -y

5、yum install https://rdoproject.org/repos/rdo-release.rpm -y  
#安装rdo源;rdo源可以不安装,rdo源里面只是有一些新开发测试的包

6、yum install openstack-nova-compute -y  #安装nova compute服务

7、vim /etc/nova/nova.conf
[DEFAULT]
enabled_apis = osapi_compute,metadata  #指定支持的api类型
transport_url = rabbit://openstack:openstack123@openstack-vip.linux.local 
#指定连接的rabbitmq
use_neutron = true   #通过neutron获取IP地址
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]
auth_strategy = keystone   #通过keystone认证

[keystone_authtoken]   #配置keystone的认证信息
www_authenticate_uri = http://openstack-vip.linux.local:5000/ #到此url去认证
auth_url = http://openstack-vip.linux.local:5000/   #认证的keystone地址
memcached_servers = openstack-vip.linux.local:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = nova

[vnc]       #此处如果配置不正确,则连接不上虚拟机的控制台
enabled = true
server_listen = 0.0.0.0   #指定vnc的监听地址
server_proxyclient_address = 172.31.7.107  #server的客户端地址为本机地址;此地址是管理网的地址
novncproxy_base_url = http://openstack-vip.linux.local:6080/vnc_auto.html
#当访问controller vnc的6080时,controller会把请求转发到虚拟机所在node节点的server_proxyclient_address 所设置的地址,所以需要 server_proxyclient_address 指定好本机的监听地址

[glance]
api_servers = http://openstack-vip.linux.local:9292  #nova compute从指定的glance的api获取镜像

[oslo_concurrency]
lock_path = /var/lib/nova/tmp  #配置锁路径

[placement]   #node节点需要向placement汇到当前node节点的可用资源
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://openstack-vip.linux.local:5000/v3
username = placement
password = placement

8、egrep -c '(vmx|svm)' /proc/cpuinfo
#验证node节点是否支持硬件辅助虚拟化;vmx是intel虚拟化,svm是amd虚拟化技术;一般每盒cpu都支持vmx;如果cpu不支持虚拟化,则需要编辑nova的主配置文件:
vim /etc/nova/nova.conf
[libvirt]
virt_type = qemu  #指定qemu,模拟虚拟化,但是性能非常差

9、vim /etc/hosts   #配置文件中指定了域名,所以需要配置解析
172.31.7.248 openstack-vip.linux.local

10、systemctl start libvirtd.service openstack-nova-compute.service

11、tail -f /var/log/nova/nova-compute.log   #通过查看日志,判断 nova compute 是否启动成功

12、systemctl enable libvirtd.service openstack-nova-compute.service

测试

1、. admin-openrc.sh

2、openstack compute service list --service nova-compute
#查看compute节点是否注册到controller上,通过消息队列;需要在controller节点执行

3、su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#扫描当前openstack中有哪些计算节点可用,发现后会把计算节点创建到cell中,后面就可以在cell中创建虚拟机;相当于openstack内部对计算节点进行分组,把计算节点分配到不同的cell中

4、第三步中,每次添加个计算节点,在控制端就需要执行一次扫描,这样会很麻烦,所以可以修改控制端nova的主配置文件:
vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval = 300  #设置每5分钟自动扫描一次可用计算节点

验证操作

https://docs.openstack.org/nova/train/install/verify.html #验证参考文档

在进行验证操作之前,必须配置好控制端和 node 节点上的 nova 服务才可进行验证

以下操作都需要在controller节点运行,因为controller节点有环境变量;
1、. admin-openrc.sh

2、openstack compute service list  #检查 nova 的各个服务是否都是正常,以及 compute 服务是否注册成功

3、openstack catalog list  #查看各个组件的 api 是否正常

4、openstack image list    #查看是否能够拿到镜像

5、nova-status upgrade check  
#查看cell的api和placement的api是否正常,只要其中一个有误,后期无法创建虚拟机

6、nova service-list  #检查 nova 的各个服务是否都是正常

注意

1、controller 和 node 节点上的 nova 服务的日志中,不能有任何 error,只要有一个 error,就会造成 nova 服务无法启动;

2、openstack中,主机名是绝对不能重复的;
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299867.html