云计算|OpenStack|社区版OpenStack安装部署文档(五 --- 计算服务nova安装部署---Rocky版)

news2024/12/24 0:00:03

前言:

nova服务是openstack最重要的一个组件,没有之一,该组件是云计算的计算核心,大体组件如下:

OpenStack Docs: Compute service overview

挑些重点,nova-api,libvirt,nova-placement-api,nova-api-metadata,nova-compute

nova-api service
Accepts and responds to end user compute API calls. The service supports the OpenStack Compute API. It enforces some policies and initiates most orchestration activities, such as running an instance.
nova-api-metadata service
Accepts metadata requests from instances. The nova-api-metadata service is generally used when you run in multi-host mode with nova-network installations. For details, see Metadata service in the Compute Administrator Guide.
nova-compute service
A worker daemon that creates and terminates virtual machine instances through hypervisor APIs. For example:

XenAPI for XenServer/XCP
libvirt for KVM or QEMU
VMwareAPI for VMware
Processing is fairly complex. Basically, the daemon accepts actions from the queue and performs a series of system commands such as launching a KVM instance and updating its state in the database.

nova-placement-api service
Tracks the inventory and usage of each provider. For details, see Placement API.
nova-scheduler service
Takes a virtual machine instance request from the queue and determines on which compute server host it runs.
nova-conductor module
Mediates interactions between the nova-compute service and the database. It eliminates direct accesses to the cloud database made by the nova-compute service. The nova-conductor module scales horizontally. However, do not deploy it on nodes where the nova-compute service runs. For more information, see the conductor section in the Configuration Options.
nova-consoleauth daemon
Authorizes tokens for users that console proxies provide. See nova-novncproxy and nova-xvpvncproxy. This service must be running for console proxies to work. You can run proxies of either type against a single nova-consoleauth service in a cluster configuration. For information, see About nova-consoleauth.

 Deprecated since version 18.0.0: nova-consoleauth is deprecated since 18.0.0 (Rocky) and will be removed in an upcoming release. See workarounds.enable_consoleauth for details.

nova-novncproxy daemon
Provides a proxy for accessing running instances through a VNC connection. Supports browser-based novnc clients.
nova-spicehtml5proxy daemon
Provides a proxy for accessing running instances through a SPICE connection. Supports browser-based HTML5 client.
nova-xvpvncproxy daemon
Provides a proxy for accessing running instances through a VNC connection. Supports an OpenStack-specific Java client.
The queue
A central hub for passing messages between daemons. Usually implemented with RabbitMQ, also can be implemented with another AMQP message queue, such as ZeroMQ

并且nova安装部署是分为controller节点和computer节点了,controller节点就一个,computer节点可以是若干个,总体来说,nova的安装部署难度是比keystone,glance大很多的,因为涉及的组件更加的多了,也有节点的加入这些因素。

OK,下面开始controller节点的nova部署。

一,

官方文档:OpenStack Docs: Install and configure controller node for Red Hat Enterprise Linux and CentOS

创建数据库、服务凭据和API端点

本例中是在192.168.123.130服务器上操作,该服务器的主机名是openstack1

1)

数据库的创建,SQL语句如下;

注意,密码都是和数据库库名一样的哦

CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
CREATE DATABASE placement;

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';

GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'placement';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement';

flush privileges;

2)

在keystone上面注册nova服务

#在keystone上创建nova用户
openstack user create --domain default --password=nova nova
#输出如下:
[root@openstack1 ~]# openstack user create --domain default --password=nova nova
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 013b5c3530a144628fedabd7a158b08f |
| name                | nova                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

#在keystone上将nova用户配置为admin角色并添加进service项目
openstack role add --project service --user nova admin
#注:此命令无输出

3)创建nova计算服务的实体

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

输出如下:

[root@openstack1 ~]# openstack service create --name nova --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 83721cda2dd94e8bbfad43e34657a6da |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

4)

创建nova-api的检查点

