前面介绍了 Openstack 入门、基础环境部署、Keystone 、Glance等相关的知识点,今天我将详细的为大家介绍 Openstack 计算服务 Nova相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发分享朋友圈支持一波!!!
Nova 是 openstack 中最早出现的模块之一,主要是为openstack提供计算服务。在openstack中,Nova又分为计算节点和控制节点。我们把安装有nova-compute的节点称为计算节点,其他的节点称为控制节点。nova的计算节点只负责创建虚拟机,而nova的控制节点负责控制。
Nova 由多个服务器进程构成,每个进程执行不同的功能,下面介绍各个组件的功能。
Nova API提供的功能:
Nova-Conductor功能:
Scheduler 用于决定那台计算节点承载计算实例的 nova 调度器。Nova-Scheduler 功能:
Nova Scheduler 的调度过程如下图所示:
从上图可以看出,Nova Scheduler的调度过程分为两个步骤,即过滤和权值计算。所谓过滤就是根据虚拟机资源配置情况和各个主机的实际情况,过滤掉一些不符合条件的主机。在进行过滤后,Nova Scheduler会对剩余的主机进行权重计算,最终选择最优的物理机进行调度。
Nova节点的安装是在Keystone节点成功安装的基础上进行的。Nova节点的安装可以以YUM的方式进行,直接执行命令:
yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
即可完成Nova的安装。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
在Nova节点安装完成后,我们接下来要做的就是配置Nova节点的数据库。打开Nova的配置文件/etc/nova/nova.conf,找到database模块,在该模块下添加如下内容:
connection=mysql+pymysql://nova:nova@192.168.136.101/nova
配置完成后如下所示:
然后,找到api_database模块,在该模块下添加如下内容:
connection=mysql+pymysql://nova_api:nova_api@192.168.136.101/nova_api
配置完成后如下所示:
这样,我们的Nova数据库配置就完成了。
在完成Nova的数据库配置后,我们接下来就需要进行Nova的数据库同步。执行命令:
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
即可实现nova和nova_api两个数据库的同步,这两条命令执行情况如下所示:
注意,在上述命令执行时,可能会出现warning信息,只要是不Error信息,我们不用理会,如果不放心,还可以在命令执行结束后,执行echo $?查看命令执行的结果。
接下来,我们就来验证一下Nova的数据库初始化结果。执行命令:
mysql -h 192.168.136.101 -unova -pnova -e "use nova;show tables;"
mysql -h 192.168.136.101 -unova_api -pnova_api -e "use nova_api;show tables;"
即可查看数据库内是否有初始化后的表,这两条命令执行情况如下所示:
从以上可以看出,我们的nova和nova_api数据库已经有相关内容,这说明我们的数据库初始化成功!
在上文中,我们介绍了openstack中Nova节点的安装与数据库的初始化操作。今天,我们就来介绍一下Nova的其他配置。
我们打开Nova的配置文件/etc/nova/nova.conf,在该文件中的default模块,加入如下内容:
[DEFAULT]
auth_strategy=keystone
上述内容表示Nova使用keystone进行认证,完成后的配置文件如下所示:
之后,我们再keystone_authtoken模块下,添加如下内容:
[keystone_authtoken]
auth_uri=http://192.168.136.101:5000
auth_url=http://192.168.136.101:35357
memcached_servers=192.168.136.101:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova
上述内容是keystone认证的相关配置,包括IP地址、认证类型、域名称、项目名称、用户名以及密码,完成后的配置文件如下所示:
之后,由于nova服务之间使用消息队列进行沟通,所以我们需要设置Rabbitmq。打开Nova的配置文件/etc/nova/nova.conf
,在DEFAULT模块下添加如下配置:
rpc_backend=rabbit
如下所示:
之后,找到[oslo_messaging_rabbit]
模块,在该模块下添加如下配置:
rabbit_host=192.168.136.101
rabbit_port=5672
rabbit_userid=openstack
rabbit_password=openstack
上述配置内容,分别指定了rabbitmq的IP地址、端口号、用户名和密码。 完成后的配置文件如下所示:
这样,我们的Nova的rabbitmq设置就完成了。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
最后,我们还要设置一下Nova的一些自身功能。我们搜索Nova的以下参数,并将其修改为如下配置:
enabled_apis=osapi_compute,metadata
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
vncserver_listen=192.168.136.101
vncserver_proxyclient_address=192.168.136.101
api_servers=http://192.168.136.101:9292
lock_path=/var/lib/nova/tmp
上述配置内容,分别表示设置元数据启用的API,设置Neutron的网络服务支持,关闭防火墙,设置VNC代理,配置Glance镜像服务API,以及配置锁路径等等。 完成后的配置文件如下所示:
这样,Nova自身的配置就完成了。
最后,我们执行命令:
grep "^[a-Z]" /etc/nova/nova.conf
可以查看当前Nova的配置文件中所有生效的命令,该命令执行结果如下所示:
在上文中,我们完成了Nova整体的配置文件,接下来,我们就可以启动Nova服务了,Nova服务的启动,需要执行以下命令:
systemctl start openstack-nova-api
systemctl start openstack-nova-consoleauth
systemctl start openstack-nova-scheduler
systemctl start openstack-nova-conductor
systemctl start openstack-nova-novncproxy
这些命令,分别表示启动Nova各项服务的启动。
在Nova服务启动后,我们还要在Keystone上注册Nova服务。首先,执行命令:
source admin-openstack.sh
给我们接下来的操作赋予openstacl的token权限,之后,我们执行命令:
openstack service create --name nova --description "openstack nova" compute
来创建Nova的Service服务,该命令执行结果如下所示:
之后,我们需要创建Nova Compute服务的API端点,我们需要创建public、internal和admin的三种端点,分别执行命令:
openstack endpoint create --region RegionOne compute public http://192.168.136.101:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://192.168.136.101:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute admin http://192.168.136.101:8774/v2.1/%\(tenant_id\)s
这些命令执行结果分别如下所示:
最后,我们执行命令:
openstack host list
来检查控制节点的配置情况,结果如下所示:
从上图可以看出,我们的Nova服务注册成功!
以上就是我们关于 Nova 服务的原理与安装、配置的介绍。
参考文章:https://blog.csdn.net/weixin_40228200/ article/details/125126937 https://blog.csdn.net /weixin_40228200/article/details/125126716