安装和配置计算节点

安装和配置计算节点

这个章节描述如何在计算节点上安装和配置计算服务。 计算服务支持几种不同的 hypervisors。为了简单起见,这个配置在计算节点上使用 :term:`KVM <kernel-based VM (KVM)>`扩展的:term:`QEMU <Quick EMUlator (QEMU)>`作为hypervisor,支持虚拟机的硬件加速。在旧的硬件上,这个配置使用通用的QEMU作为hypervisor。你可以根据这些说明进行细微的调整,使用额外的计算节点来横向扩展你的环境。

注解

这个部分假设你根据本指南中的说明步骤配置第一个计算节点。如果你想配置额外的计算节点,像 example architectures 章节中的第一个计算节点一样准备好。每个额外的计算节点需要唯一的IP地址。

安全并配置组件

注解

默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。

  1. 安装软件包:

    # yum install openstack-nova-compute
    
  1. 编辑``/etc/nova/nova.conf``文件并完成下面的操作:

    • 在``[DEFAULT]``部分,只启用计算和元数据API:

      [DEFAULT]
      # ...
      enabled_apis = osapi_compute,metadata
      
    • 在``[DEFAULT]``部分,配置``RabbitMQ``消息队列访问权限:

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

      用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。

    • In the [api] and [keystone_authtoken] sections, configure Identity service access:

      [api]
      # ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      # ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = nova
      password = NOVA_PASS
      

      使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。

      注解

      [keystone_authtoken] 中注释或者删除其他选项。

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

      [DEFAULT]
      # ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的IP 地址,例如 :ref:`example architecture <overview-example-architectures>`中所示的第一个节点 10.0.0.31 。

    • ``[DEFAULT]``部分,启用网络服务支持:

      [DEFAULT]
      # ...
      use_neutron = True
      firewall_driver = nova.virt.firewall.NoopFirewallDriver
      

      注解

      缺省情况下,Compute 使用内置的防火墙服务。由于 Networking 包含了防火墙服务,所以你必须通过使用 nova.virt.firewall.NoopFirewallDriver 来去除 Compute 内置的防火墙服务。

    • 在``[vnc]``部分,启用并配置远程控制台访问:

      [vnc]
      # ...
      enabled = True
      vncserver_listen = 0.0.0.0
      vncserver_proxyclient_address = $my_ip
      novncproxy_base_url = http://controller:6080/vnc_auto.html
      

      服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址。基本的 URL 指示您可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。

      注解

      如果你运行浏览器的主机无法解析``controller`` 主机名,你可以将 ``controller``替换为你控制节点管理网络的IP地址。

    • [glance] 区域,配置镜像服务 API 的位置:

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

      [oslo_concurrency]
      # ...
      lock_path = /var/lib/nova/tmp
      
    • In the [placement] section, configure the Placement API:

      [placement]
      # ...
      os_region_name = RegionOne
      project_domain_name = Default
      project_name = service
      auth_type = password
      user_domain_name = Default
      auth_url = http://controller:35357/v3
      username = placement
      password = PLACEMENT_PASS
      

      Replace PLACEMENT_PASS with the password you choose for the placement user in the Identity service. Comment out any other options in the [placement] section.

完成安装

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

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

    如果这个命令返回了 one or greater 的值,那么你的计算节点支持硬件加速且不需要额外的配置。

    如果这个命令返回了 zero 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM

    • /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:

      [libvirt]
      # ...
      virt_type = qemu
      
  1. 启动计算服务及其依赖,并将其配置为随系统自动启动:

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

注解

If the nova-compute service fails to start, check /var/log/nova/nova-compute.log. The error message AMQP server on controller:5672 is unreachable likely indicates that the firewall on the controller node is preventing access to port 5672. Configure the firewall to open port 5672 on the controller node and restart nova-compute service on the compute node.

Add the compute node to the cell database

重要

Run the following commands on the controller node.

  1. Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database:

    $ . admin-openrc
    
    $ openstack hypervisor list
    +----+---------------------+-----------------+-----------+-------+
    | ID | Hypervisor Hostname | Hypervisor Type | Host IP   | State |
    +----+---------------------+-----------------+-----------+-------+
    |  1 | compute1            | QEMU            | 10.0.0.31 | up    |
    +----+---------------------+-----------------+-----------+-------+
    
  2. Discover compute hosts:

    # 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
    

    注解

    When you add new compute nodes, you must run nova-manage cell_v2 discover_hosts on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in /etc/nova/nova.conf:

    [scheduler]
    discover_hosts_in_cells_interval = 300
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.