温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenStack stein安装(五)nova on controller

发布时间:2020-08-14 04:00:52 来源:网络 阅读:561 作者:zhaolinew 栏目:系统运维

  用OpenStack计算来托管和管理云计算系统。OpenStack计算是基础设施即服务(IaaS)系统的重要组成部分。主要模块是用Python实现的。
  OpenStack计算与OpenStack标识进行交互,用于身份验证,用于资源目录跟踪和选择的OpenStack放置,用于磁盘和服务器映像的OpenStack映像服务,以及用于用户和管理界面的OpenStack仪表板。图像访问受到项目和用户的限制;每个项目的配额是有限的(例如,实例的数量)。OpenStack计算可以在标准硬件上水平伸缩,并下载映像来启动实例。
  OpenStack计算包括以下组件:

  • nova-api service
    接受并响应最终用户compute API调用。该服务支持OpenStack计算API。它执行一些策略并启动大多数编排活动,例如运行一个实例。
  • nova-api-metadata service
    接受来自实例的元数据请求。在使用nova-network安装以多主机模式运行时,通常使用nova-api-metadata服务。
  • nova-compute service
    一个工作守护进程,它通过管理程序api创建和终止虚拟机实例。例如:
    • XenAPI for XenServer/XCP
    • libvirt for KVM or QEMU
    • VMwareAPI for VMware
      处理相当复杂。基本上,守护进程接受队列中的操作并执行一系列系统命令,比如启动一个KVM实例并更新它在数据库中的状态.
  • nova-scheduler service
    从队列中获取一个虚拟机实例请求,并确定它运行在哪个计算服务器主机上。
  • nova-conductor module
    协调nova-compute服务和数据库之间的交互。它消除了nova-compute服务对云数据库的直接访问。nova-conductor模块水平伸缩。但是,不要在运行nova-compute服务的节点上部署它。
  • nova-consoleauth daemon
    为控制台代理提供的用户授权令牌。参见nova-novncproxy和nova-xvpvncproxy。要使控制台代理工作,必须运行此服务。您可以对集群配置中的单个nova-consoleauth服务运行这两种类型的代理。
  • nova-novncproxy daemon
    提供一个代理,用于通过VNC连接访问正在运行的实例。支持基于浏览器的novnc客户端。
  • nova-spicehtml5proxy daemon
    提供一个代理,用于通过SPICE连接访问正在运行的实例。支持基于浏览器的HTML5客户端。
  • nova-xvpvncproxy daemon
    提供一个代理,用于通过VNC连接访问正在运行的实例。支持特定于openstack的Java客户机。
  • The queue
    用于在守护进程之间传递消息的中心集线器。通常用RabbitMQ实现,也可以用另一个AMQP消息队列实现
  • SQL database
    存储云基础设施的大多数构建时和运行时状态,包括:
    • Available instance types
    • Instances in use
    • Available networks
    • Projects

理论上,OpenStack计算可以支持SQLAlchemy支持的任何数据库。用于测试和开发工作的公共数据库是SQLite3、MySQL、MariaDB和PostgreSQL。

准备工作

