OpenStack(4)-nova服务部署

使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块用Python实现。

OpenStack Compute与OpenStack Identity进行身份验证,OpenStack Placement用于资源库存跟踪和选择,OpenStack Image服务用于磁盘和服务器映像,OpenStack Dashboard用于用户和管理界面。图像访问受项目和用户的限制; 配额是按项目限制的(例如,实例数)。OpenStack Compute可以在标准硬件上水平扩展,并将图像下载到启动实例。

https://docs.openstack.org/nova/stein/install/get-started-compute.html

对于nvoa的配置,我们需要从控制节点和计算节点两方面入手,接下来我们先对控制节点进行配置;

1.配置控制器节点,在安装和配置Compute服务之前,必须创建数据库,服务凭据和API端点;

mysql> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE nova;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE nova_cell0;
Query OK, 1 row affected (0.00 sec)

mysql> 

2.对刚才创建的数据库进行授权;

mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.09 sec)

mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
    ->   IDENTIFIED BY '123';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> 

3.创建nova用户;(确保自己为admin身份)

[root@sxb1 ~]# openstack user create --domain default --password-prompt nova
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | ea12de2bc5dc4771bead156e5eb1285a |
| name                | nova                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

4.将nova用户指定为admin角色;

[root@sxb1 ~]# openstack role add --project service --user nova admin

5.创建nova服务;

[root@sxb1 ~]# openstack service create --name nova \
>   --description "OpenStack Compute" compute

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 9764c1dc1ae942d3ad34ccfd6c7f25cf |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

6.创建相关api(public、internal、admin)

[root@sxb1 ~]# openstack endpoint create --region RegionOne   compute public http://192.168.88.101:8774/v2.1^C
[root@sxb1 ~]# openstack endpoint create --region RegionOne   compute internal http://192.168.88.101:8774/v2.1^C
[root@sxb1 ~]# openstack endpoint create --region RegionOne   compute admin http://192.168.88.101:8774/v2.1^C

7.安装nova相关软件;

yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-novncproxy openstack-nova-scheduler

8.编辑nova配置文件;

[root@sxb1 ~]# vim /etc/nova/nova.conf 

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:[email protected]
my_ip = 192.168.88.101
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api_database]
connection = mysql+pymysql://nova:[email protected]/nova_api

[database]
connection = mysql+pymysql://nova:[email protected]/nova

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_url = http://192.168.88.101:5000/v3
memcached_servers = 192.168.88.101:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123

9.配置nova,neutron部分;

[root@sxb1 ~]# vim /etc/nova/nova.conf 

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

[glance]
api_servers = http://192.168.88.101: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://192.168.88.101:5000/v3
username = placement
password = 123

10.初始化nova.api数据库;