openstack endpoint create --region RegionOne compute public http://openstack1:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://openstack1:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://openstack1:8774/v2.1

5)

在keystone上注册placement的用户和service

注意,这里的密码是placement

openstack user create --domain default --password=placement placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement

6)

创建placement服务的检查点:

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

整体查询一下,service和endpoint:

4个service,12个endpoint

[root@openstack1 ~]# openstack service list
+----------------------------------+-----------+-----------+
| ID                               | Name      | Type      |
+----------------------------------+-----------+-----------+
| 629d817aa28d4579b08663529efc63e4 | placement | placement |
| 7aa0d862c3dc4ae884e7f02551b07630 | glance    | image     |
| 83721cda2dd94e8bbfad43e34657a6da | nova      | compute   |
| c187cea7ed9c46668a229a3278b1e434 | keystone  | identity  |
+----------------------------------+-----------+-----------+
[root@openstack1 ~]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                         |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+
| 010363cc3b224811ab1c45d67f56d475 | RegionOne | placement    | placement    | True    | public    | http://openstack1:8778      |
| 09b682984f4d446b9624de291b27ba43 | RegionOne | keystone     | identity     | True    | internal  | http://openstack1:5000/v3/  |
| 168e152a5ecd471183d5772b0d582039 | RegionOne | glance       | image        | True    | public    | http://openstack1:9292      |
| 1d267eb74ab245958730f80b75c1abf3 | RegionOne | nova         | compute      | True    | internal  | http://openstack1:8774/v2.1 |
| 4cbde990b9ac4e5d8cb58ecea6591361 | RegionOne | placement    | placement    | True    | admin     | http://openstack1:8778      |
| 632410fddc98491496f54d93a9d13a96 | RegionOne | keystone     | identity     | True    | public    | http://openstack1:5000/v3/  |
| 63cf103027204a5d845c9da6a08f36e0 | RegionOne | nova         | compute      | True    | public    | http://openstack1:8774/v2.1 |
| 8bbfa274e32f4a069b172976a0e209e4 | RegionOne | placement    | placement    | True    | internal  | http://openstack1:8778      |
| 9f46fdd5d8a7498d8a12b047f21095ab | RegionOne | glance       | image        | True    | admin     | http://openstack1:9292      |
| a3610b51395e49d8898463136d24cec3 | RegionOne | nova         | compute      | True    | admin     | http://openstack1:8774/v2.1 |
| a57efb7be1664e9bae2ad823bef3ea5a | RegionOne | glance       | image        | True    | internal  | http://openstack1:9292      |
| a9e0562e0f5241b49c9106dadcf88db7 | RegionOne | keystone     | identity     | True    | admin     | http://openstack1:5000/v3/  |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------+

二,

安装nova服务和配置文件的修改

1,

nova的yum安装:

六个服务

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

2,

快速修改配置文件

#这里在强调一次,rabbitmq的密码是RABBIT_PASS,主机名是openstack1,而不是官网文档里的controller

# 默认情况下,计算服务使用内置的防火墙服务。由于网络服务包含了防火墙服务,必须使用``nova.virt.firewall.NoopFirewallDriver``防火墙服务来禁用掉计算服务内置的防火墙服务(第四行的内容)

