openstack(queens)多节点手动安装(三):控制节点和计算节点nova组件的安装

nova计算服务概述

nova是openstack中的核心组件之一,主要负责与计算相关的服务,如对虚拟机生命周期的管理。nova组件主要包括以下几大服务:
1.nova-api服务:对外提供REST API服务,是nova服务的入口
2.nova-compute服务:提供计算服务,是nova中对虚拟机管理的核心服务,它可以通过调用不同Hypervisor的API来实现对虚拟机生命周期的管理。常见的Hypervisor有KVM,Xen和VMWare等。
3.nova-conductor服务:是nova中各个服务组件与数据库交互的接口。nova架构设计中,因为nova-compute服务经常需要更新数据,因此出于安全性和可扩展性的考虑,nova-compute不会直接访问数据库,而是通过nova-conductor来访问数据库。(其他的nova服务包括nova-api,nova-scheduler可以直接访问数据库)
4.nova-scheduler服务:提供对计算资源的调度,它提供了多种算法来应对不同场景下nova对资源的调度
5.nova-novncproxy服务:提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端
6.nova-placement-api服务:Placement API 在 Newton 版本中被引入 Nova,主要用于跟踪记录 Resource Provider 的 Inventory 和 Usage,并使用不同的 Resource Classes 来标记资源类型。例如:一个 resource provider 可以是一个 compute node,一个 shared storage pool,或者是一个 IP allocation pool。
通常情况下,nova服务会部署于控制节点和计算节点上,其中nova-compute部署在计算节点,其他服务部署在控制节点。为了后续能够进行虚拟机在不同节点之间冷迁移和热迁移的实验,本次部署了两个计算节点1和2,两个计算节点的部署方法完全相同,所以nova的安装部署教程主要分为两个部分,控制节点的安装部署和计算节点的安装部署。

控制节点nova的安装部署

在数据库中创建nova的表

mysql -uroot -pwwwwww
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova';

创建nova和placement的user并绑定role,创建nova和placement服务

nova:

openstack user create --domain default --password-prompt nova
openstack role add --project service --user nova admin
openstack service create --name nova --description "OpenStack Compute" compute

placement:

openstack user create --domain default --password-prompt placement
openstack role add --project service --user placement admin
openstack service create --name placement --description “Placement API” placement

创建nova和placement服务的endpoint

nova:

openstack endpoint create --region RegionOne compute public http://控制节点主机名:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://控制节点主机名:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://控制节点主机名:8774/v2.1

placement

openstack endpoint create --region RegionOne placement public http://控制节点主机名:8778
openstack endpoint create --region RegionOne placement internal http://控制节点主机名:8778
openstack endpoint create --region RegionOne placement admin http://控制节点主机名:8778

安装并配置nova组件

yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api

编辑配置文件/etc/nova/nova.conf

cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
vim /etc/nova/nova.conf
[DEFAULT]

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:wwwwww@控制节点主机名

my_ip = 控制节点ip

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]

connection = mysql://nova:nova@控制节点主机名/nova_api

[database]

connection = mysql://nova:nova@控制节点主机名/nova

[api]

auth_strategy = keystone

[keystone_authtoken]

auth_url = http://控制节点主机名:35357/v3
memcached_servers = 控制节点主机名:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova

[vnc]

enabled = true

server_listen = $my_ip

server_proxyclient_address = $my_ip

[glance]

api_servers = http://控制节点主机名:9292

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

[placement]

os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://控制节点主机名:35357/v3
username = placement
password = placement

为了实现对placement API的访问,还需要在/etc/httpd/conf.d/00-nova-placement-api.conf添加如下配置并重启httpd服务


   = 2.4>
      Require all granted
   
   
      Order allow,deny
      Allow from all
   


systemctl restart httpd
systemctl status httpd

同步nova相关数据库

# 填充nova-api数据库(忽略此输出中的任何弃用消息):
su -s /bin/sh -c “nova-manage api_db sync” nova

# 注册cell0数据库:
su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

# 创建cell1单元格:
su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

# 填充nova数据库:
su -s /bin/sh -c “nova-manage db sync” nova

进入nova相关数据库验证是否写入成功,此时nova库中应该有110张表,nova-api库中应该有32张表

完成安装并启动服务

systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

计算节点nova-compute的安装部署

该服务支持多个虚拟机管理程序来部署实例或虚拟机(VM)。为简单起见,此配置使用Quick EMUlator(QEMU)虚拟机管理程序和支持虚拟机硬件加速的计算节点上的基于内核的VM(KVM)扩展。在传统硬件上,此配置使用通用QEMU管理程序。您可以通过稍作修改来遵循这些说明,以使用其他计算节点水平扩展您的环境。为了后续实验虚拟机在不同计算节点的冷热迁移,安装部署了两个计算节点,两个节点的安装部署步骤完全相同

安装配置nova-compute服务

yum install openstack-nova-compute

修改/etc/nova/nova.conf的配置

cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
vim /etc/nova/nova.conf
[DEFAULT]

enabled_apis = osapi_compute,metadata

transport_url = rabbit://openstack:wwwwww@控制节点主机名

my_ip = 本计算节点ip地址

use_neutron = true

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]

auth_strategy = keystone

[keystone_authtoken]

www_authenticate_uri = http://控制节点主机名:5000/
auth_url = http://控制节点主机名:35357/
memcached_servers = 控制节点主机名: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
server_proxyclient_address = $my_ip
novncproxy_base_url = http://控制节点主机名:6080/vnc_auto.html

[glance]

api_servers = http://控制节点主机名:9292

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

[placement]

region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://控制节点主机名:35357/v3
username = placement
password = placement

检查计算节点是否支持虚拟机的硬件加速

egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回值为0,表明计算节点不支持虚拟机的硬件加速,需要在/etc/nova/nova.conf文件中修改如下配置

[libvirt]

virt_type = qemu

启动nova-compute服务

systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

将计算节点加入nova_cell数据库

完成两个计算节点的安装配置后,在控制节点进行同步数据库操作,将两个节点加入nova_cell数据库中

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

nova官方安装文档:https://docs.openstack.org/nova/train/install/get-started-compute.html

你可能感兴趣的:(openstack多节点安装)