[root@sxb1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova

11.注册cell0数据库;

[root@sxb1 ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

12.创建一个cell1单元格;

[root@sxb1 ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
7f435e95-2ab0-41d6-a233-cf5f55c3375c

13.初始化nova数据库;(在这期间可能会出现一些warning的信息,请忽略;)

[root@sxb1 ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

14.验证nova cell0和cell1是否正确注册

[root@sxb1 ~]# 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:****@192.168.88.101/nova_cell0 |  False   |
| cell1 | 7f435e95-2ab0-41d6-a233-cf5f55c3375c | rabbit://openstack:****@192.168.88.101 |    mysql+pymysql://nova:****@192.168.88.101/nova    |  False   |
+-------+--------------------------------------+----------------------------------------+-----------------------------------------------------+----------+

15.启动Compute服务并将其配置为在系统引导时启动(可以使用status查看服务状态,如有未启动服务,需要进行解决)

[root@sxb1 ~]# systemctl enable openstack-nova-api.service openstack-nova-scheduler.service   openstack-nova-conductor.service openstack-nova-novncproxy.service

[root@sxb1 ~]# systemctl start openstack-nova-api.service openstack-nova-scheduler.service   openstack-nova-conductor.service openstack-nova-novncproxy.service

到这里我们的控制器节点的nova就算配置完成了,接下来我们进行计算节点nova的配置;

1.在计算节点安装软件;

yum install openstack-nova-compute

2.编辑计算节点nova配置文件;

[root@sxb2 ~]# vim /etc/nova/nova.conf 

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:[email protected]
my_ip = 192.168.88.102  #填写自己主机IP
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]
auth_strategy = keystone

[keystone_authtoken]
auth_url = http://192.168.88.101:5000/v3
memcached_servers = 192.168.88.101:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123

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

[glance]
api_servers = http://192.168.88.101: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://192.168.88.101:5000/v3
username = placement
password = 123

3.确定您的计算节点是否支持虚拟机的硬件加速;(0表示不支持,1、2表示支持)

可以关闭虚拟机,在设置>处理器>开启虚拟化>启动虚拟机

[root@sxb2 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
1

4.编辑文件中[libvirt]部分;

[root@sxb2 ~]# vim /etc/nova/nova.conf

[libvirt]
virt_type = qemu

5.启动Compute服务及其依赖项,并将它们配置为在系统引导时自动启动、查看服务状态;

[root@sxb2 ~]# systemctl enable libvirtd.service openstack-nova-compute.service

[root@sxb2 ~]# systemctl start libvirtd.service openstack-nova-compute.service

[root@sxb2 ~]# systemctl status libvirtd.service openstack-nova-compute.service

我们回到控制器节点进行验证;

1.获取管理员凭据以启用仅管理员CLI命令,然后确认数据库中是否存在计算主机;(确保以admin身份运行)

[root@sxb1 ~]# . admin-openrc 
[root@sxb1 ~]# openstack compute service list --service nova-compute
+----+--------------+--------------+------+---------+-------+----------------------------+
| ID | Binary       | Host         | Zone | Status  | State | Updated At                 |
+----+--------------+--------------+------+---------+-------+----------------------------+
|  5 | nova-compute | sxb2.102.com | nova | enabled | up    | 2019-08-27T14:40:26.000000 |
+----+--------------+--------------+------+---------+-------+----------------------------+

2.发现计算主机;

[root@sxb1 ~]# 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': 7f435e95-2ab0-41d6-a233-cf5f55c3375c
Checking host mapping for compute host 'sxb2.102.com': becdce24-e21f-4c35-bca3-88cf6063a5ee
Creating host mapping for compute host 'sxb2.102.com': becdce24-e21f-4c35-bca3-88cf6063a5ee
Found 1 unmapped computes in cell: 7f435e95-2ab0-41d6-a233-cf5f55c3375c

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

[root@sxb1 ~]# openstack compute service list
+----+----------------+--------------+----------+---------+-------+----------------------------+
| ID | Binary         | Host         | Zone     | Status  | State | Updated At                 |
+----+----------------+--------------+----------+---------+-------+----------------------------+
|  1 | nova-conductor | sxb1.101.com | internal | enabled | up    | 2019-08-27T14:44:25.000000 |
|  2 | nova-scheduler | sxb1.101.com | internal | enabled | up    | 2019-08-27T14:44:25.000000 |
|  5 | nova-compute   | sxb2.102.com | nova     | enabled | up    | 2019-08-27T14:44:26.000000 |
+----+----------------+--------------+----------+---------+-------+----------------------------+
[root@sxb1 ~]# openstack catalog list

+-----------+-----------+---------------------------------------------+
| Name      | Type      | Endpoints                                   |
+-----------+-----------+---------------------------------------------+
| glance    | image     | RegionOne                                   |
|           |           |   admin: http://192.168.88.101:9292         |
|           |           | RegionOne                                   |
|           |           |   internal: http://192.168.88.101:9292      |
|           |           | RegionOne                                   |
|           |           |   public: http://192.168.88.101:9292        |
|           |           |                                             |
| nova      | compute   | RegionOne                                   |
|           |           |   admin: http://192.168.88.101:8774/v2.1    |
|           |           | RegionOne                                   |
|           |           |   internal: http://192.168.88.101:8774/v2.1 |
|           |           | RegionOne                                   |
|           |           |   public: http://192.168.88.101:8774/v2.1   |
|           |           |                                             |
| keystone  | identity  | RegionOne                                   |
|           |           |   admin: http://192.168.88.101:5000/v3/     |
|           |           | RegionOne                                   |
|           |           |   internal: http://192.168.88.101:5000/v3/  |
|           |           | RegionOne                                   |
|           |           |   public: http://192.168.88.101:5000/v3/    |
|           |           |                                             |
| placement | placement | RegionOne                                   |
|           |           |   internal: http://192.168.88.101:8778      |
|           |           | RegionOne                                   |
|           |           |   public: http://192.168.88.101:8778        |
|           |           | RegionOne                                   |
|           |           |   admin: http://192.168.88.101:8778         |
|           |           |                                             |
+-----------+-----------+---------------------------------------------+

4.列出Image服务中的图像以验证与Image服务的连接;(在之前我们下载了一个测试镜像)

[root@sxb1 ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 939c5ec7-c8b1-487f-b817-607b874998a0 | cirros | active |
+--------------------------------------+--------+--------+

5.检查单元格和放置API是否正常运行以及其他必要的先决条件是否到位;

[root@sxb1 ~]# nova-status upgrade check
+--------------------------------+
| Upgrade Check Results          |
+--------------------------------+
| Check: Cells v2                |
| Result: Success                |
| Details: None                  |
+--------------------------------+
| Check: Placement API           |
| Result: Success                |
| Details: None                  |
+--------------------------------+
| Check: Ironic Flavor Migration |
| Result: Success                |
| Details: None                  |
+--------------------------------+
| Check: Request Spec Migration  |
| Result: Success                |
| Details: None                  |
+--------------------------------+
| Check: Console Auths           |
| Result: Success                |
| Details: None                  |
+--------------------------------+

到这里我们的nova接搭建完成了,下一章我们进行对Networking service-neutron的搭建

猜你喜欢

转载自www.cnblogs.com/loganSxb/p/11401472.html