openstack-config --set  /etc/nova/nova.conf DEFAULT enabled_apis  osapi_compute,metadata
openstack-config --set  /etc/nova/nova.conf DEFAULT my_ip 192.168.123.130
openstack-config --set  /etc/nova/nova.conf DEFAULT use_neutron  true 
openstack-config --set  /etc/nova/nova.conf DEFAULT firewall_driver  nova.virt.firewall.NoopFirewallDriver
openstack-config --set  /etc/nova/nova.conf DEFAULT transport_url  rabbit://openstack:RABBIT_PASS@openstack1
openstack-config --set  /etc/nova/nova.conf api_database connection  mysql+pymysql://nova:nova@openstack1/nova_api
openstack-config --set  /etc/nova/nova.conf database connection  mysql+pymysql://nova:nova@openstack1/nova
openstack-config --set  /etc/nova/nova.conf placement_database connection  mysql+pymysql://placement:placement@openstack1/placement
openstack-config --set  /etc/nova/nova.conf api auth_strategy  keystone 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_url  http://openstack1:5000/v3
openstack-config --set  /etc/nova/nova.conf keystone_authtoken memcached_servers  openstack1:11211
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_type  password
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_domain_name  default 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken user_domain_name  default
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_name  service 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken username  nova 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken password  nova
openstack-config --set  /etc/nova/nova.conf vnc enabled true
openstack-config --set  /etc/nova/nova.conf vnc server_listen '$my_ip'
openstack-config --set  /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set  /etc/nova/nova.conf glance api_servers  http://openstack1:9292
openstack-config --set  /etc/nova/nova.conf oslo_concurrency lock_path  /var/lib/nova/tmp 
openstack-config --set  /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set  /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement project_name service
openstack-config --set  /etc/nova/nova.conf placement auth_type password
openstack-config --set  /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement auth_url http://openstack1:5000/v3
openstack-config --set  /etc/nova/nova.conf placement username placement
openstack-config --set  /etc/nova/nova.conf placement password placement
openstack-config --set  /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300

配置文件的修改具体内容如下:

[root@openstack1 ~]# grep '^[a-z]' /etc/nova/nova.conf 
enabled_apis = osapi_compute,metadata
my_ip = 192.168.123.130
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
transport_url = rabbit://openstack:RABBIT_PASS@openstack1
auth_strategy = keystone
connection = mysql+pymysql://nova:nova@openstack1/nova_api
connection = mysql+pymysql://nova:nova@openstack1/nova
api_servers = http://openstack1:9292
auth_url = http://openstack1:5000/v3
memcached_servers = openstack1:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
lock_path = /var/lib/nova/tmp
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://openstack1:5000/v3
username = placement
password = placement
connection = mysql+pymysql://placement:placement@openstack1/placement
discover_hosts_in_cells_interval = 300
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

3,

由于某个包的bug,需要修改虚拟主机的配置文件,增加如下内容:

vim /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

查看端口8778,可以发现表示正常:

root@openstack1 ~]# netstat -antup |grep 8778
tcp6       0      0 :::8778                 :::*                    LISTEN      5522/httpd          

4)

数据库创建相关工作表

# nova_api有32张表,placement有32张表,nova_cell0有110张表,nova也有110张表

填充nova-api and placement databases

su -s /bin/sh -c "nova-manage api_db sync" nova
#注,此命令无输出,因此,请用echo $?查看是否正常执行

注册cell0 database

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
#注,此命令无输出,因此,请用echo $?查看是否正常执行

创建cell1 cell单元格

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
#注,此命令有输出,本例是d8257cfe-e583-474c-b97c-03de5eba2b0e

填充nova这个数据库:

su -s /bin/sh -c "nova-manage db sync" nova
#注,此命令有输出,会有警告,但警告可忽略。因此,请用echo $?查看是否正常执行
#警告内容如下:/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release.')
  result = self._query(query)
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release.')
  result = self._query(query)

确认nova cell0 and cell1 是否正确注册:

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
#输出如下表示正确
[root@openstack1 ~]# su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+
|  Name |                 UUID                 |           Transport URL            |               Database Connection               | Disabled |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+
| cell0 | 00000000-0000-0000-0000-000000000000 |               none:/               | mysql+pymysql://nova:****@openstack1/nova_cell0 |  False   |
| cell1 | d8257cfe-e583-474c-b97c-03de5eba2b0e | rabbit://openstack:****@openstack1 |    mysql+pymysql://nova:****@openstack1/nova    |  False   |
+-------+--------------------------------------+------------------------------------+-------------------------------------------------+----------+

查询数据库的表的数目是否正确(两个110,两个32):

