6.compute部署nova服务

Nova-compute 是一个非常重要的守护进程,负责创建和终止虚拟机实例,即管理着虚拟机实例的生命周期在计算节点上运行,负责管理节点上的实例Instance,例如:创建、关闭、重启、挂起、恢复、中止、调整大小、迁移、快照等操作都是通过nova-compute 实现的。

例如创建一个虚拟机,nova-api接收到客户端请求后,经过nova-scheduler调度器调度,再将请求通过rpc机制发送给某个选定的nova-compute节点,nova-compute模块经过一系列的动作之后将命令下发到真正的hypervisor(运行在物理服务器上的软件层,可以实现虚拟化并在物理服务器上运行多个虚拟机)进行虚拟机的创建。 

nova-compute与Hypervisor一起实现OpenStack对instance生命周期的管理。Nova-compute为这些Hypervisor定义了统一的接口,Hypervisor只需要实现这些接口,就可以以Driver的形式即插即用到OpenStack系统中。

通常一个主机运行一个 Nova-compute 服务,一个实例部署在哪个可用的主机上取决于调度算法,OpenStack 对实例的操作,最后都是提交给Nova-compute来完成 。

安装nova-compute组件

compute节点

yum -y install openstack-nova-compute

修改配置文件

修改配置文件: /etc/nova/nova.conf
#查看文件属性
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的用户密码:123
transport_url = rabbit://openstack:123@controller
#定义本机IP
my_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:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123
[vnc]
#启动vnc
enabled = true
#指定vnc的监听地址
server_listen = 0.0.0.0
#server客户端地址为本机IP
server_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 = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = 123

6.compute部署nova服务_第1张图片 

检查 CPU 虚拟化功能是否开启, compute 节点负责启动虚机,所以需要开启cpu 虚拟化
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节点

扫描当前 openstack 中有哪些计算节点可用
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

6.compute部署nova服务_第2张图片 

 controller节点

检查 nova 的各个服务是否都是正常,以及 compute 服务是否注册成功
source admin-openrc
openstack compute service list

6.compute部署nova服务_第3张图片

查看各个组件的 api 是否正常

openstack catalog list

6.compute部署nova服务_第4张图片 

查看是否能够获取镜像(之前的小镜像) 

openstack image list

6.compute部署nova服务_第5张图片

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

6.compute部署nova服务_第6张图片

 

 

你可能感兴趣的:(Openstack,rabbitmq,openstack,云原生)