安装之前我们需要先建库,帐号和api endpoint.

  1. 在数据库服务器上执行如下步骤:
    ○ 使用root连接数据库服务器:
        $ mysql -u root -p root123
    ○ 建立nova_api、nova和nova_cell0数据库:
        MariaDB [(none)]> CREATE DATABASE nova_api;
        MariaDB [(none)]> CREATE DATABASE nova;
        MariaDB [(none)]> CREATE DATABASE nova_cell0;
    ○ 赋予帐号nova对库的操作权限:
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
        MariaDB [(none)]>   GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova123'
  2. 加载admin的访问凭据,执行管理员命令:
    $ . admin-openrc
  3. 建立计算服务的凭据:

    ○ 建立nova用户:
        $ openstack user create --domain default --password-prompt nova
    
        User Password:nova123
        Repeat User Password:nova123
        +---------------------+----------------------------------+
        | Field               | Value                            |
        +---------------------+----------------------------------+
        | domain_id           | default                          |
        | enabled             | True                             |
        | id                  | 8a7dbf5279404537b1c7b86c033620fe |
        | name                | nova                             |
        | options             | {}                               |
        | password_expires_at | None                             |
        +---------------------+----------------------------------+
    ○ 给用户nova添加admin角色:
        $ openstack role add --project service --user nova admin
     
        注意:这个命令没有输出
    ○ 建立nova服务实体:
        $ openstack service create --name nova --description "OpenStack Compute" compute
    
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Compute                |
        | enabled     | True                             |
        | id          | 060d59eac51b4594815603d75a00aba2 |
        | name        | nova                             |
        | type        | compute                          |
        +-------------+----------------------------------+
  4. Create the Compute API service endpoints:

    $ openstack endpoint create --region RegionOne compute public http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 3c1caa473bfe4390a11e7177894bcc7b          |
    | interface    | public                                    |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+
    
    $openstack endpoint create --region RegionOne compute internal http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | e3c918de680746a586eac1f2d9bc10ab          |
    | interface    | internal                                  |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+
    
    $ openstack endpoint create --region RegionOne compute admin http://stack.flex.net:8774/v2.1
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 38f7af91666a47cfb97b4dc790b94424          |
    | interface    | admin                                     |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://stack.flex.net:8774/v2.1               |
    +--------------+-------------------------------------------+
    安装配置组件
  5. 安装包:
    # yum install openstack-nova-api openstack-nova-conductor \
      openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler
  6. 编辑/etc/nova/nova.conf文件完成下列需求:

    ○ 在[DEFAULT]区域, 充计compute和元数据API:
        [DEFAULT]
        # ...
        enabled_apis = osapi_compute,metadata
    
    ○ 在[api_database] 和 [database] sections,配置数据库的访问:
        [api_database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova_api
    
        [database]
        # ...
        connection = mysql+pymysql://nova:nova123@dbs.flex.net/nova
    
    ○ 在[DEFAULT]区域, 配置RabbitMQ消息队列访问:
        [DEFAULT]
        # ...
        transport_url = rabbit://openstack:openstack123@dbs.flex.net
    
    ○ 在[api]和[keystone_authtoken]区域, 配置访问认证服务:
        [api]
        # ...
        auth_strategy = keystone
    
        [keystone_authtoken]
        # ...
        auth_url = http://stack.flex.net:5000/v3
        memcached_servers = dbs.flext.net:11211
        auth_type = password
        project_domain_name = Default
        user_domain_name = Default
        project_name = service
        username = nova
        password = nova123
         
        注意: 注释或移除在掉在[keystone_authtoken]区域中的其它的选项.
    
    ○ 在[DEFAULT]区域, 配置管理接口的IP:
        [DEFAULT]
        # ...
        my_ip = 192.168.207.2  #此处为控制节点的管理IP地址
    ○ 在[DEFAULT]区域, 充许支持的网络:
        [DEFAULT]
        # ...
        use_neutron = true
        firewall_driver = nova.virt.firewall.NoopFirewallDriver
    
        缺省的,计算节点使用一内部的防火墙驱动,因为网络服务包含了一个防火墙驱动,你必须禁用防火墙驱动并使用nova.virt.firewall.NoopFirewallDriver firewall driver
    ○ 在[vnc]区域, 使用管理接口的IP做为vnc代理使用:
        [vnc]
        enabled = true
        # ...
        server_listen = $my_ip
        server_proxyclient_address = $my_ip
    
    ○ 在[glance]区域, 配置镜像服务api的位置:
        [glance]
        # ...
        api_servers=http://stack.flex.net:9292
    
    ○ 在[oslo_concurrency]区域, 配置锁定的路径:
        [oslo_concurrency]
        # ...
        lock_path = /var/lib/nova/tmp
    
    ○ 在[placement]区域, 配置访问placement服务:
        [placement]
        # ...
        region_name = RegionOne
        project_domain_name = Default
        project_name = service
        auth_type = password
        user_domain_name = Default
        auth_url = http://stack.flex.net:5000/v3
        username = placement
        password = placement123
    
        注意: 注释或移除在掉在[placement]区域中的其它的选项
    
    ○ 由于一个bug, 你必须充许访问placement API, 添加下列的配置到/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>
    
    ○ Restart the httpd service:
        # systemctl restart httpd
  7. Populate the nova-api database:
    # su -s /bin/sh -c "nova-manage api_db sync" nova
  8. Register the cell0 database:
    # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
  9. Create the cell1 cell:
    # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
    109e1d4b-536a-40d0-83c6-5f121b82b650
  10. Populate the nova database:
    # su -s /bin/sh -c "nova-manage db sync" nova
  11. Verify nova cell0 and cell1 are registered correctly:
    # su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
    +-------+--------------------------------------+
    | Name  | UUID                                 |
    +-------+--------------------------------------+
    | cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |
    | cell0 | 00000000-0000-0000-0000-000000000000 |
    +-------+--------------------------------------+
    安成安装
    ○ 允许系统引导时自动启动服务并启动服务:
      # systemctl enable openstack-nova-api.service  \
       openstack-nova-scheduler.service \
       openstack-nova-conductor.service \
       openstack-nova-novncproxy.service
      # systemctl start openstack-nova-api.service \
       openstack-nova-scheduler.service \
       openstack-nova-conductor.service \
       openstack-nova-novncproxy.service
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI