zoukankan      html  css  js  c++  java
  • 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:123@192.168.88.101
    my_ip = 192.168.88.101
    use_neutron = true
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    
    [api_database]
    connection = mysql+pymysql://nova:123@192.168.88.101/nova_api
    
    [database]
    connection = mysql+pymysql://nova:123@192.168.88.101/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:123@192.168.88.101
    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的搭建

  • 相关阅读:
    mysql 从5.1升级到5.5.33 后 innodb 表出错 及 innodb表修复
    (未解决)在JSTL中,session 和 sessionScope 有什么区别 ??
    ubuntu 12.04安装redis2.6.16
    SOA,不看你永远不知道的事
    Failed to retrieve procctx from ht. constr
    CUSPARSE 第三章 CUSPARAE索引和数据格式
    yii框架网址解析问题
    以图搜图相关资料
    JMeter工具的使用-ForEach
    [cocos2d-x]针对不同的设备,选取不同的自适应图片
  • 原文地址:https://www.cnblogs.com/loganSxb/p/11401472.html
Copyright © 2011-2022 走看看