安装并配置 Red Hat Enterprise Linux 和 CentOS 的计算节点

本节描述了如何在计算节点上安装和配置计算服务。该服务支持多种 hypervisor 来部署实例或虚拟机 (VM)。为了简单起见,此配置在支持虚拟机硬件加速的计算节点上使用快速模拟器 (QEMU) hypervisor 和基于内核的 VM (KVM) 扩展。在旧版硬件上,此配置使用通用的 QEMU hypervisor。您可以进行少量修改,按照这些说明水平扩展您的环境,添加额外的计算节点。

注意

本节假定您正在逐步按照本指南中的说明配置第一个计算节点。如果您想配置额外的计算节点,请以类似于第一个计算节点的方式准备它们,如 示例架构 部分所示。每个额外的计算节点都需要一个唯一的 IP 地址。

安装和配置组件

注意

默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。

  1. 安装软件包

    # dnf install openstack-nova-compute
    
  2. 编辑 /etc/nova/nova.conf 文件并完成以下操作

    • [DEFAULT] 部分中,配置 RabbitMQ 消息队列访问

      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      RABBIT_PASS 替换为您为 RabbitMQ 中的 openstack 帐户选择的密码。

    • [service_user] 部分中,配置 服务用户令牌

      [service_user]
      send_service_user_token = true
      auth_url = https://controller/identity
      auth_type = password
      project_domain_name = Default
      project_name = service
      user_domain_name = Default
      username = nova
      password = NOVA_PASS
      

      NOVA_PASS 替换为您在 Identity 服务中为 nova 用户选择的密码。

    • [DEFAULT] 部分中,配置 my_ip 选项

      [DEFAULT]
      # ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上管理网络接口的 IP 地址,通常对于 示例架构 中的第一个节点,为 10.0.0.31。

    • 配置 /etc/nova/nova.conf 中的 [neutron] 部分。请参阅 网络服务安装指南 以获取更多详细信息。

    • [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 地址。

    • [glance] 部分中,配置 Image 服务 API 的位置

      [glance]
      # ...
      api_servers = http://controller:9292
      
    • [oslo_concurrency] 部分中,配置锁路径

      [oslo_concurrency]
      # ...
      lock_path = /var/lib/nova/tmp
      
    • [placement] 部分中,配置 Placement API

      [placement]
      # ...
      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 = PLACEMENT_PASS
      

      PLACEMENT_PASS 替换为您在 Identity 服务中为 placement 用户选择的密码。注释掉 [placement] 部分中的任何其他选项。

完成安装

  1. 确定您的计算节点是否支持虚拟机的硬件加速

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

    如果此命令返回的值为 one greater,则您的计算节点支持硬件加速,通常不需要额外的配置。

    如果此命令返回的值为 zero,则您的计算节点不支持硬件加速,您必须配置 libvirt 以使用 QEMU 而不是 KVM。

    • 编辑 /etc/nova/nova.conf 文件中的 [libvirt] 部分如下

      [libvirt]
      # ...
      virt_type = qemu
      
  2. 启动计算服务及其依赖项,并配置它们在系统启动时自动启动

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

注意

如果 nova-compute 服务无法启动,请检查 /var/log/nova/nova-compute.log。错误消息 AMQP server on controller:5672 is unreachable 很可能表明控制器节点上的防火墙阻止了对端口 5672 的访问。配置防火墙以在控制器节点上打开端口 5672,并在计算节点上重新启动 nova-compute 服务。

将计算节点添加到单元数据库

重要提示

controller 节点上运行以下命令。

  1. 获取管理员凭据以启用仅管理员 CLI 命令,然后确认数据库中是否存在计算主机

    $ . admin-openrc
    
    $ openstack compute service list --service nova-compute
    +----+-------+--------------+------+-------+---------+----------------------------+
    | ID | Host  | Binary       | Zone | State | Status  | Updated At                 |
    +----+-------+--------------+------+-------+---------+----------------------------+
    | 1  | node1 | nova-compute | nova | up    | enabled | 2017-04-14T15:30:44.000000 |
    +----+-------+--------------+------+-------+---------+----------------------------+
    
  2. 发现计算主机

    # 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 compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
    Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
    Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
    Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
    

    注意

    当您添加新的计算节点时,必须在控制器节点上运行 nova-manage cell_v2 discover_hosts 以注册这些新的计算节点。或者,您可以在 /etc/nova/nova.conf 中设置适当的间隔

    [scheduler]
    discover_hosts_in_cells_interval = 300