[root@openstack1 ~]# mysql -h192.168.123.130 -unova -pnova -e "use nova;show tables;" |wc -l
111
[root@openstack1 ~]# mysql -h192.168.123.130 -unova -pnova -e "use nova_cell0;show tables;" |wc -l
111
[root@openstack1 ~]# mysql -h192.168.123.130 -unova -pnova -e "use nova_api;show tables;" |wc -l
33
[root@openstack1 ~]# mysql -h192.168.123.130 -uplacement -pplacement -e "use placement;show tables;" |wc -l
33

三,

控制节点的nova相关服务的启动和加入自启:

但是,这里是只有5个服务,前面yum安装的是6个,是怎么回事呢?

nova-consoleauth自18.0.0 (Rocky)起已被弃用,并将在即将发布的版本中删除。因此,全新安装的时候,此服务不需要启动。

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

OK,查看服务状态,确认服务都正常启动后控制节点的nova就安装完毕了,下面将在computer节点安装nova




192.168.123.131服务器上安装部署nova,此节点是computer节点,也就是说libvirt,qemu-kvm等等软件都是安装在此节点上的

基本环境搭建和controller是一致的,具体搭建过程见:云计算|OpenStack|社区版OpenStack安装部署文档(二---OpenStack运行环境搭建)_晚风_END的博客-CSDN博客

1,

yum安装nova-computer

yum install openstack-nova-compute python-openstackclient openstack-utils -y

这些虚拟软件是以扩展的形式安装的 

2,

快速修改配置文件(/etc/nova/nova.conf) 

第一个IP地址是131,其它的仍然是使用openstack1这个主机名,例如,rabbitmq,这个服务是部署在130上的。

openstack-config --set  /etc/nova/nova.conf DEFAULT my_ip 192.168.123.131
openstack-config --set  /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set  /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set  /etc/nova/nova.conf DEFAULT enabled_apis  osapi_compute,metadata
openstack-config --set  /etc/nova/nova.conf DEFAULT transport_url  rabbit://openstack:RABBIT_PASS@openstack1
openstack-config --set  /etc/nova/nova.conf api auth_strategy  keystone 
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_url http://openstack1:5000/v3
openstack-config --set  /etc/nova/nova.conf keystone_authtoken memcached_servers openstack1:11211
openstack-config --set  /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set  /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set  /etc/nova/nova.conf keystone_authtoken project_name  service
openstack-config --set  /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set  /etc/nova/nova.conf keystone_authtoken password nova
openstack-config --set  /etc/nova/nova.conf vnc enabled True
openstack-config --set  /etc/nova/nova.conf vnc server_listen 0.0.0.0
openstack-config --set  /etc/nova/nova.conf vnc server_proxyclient_address  '$my_ip'
openstack-config --set  /etc/nova/nova.conf vnc novncproxy_base_url  http://openstack1:6080/vnc_auto.html
openstack-config --set  /etc/nova/nova.conf glance api_servers http://openstack1:9292
openstack-config --set  /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set  /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set  /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement project_name service
openstack-config --set  /etc/nova/nova.conf placement auth_type password
openstack-config --set  /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set  /etc/nova/nova.conf placement auth_url http://openstack1:5000/v3
openstack-config --set  /etc/nova/nova.conf placement username placement
openstack-config --set  /etc/nova/nova.conf placement password placement

具体的内容如下;

ain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
lock_path = /var/lib/nova/tmp
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://openstack1:5000/v3
username = placement
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://openstack1:6080/vnc_auto.html

3,

启动nova相关服务,并配置为开机自启动

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

4,

将计算节点增加到cell数据库

Important

Run the following commands on the controller node. 也就是在130服务器上运行以下命令:

获取管理员凭据以启用仅限管理员的CLI命令,然后确认数据库中有计算主机:

