这个部分描述如何在一个计算节点上安装和配置 Compute 服务。这个服务支持一些 hypervisors 来部署实例 或 虚拟机。简单来说,这个配置使用在计算节点上扩展 KVM 的 QEMU hypervisor,支持虚拟机的硬件加速。在旧的硬件上,这个配置使用通用的 QEMU hypervisor。您可以根据这些说明进行轻微的修改,以横向扩展环境的额外计算节点。
1、安装
安装软件依赖
$yum -y install python-devel openssl-devel python-pip git gcc libxslt-devel mysql-devel postgresql-devel libffi-devel libvirt libvirt-devel graphviz sqlite-devel qemu-kvm libvirt-daemon-kvm libvirt-daemon-config-network
$pip install tox libvirt-python
安装python-keystoneclient(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/python-keystoneclient cd python-keystoneclient pip install -r requirements.txt pip install -r test-requirements.txt python setup.py install && cd ..
安装 python-cinderclient(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/python-cinderclient cd python-cinderclient pip install -r requirements.txt pip install -r test-requirements.txt python setup.py install && cd ..
安装python-glanceclient(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/python-glanceclient cd python-glanceclient pip install -r requirements.txt pip install -r test-requirements.txt python setup.py install && cd ..
安装nova
git clone https://github.com/openstack/nova.git cd nova && pip install -r requirements.txt tox -edocs && python setup.py install
运行命令,生成配置文件./etc/nova/nova.conf.sample
tox -egenconfig
若没有nova用户,则新建
useradd nova
创建/etc/nova
mkdir -p /etc/nova
复制./etc/nova/中的配置文件到/etc/nova
cp -rn ./etc/nova/* /etc/nova
进入/etc/nova目录,进行一下操作
cd /etc/nova
cp logging_sample.conf logging.conf
cp nova.conf.sample nova.conf
2、修改配置文件 /etc/nova/nova.conf 并完成如下操作:
在 [DEFAULT] 和 [oslo_messaging_rabbit] 部分,配置 RabbitMQ 消息队列的访问:
[DEFAULT] ... rpc_backend = rabbit [oslo_messaging_rabbit] ... rabbit_host = 控制器 rabbit_userid = openstack rabbit_password = RABBIT_PASS
将其中的 RABBIT_PASS 替换为您在 RabbitMQ 中为 openstack 帐户设置的密码。
在 [DEFAULT] 和 [keystone_authtoken] 部分,配置身份认证服务的访问:
[DEFAULT] ... auth_strategy = keystone [keystone_authtoken] ... auth_uri = http://控制器:5000 auth_url = http://控制器:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = NOVA_PASS
将其中的 NOVA_PASS 替换为您之前在身份认证服务中为 nova 用户设置的密码。
[注意]
注释掉或移除 [keystone_authtoken]段的任何其它选项.
在 [DEFAULT] 部分,设置 my_ip 选项:
[DEFAULT] ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的 IP 地址。
在 [DEFAULT] 部分,启用并配置远程控制台的访问:
[DEFAULT] ... enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = MANAGEMENT_INTERFACE_IP_ADDRESS novncproxy_base_url = http://控制器:6080/vnc_auto.html
服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址。基本的 URL 指示您可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的 IP 地址。
[注意] 注意
如果 web 浏览器访问位于一台无法解析 controller 主机名的主机上的控制台,您必须将 controller 替换为控制节点管理网络接口的 IP 地址。
在 [DEFAULT] 部分,配置使用的计算驱动:
[DEFAULT] ... compute_driver = nova.virt.libvirt.LibvirtDriver
在[glance] 服务字段,配置镜像服务的位置:
[glance] ... host = 控制器
在[oslo_concurrency] 段,配置锁路径:
[oslo_concurrency] ... lock_path = /var/lib/nova/tmp
若没有/var/lib/nova/tmp则新建,并配置权限
mkdir -p /var/lib/nova/tmp chown nova:nova /var/lib/nova/tmp
(可选配置)可以在 [DEFAULT] 段中开启详细日志配置,为后期的故障排除提供帮助:
[DEFAULT] ... verbose = True ... log_file = /var/log/nova.log
3、创建nova-compute启动脚本
新建/usr/lib/systemd/system/nova-compute.service文件,写入如下内容
[Unit] Description=OpenStack Nova Compute Server After=syslog.target network.target [Service] Environment=LIBGUESTFS_ATTACH_METHOD=appliance Type=notify NotifyAccess=all TimeoutStartSec=0 Restart=always User=nova ExecStart=/usr/bin/nova-compute [Install] WantedBy=multi-user.target
4、安装完成
确定您的计算节点是否支持虚拟机的硬件加速。
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回 1 或更大 的值,说明您的计算节点支持硬件加速,一般不需要进行额外的配置。
如果这个命令返回的是 0,说明您的计算节点不支持硬件加速,您必须设置 libvirt 使用 QEMU 而不能使用 KVM。
根据以下内容修改 /etc/nova/nova.conf 的 [libvirt] 部分:
[libvirt] ... virt_type = qemu
启动计算服务及其依赖:
# systemctl enable libvirtd.service nova-compute.service # systemctl start libvirtd.service nova-compute.service