这个章节描述如何在计算节点上安装和配置计算服务。 计算服务支持几种不同的 hypervisors。为了简单起见,这个配置在计算节点上使用 :term:`KVM <kernel-based VM (KVM)>`扩展的:term:`QEMU <Quick EMUlator (QEMU)>`作为hypervisor,支持虚拟机的硬件加速。在旧的硬件上,这个配置使用通用的QEMU作为hypervisor。你可以根据这些说明进行细微的调整,使用额外的计算节点来横向扩展你的环境。
注解
这个部分假设你根据本指南中的说明步骤配置第一个计算节点。如果你想配置额外的计算节点,像 example architectures 章节中的第一个计算节点一样准备好。每个额外的计算节点需要唯一的IP地址。
注解
默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...
)表示默认的配置选项你应该保留。
安装软件包:
# yum install openstack-nova-compute
编辑``/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.
确定您的计算节点是否支持虚拟机的硬件加速。
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了 one or greater
的值,那么你的计算节点支持硬件加速且不需要额外的配置。
如果这个命令返回了 zero
值,那么你的计算节点不支持硬件加速。你必须配置 libvirt
来使用 QEMU 去代替 KVM
在 /etc/nova/nova.conf
文件的 [libvirt]
区域做出如下的编辑:
[libvirt]
# ...
virt_type = qemu
启动计算服务及其依赖,并将其配置为随系统自动启动:
# 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.
重要
Run the following commands on the controller node.
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 |
+----+---------------------+-----------------+-----------+-------+
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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.