OpenStack—Q Nova安装

一、计算服务概念

OpenStack计算与OpenStack身份进行交互以进行身份验证;用于磁盘和服务器映像的OpenStack镜像服务;以及用于用户和管理界面的OpenStack Dashboard。镜像访问受到项目和用户的限制;每个项目的配额是有限的(例如,实例的数量)。OpenStack计算可以在标准硬件上横向扩展,并下载镜像到启动实例。
OpenStack Compute由以下几部分组成
Nova-api service
接受并响应终端用户计算API调用。该服务支持OpenStack Compute API。它执行一些策略,并发起大多数编排活动,例如运行一个实例。
nova-api-metadata service
接受来自实例的元数据请求。当您使用nova-network安装在多主机模式下运行时,通常使用nova-api-metadata服务。
nova-compute service
通过hypervisor api创建和终止虚拟机实例的工作者守护进程。
• XenAPI for XenServer/XCP
• libvirt for KVM or QEMU
• VMwareAPI for VMware
处理相当复杂。基本上,守护进程从队列中接受动作,并执行一系列系统命令,比如启动KVM实例并在数据库中更新其状态。
nova-placement-api service
跟踪每个提供者的库存和使用情况。
nova-scheduler service
从队列中取出一个虚拟机实例请求,并确定它运行的哪个计算服务器主机。
nova-conductor module
在nova-compute服务和数据库之间进行交互。它消除了由nova-compute服务创建的云数据库的直接访问。nova-导体模块水平地伸缩。但是,不要将其部署到nova-compute服务运行的节点上。
nova-consoleauth daemon
授权给控制台代理提供的用户令牌。参见nova-novncproxy和nova-xvpvncproxy。该服务必须运行控制台代理才能工作。在集群配置中,您可以在单个nova-慰藉eauth服务上运行任一类型的代理。
nova-novncproxy daemon
提供了通过VNC连接访问运行实例的代理。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy daemon
提供了通过SPICE连接访问运行实例的代理。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy daemon
提供了通过VNC连接访问运行实例的代理。支持一个特定于openstack的Java客户端。
The queue
在守护进程之间传递消息的中心集线器。通常使用RabbitMQ实现,也可以使用另一个AMQP消息队列来实现,比如ZeroMQ。
SQL database
为云基础设施存储大多数构建时和运行时状态,包括:
• Available instance types
• Instances in use
• Available networks
• Projects
理论上,OpenStack计算可以支持任何SQLAlchemy支持的数据库。通用数据库是用于测试和开发工作的SQLite3,MySQL、MariaDB和PostgreSQL。

本节描述如何在控制器节点上安装和配置计算服务,称为nova

二、Controller—基础配置

Controller节点

1.创建数据库

# mysql -uroot -p123456
MariaDB [(none)]> create database nova_api;
MariaDB [(none)]> create database nova;
MariaDB [(none)]> create database nova_cell0;
MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'%' identified by '123456';
MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'%' identified by '123456';
MariaDB [(none)]> grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)]> grant all privileges on nova_cell0.* to 'nova'@'%' identified by '123456';

2.获取admin凭证以获得对admin-only CLI命令的访问:

# . admin-openrc

3.创建计算服务证书:
(1)创建nova用户

# openstack user create --domain default --password-prompt nova

在这里插入图片描述
(2)将admin角色添加到nova用户中(无返回值)

# openstack role add --project service --user nova admin

(3)创建nova服务实体

# openstack service create --name nova --description "OpenStack Compute" compute

在这里插入图片描述
(4)创建Compute API服务端点

扫描二维码关注公众号,回复: 3616027 查看本文章
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

在这里插入图片描述
(5)使用您选择的placementpass创建一个Placement service用户

# openstack user create --domain default --password-prompt placement

在这里插入图片描述
(6)将Placement用户添加到服务项目中,并具有admin角色(无返回值)

# openstack role add --project service --user placement admin

(7)在服务目录中创建Place API入口

# openstack service create --name placement --description "Placement API" placement

在这里插入图片描述
(8)创建Placement API服务端点

# openstack endpoint create --region RegionOne placement public http://controller:8778
# openstack endpoint create --region RegionOne placement internal http://controller:8778
# openstack endpoint create --region RegionOne placement admin http://controller:8778

在这里插入图片描述

三、Controller—安装和配置组件

Controller节点

1.安装相关包

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

2.编辑/etc/nova/nova.conf文件

(1)在[DEFAULT]选项
只启用计算和元数据API
配置RabbitMQ消息队列访问
配置my_ip选项来使用控制器节点的管理接口IP地址
开启对网络服务的支持

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123456@controller
my_ip = 192.168.100.10
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

注:默认情况下,Compute使用内部防火墙驱动程序。因为网络服务包括一个防火墙驱动程序,所以您必须使用nova.virt.防火墙来禁用计算防火墙驱动程序。NoopFirewallDriver防火墙的司机。

(2)在[api_database]和[database]选项,配置数据库链接

[api_database]
connection = mysql+pymysql://nova:123456@controller/nova_api

[database]
connection = mysql+pymysql://nova:123456@controller/nova

(3)在[api]和[keystone_authtoken]选项,配置身份服务访问

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456

(4)在[vnc]选项,配置VNC代理来使用controller节点的管理接口IP地址

[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

(5)在[glance]选项,配置镜像服务的位置

[glance]
api_servers = http://controller:9292

(6)在[oslo_concurrency]选项,配置lock的路径

[oslo_concurrency]
locak_path = /var/lib/nova/tmp

(7)在[placement]选项,配置Placement API

[placement]
os_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 = 123456

(8)由于packaging bug, 你必须通过添加以下配置来启用通往放置API的权限

# vi /etc/httpd/conf.d/00-nova-placement-api.conf
<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

重启httpd服务

# systemctl restart httpd

(9) 同步nova-api数据库

# su -s /bin/sh -c "nova-manage api_db sync" nova

(10)注册cell0数据库
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
(11)创建cell1单元

# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

(12)同步nova数据库

# su -s /bin/sh -c "nova-manage db sync" nova

(13)验证nova cell0和cell1是否正确注册

# nova-manage cell_v2 list_cells

注:请忽略以上输出中的任何弃用消息。
在这里插入图片描述
(14)启动计算服务,并设置开机自启

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

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

Compute节点
本节描述如何在计算节点上安装和配置计算服务。该服务支持几个虚拟机监控程序部署实例或虚拟机(vm)。为了简单起见,这个配置使用Quick模拟器(QEMU)管理程序,在计算节点上使用基于内核的VM(KVM)扩展来支持虚拟机的硬件加速。在遗留硬件上,这种配置使用通用QEMU hypervisor。您可以按照这些指令进行一些细微的修改,以使用额外的计算节点水平地扩展您的环境。

四、Compute—安装配置

1.安装相关包

# yum install -y openstack-nova-compute
  1. 编辑/etc/nova/nova.conf 文件
    1)在[DEFAULT]选项,只启用计算和元数据API
    配置RabbitMQ消息队列访问
    配置my_ip选项
    启用对网络服务的支持

    [DEFAULT]
    enabled_apis = osapi_compute,metadata
    transport_url = rabbit://openstack:123456@controller
    my_ip = 192.168.100.20
    use_neutron = True
    firewall_driver = nova.virt.firewall.NoopFirewallDriver

2)在[api] 和 [keystone_authtoken] 选项,配置身份服务访问

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456

3)在[vnc]选项,启用和配置远程控制台访问

[vnc]
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

服务器组件监听所有IP地址,代理组件只监听计算节点的管理接口IP地址。基本URL指示你可以使用web浏览器访问这个计算节点上的实例远程控制台的位置。
如果要访问远程控制台的web浏览器驻留在无法解析controller主机名的主机上,则必须用controller节点的管理接口IP地址替换控制器。
4)在[glance]选项,配置镜像服务API的位置

[glance]
api_servers = http://controller:9292

5)在 [oslo_concurrency]选项,配置lock路径

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

6)在[placement] 选项,配置Placement API

[placement]
os_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
passsword = 123456

7)确定你的计算节点是否支持虚拟机的硬件加速:

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

如果这个命令返回一个或多个值,那么你的计算节点支持硬件加速,而硬件加速通常不需要额外的配置。
如果这个命令返回值为0,那么你的计算节点不支持硬件加速,您必须配置libvirt来使用QEMU而不是KVM。
编辑/etc/nova/nova.conf文件的 [libvirt] 选项

[libvirt]
Virt_type = qemu

:如果nova-compute服务不能启动,请查看/var/log/nova/nova-compute.log文件。Controller节点上的错误消息AMQP服务器:5672是不可访问的,这可能表明controller节点上的防火墙阻止了对端口5672的访问。配置防火墙,在controller节点上打开5672端口,并在compute节点上重新启动nova-compute服务。

Controller节点

1.获取admin凭证以启用admin-only CLI命令,然后确认数据库中有compute hosts

# . admin-openrc
# openstack compute service list --service nova-compute

在这里插入图片描述

2.发现compute hosts

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

在这里插入图片描述
注:当您添加新的compute节点时,您必须在controller节点上运行nova-manage cellv2发现主机来注册那些新的compute节点。或者,您可以在/etc/nova/nova.conf中设置一个适当的间隔:

[scheduler]
discover_hosts_in_cells_interval = 300

五、验证nova服务

controller节点

1.获取管理凭证以获得对admin-only CLI命令的访问:

# . admin-openrc

2.列出服务组件,以验证每个进程的成功启动和注册

# openstack compute service list

在这里插入图片描述
注:这个输出应该指出在控制器节点上启用的三个服务组件和在compute节点上启用的一个服务组件。
3. 在身份服务中列出API端点,以验证与身份服务的连接性

# openstack catalog list

在这里插入图片描述
:根据OpenStack组件的安装,下面的端点列表可能会有所不同。同时忽略这个输出中的任何警告。
4. 在Glance服务中列出镜像,以验证与Glance服务的连接

# openstack image list

在这里插入图片描述
5. 检查cells和placement API是否成功

# nova-status upgrade check

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40791253/article/details/83144087