部署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中,主机名是绝对不能重复的;