openstack compute service list --service nova-compute
#输出如下,表示发现了computer节点
[root@openstack1 ~]# openstack compute service list --service nova-compute
+----+--------------+------------+------+---------+-------+----------------------------+
| ID | Binary       | Host       | Zone | Status  | State | Updated At                 |
+----+--------------+------------+------+---------+-------+----------------------------+
| 10 | nova-compute | openstack2 | nova | enabled | up    | 2023-02-01T06:42:35.000000 |
+----+--------------+------------+------+---------+-------+----------------------------+

5,

手动注册computer节点单元格信息到nvoa数据库内:

[root@openstack1 ~]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#输出如下:
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting computes from cell 'cell1': d8257cfe-e583-474c-b97c-03de5eba2b0e
Found 0 unmapped computes in cell: d8257cfe-e583-474c-b97c-03de5eba2b0e

6,

验证nova服务是否正确安装(仍然是在130controller节点操作)

openstack compute service list
#输出如下:
可以看到三个服务在130上,一个computer在131也就是openstack2上面
[root@openstack1 ~]# openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| ID | Binary           | Host       | Zone     | Status  | State | Updated At                 |
+----+------------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-consoleauth | openstack1 | internal | enabled | up    | 2023-02-01T06:47:42.000000 |
|  2 | nova-scheduler   | openstack1 | internal | enabled | up    | 2023-02-01T06:47:48.000000 |
|  6 | nova-conductor   | openstack1 | internal | enabled | up    | 2023-02-01T06:47:44.000000 |
| 10 | nova-compute     | openstack2 | nova     | enabled | up    | 2023-02-01T06:47:45.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+

在身份认证服务中列出API端点以验证其连接性 

openstack catalog list
#输出如下:
可以看到四个服务,每个服务有三个检查点
[root@openstack1 ~]# openstack catalog list
+-----------+-----------+-----------------------------------------+
| Name      | Type      | Endpoints                               |
+-----------+-----------+-----------------------------------------+
| placement | placement | RegionOne                               |
|           |           |   public: http://openstack1:8778        |
|           |           | RegionOne                               |
|           |           |   admin: http://openstack1:8778         |
|           |           | RegionOne                               |
|           |           |   internal: http://openstack1:8778      |
|           |           |                                         |
| glance    | image     | RegionOne                               |
|           |           |   public: http://openstack1:9292        |
|           |           | RegionOne                               |
|           |           |   admin: http://openstack1:9292         |
|           |           | RegionOne                               |
|           |           |   internal: http://openstack1:9292      |
|           |           |                                         |
| nova      | compute   | RegionOne                               |
|           |           |   internal: http://openstack1:8774/v2.1 |
|           |           | RegionOne                               |
|           |           |   public: http://openstack1:8774/v2.1   |
|           |           | RegionOne                               |
|           |           |   admin: http://openstack1:8774/v2.1    |
|           |           |                                         |
| keystone  | identity  | RegionOne                               |
|           |           |   internal: http://openstack1:5000/v3/  |
|           |           | RegionOne                               |
|           |           |   public: http://openstack1:5000/v3/    |
|           |           | RegionOne                               |
|           |           |   admin: http://openstack1:5000/v3/     |
|           |           |                                         |
+-----------+-----------+-----------------------------------------+

检查placement API和cell服务是否正常工作

nova-status upgrade check
#输出如下,全是success即可:
root@openstack1 ~]# nova-status upgrade check
+-------------------------------------------------------------------+
| Upgrade Check Results                                             |
+-------------------------------------------------------------------+
| Check: Cells v2                                                   |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+
| Check: Placement API                                              |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+
| Check: Resource Providers                                         |
| Result: Warning                                                   |
| Details: There are no compute resource providers in the Placement |
|   service but there are 1 compute nodes in the deployment.        |
|   This means no compute nodes are reporting into the              |
|   Placement service and need to be upgraded and/or fixed.         |
|   See                                                             |
|   https://docs.openstack.org/nova/latest/user/placement.html      |
|   for more details.                                               |
+-------------------------------------------------------------------+
| Check: Ironic Flavor Migration                                    |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+
| Check: API Service Version                                        |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+
| Check: Request Spec Migration                                     |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+
| Check: Console Auths                                              |
| Result: Success                                                   |
| Details: None                                                     |
+-------------------------------------------------------------------+

OK,双节点的nova就安装配置完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最小生成树与最短路径

目录 一.最小生成树 1.1概念 1.2Kruskal算法 1.3Prim算法 二.最短路径 2.11单源最短路径--Dijkstra算法 2.1.2单源最短路径--Bellman-Ford算法 一.最小生成树 1.1概念 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去…

虹科分享|论企业网络安全的重要性

拥有有效的企业网络安全不仅仅是让你的员工创建一个不是他们宠物名字的密码--除非他们的猫的名字至少有12个字符长&#xff0c;由大小写字母和符号组成。无论是经过充分研究的鱼叉式钓鱼尝试&#xff0c;还是绕过MFA&#xff0c;威胁者都变得更加大胆。随着全球各行业数据泄露事…

判断是否为平衡树

对二叉树有困惑的小伙伴可以看一下我之前的文章&#xff1a;二叉树&#xff08;一&#xff09;_染柒_GRQ的博客-CSDN博客二叉树&#xff08;二&#xff09;_染柒_GRQ的博客-CSDN博客二叉树&#xff08;三&#xff09;_染柒_GRQ的博客-CSDN博客点击上方链接即可查看。题目110. 平…

Ext2explore查看ext2/ext3/ext4 file

比如想查看Android system.img&#xff0c;file看起来是ext2文件&#xff0c;file system.img system.img: Linux rev 1.0 ext2 filesystem data, UUID49e89c77-3dc4-553f-a392-7d11ff348228 (extents) (large files) (huge files)2、windows下怎么看呢&#xff0c;Ext2explore…

Springboot——常用注解及实例

一、常用注解解释&#xff1a;ConfigurationBeanResourceSpringBootApplicationRestControllerRestController 注解包含了原来的 Controller 和 ResponseBody 注解&#xff0c;使用过 Spring 的朋友对 Controller 注解已经非常了解了&#xff0c;这里不再赘述&#xff0c; Resp…

【BSV应用范例】区块链上的自我主权身份

发表时间&#xff1a;2022年6月27日 信息来源&#xff1a;bsvblockchain.org 自我主权身份&#xff08;SSI&#xff09;只是一个空想吗&#xff1f; &#xff08;全球区块链组织联合创始人&#xff09;Jorge Sebastio对此表示&#xff1a;“并非如此&#xff01;” 更重要的是…

OS 学习笔记(7) 虚拟机

OS 学习笔记(7) 虚拟机 这篇笔记对应的王道OS 1.6 虚拟机&#xff0c;同时参考了 《Operating System Concepts, Ninth Edition》和 俗称ostep的《 Operating Systems: Three Easy Pieces》还有 《Operating Systems: Principles and Practice》 文章目录OS 学习笔记(7) 虚拟机…

软件测试之Android单元测试

根据维基百科的解释&#xff0c;单元测试又称为模块测试。是针对程序单元来进行正确性校验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中&#xff0c;一个单元就是单个程序&#xff0c;函数&#xff0c;过程等&#xff0c;对于面向对象编程&#xff0c;最小单元…

STL——string类

一、标准库中的string类 1.string类文档介绍 &#xff08;1&#xff09;字符串是表示字符序列的类。 &#xff08;2&#xff09;标准的字符串类提供了对此类对象的支持&#xff0c;其接口类似于标准字符容器的接口&#xff0c;但添加了专门用于操作单字节字符字符串的设计特…

IOS逆向--恢复Dyld的内存加载方式

之前我们一直在使用由dyld及其NSCreateObjectFileImageFromMemory/NSLinkModule API方法所提供的Mach-O捆绑包的内存加载方式。虽然这些方法我们今天仍然还在使用&#xff0c;但是这个工具较以往有一个很大的区别…现在很多模块都被持久化到了硬盘上。 roguesys 在 2022 年 2 …

还在用 OpenFeign?来试试 SpringBoot3 中的这个新玩意!

好久没发技术文章了&#xff0c;最近回到工作地&#xff0c;晚上有空又可以码码技术了&#xff0c;今天我们就来聊一个 Spring Boot3 中的新鲜玩意&#xff0c;声明式 HTTP 调用。 1. 由来 Spring Boot3 去年底就已经正式发布&#xff0c;我也尝了一把鲜&#xff0c;最近有空…

(02)Cartographer源码无死角解析-(53) 2D后端优化→位姿图优化理论(SPA)讲解、核型函数调用流程

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…

Docker镜像部署至Rancher全局配置 以xxl-job-admin为例

流程以xxl-job-admin为例 1.基础环境 win/mac/linuxRancherDocker 2.下载源码 从Github上下载xxl-job xxl-jobGithub xxl-job官方地址 3.修改源码 打开 xxl-job 下的 xxl-job-admin 修改 application-properties 文件 修改数据库 修改为这种格式&#xff1a; 大括号包…

MPLS实验

目录实验要求mpls简介mpls工作过程实验的配置环回的配置R1和R5之间公网的ospf配置配置mpls-ldp配置R1和R5间的mplsvpn私网的rip及ospf的宣告配置公网mp-bgp的建立R2和R4上面的双向重发布R7和R8之间创建R7和R8间的mplsvpn配置静态路由及环回重发布实验要求 如图 要求&#xff1…

【C++修炼之路】15.C++继承

每一个不曾起舞的日子都是对生命的辜负 继承C继承一. 继承的概念及定义1.1 继承的引出1.2 继承的概念1.3 继承的定义二.基类和派生类对象赋值转换三.继承中的作用域3.1 作用域的概念3.2 举例说明同名冲突四.派生类的默认成员函数4.1 派生类的构造函数4.2 派生类的拷贝构造函数4…

【python学习笔记】:数据科学库操作(二)

接上一篇&#xff1a; 4、PIL Python Imaging Library(PIL) 已经成为 Python 事实上的图像处理标准库了&#xff0c;这是由于&#xff0c;PIL 功能非常强大&#xff0c;但API却非常简单易用。但是由于PIL仅支持到 Python 2.7&#xff0c;再加上年久失修&#xff0c;于是一群志…

如果写不好 SQL,有没有好用的报表软件?

业务和技术在做报表这件事情上&#xff0c;究竟有多大差别&#xff1f; 一家企业、一个组织&#xff0c;只要一直在经营和运作&#xff0c;因为税务和其他原因就需要通过数据报表来反映当期的经营管理状况。而“做报表”这个事情&#xff0c;在企业内部不管是业务人员还是技术人…

HTTP之Referrer和Referrer-policy

目录 HTTP之Referrer和Referrer-policy Referer Referrer-policy 如何设置referrer 盗链 防盗链的工作原理 绕过图片防盗链 利用https网站盗链http资源网站&#xff0c;refer不会发送 设置meta 设置referrerpolicy"no-referrer" 利用iframe伪造请求refe…

C语言指针变量的运算

指针变量保存的是地址&#xff0c;而地址本质上是一个整数&#xff0c;所以指针变量可以进行部分运算&#xff0c;例如加法、减法、比较等&#xff0c;请看下面的代码&#xff1a;#include<stdio.h>intmain(){ int a 10,*pa &a,*paa &a; double b 99.9,*pb &a…

JTAG和SWD调试器

文章目录一、调试器二、JTAG三、SWD三、各自优缺点一、调试器 当我们开发单片机程序时&#xff0c;通常是在Windows或Linux上进行代码编写和编译&#xff0c;但是单片机并不直接集成在电脑上&#xff0c;怎么验证我们的单片机程序是否正确并烧录到单片机中&#xff0c;此时就需…