6.配置计算服务

目录

计算服务……………………………………………………………………………………………… 41
安装计算控制器服务…………………………………………………………………………………..43
配置计算节点……………………………………………………………………………………….. 46

计算服务

  计算服务是云计算框架的控制器,这个事一个laaS系统的主要部分。使用它去控制和管理云计算系统。主要模块由Python实现。

  计算与身份服务交互进行验证,与镜像服务交互为了镜像,为用户和管理界面与仪表板交互。镜像获得由项目和用户限制;配额由每个项目来限制(例如,实例的数目)。计算服务平衡地控制在标准硬件上的大小,并且下载镜像来启动需要的实例。

  计算服务由下面的作用域和他们的下属组件来组成。

API

  • nova-api 服务。接受和回应终端用户的计算API调用。支持OpenStack计算API,Amazon EC2 API以及给予特殊用户一个特别的Admin API来执行管理操作。另外,初始化大部分配套的活动,比如运行一个实例并强制实施一些政策。
  • nova-api-metadata服务。从实例接受元数据请求。当你在多主机模式下运行nova-network设备,nova-api-metadata服务普遍使用。一些细节可以看在Cloud Administrator Guide下的Metadata service

    在Debian系统中,它已经包含了nova-api包,可以通过debconf来选择。

    计算核心

  • nova-compute进程。一个工作守护进程通过虚拟机管理程序的API能个创建并且终止虚拟机实例。例如,对于XenServer/XCP的XenAPI,KVM或者QEMU的libvirt,VMware的VMwareAPI等等。由这样做的过程是相当复杂的,但是基础是很简单的:从队列中接受行为,执行一系列的系统命令,像是启动一个KVM实例,从数据库的更新状态中带离出来。
  • nova-scheduler进程。概念上是计算中最简单的一段代码。从队列中拿出一个虚拟机实例请求和确定在哪个计算服务主机上运行。
  • nova-conductor模块。调节nova-compute和数据库之间的相互作用。针对消除直接访问由nova-compute做的云数据库。nova-conductor模块横向扩展。当然,不要部署它在任何nova-compute运行的节点上。关于更多信息,请看A new Nova service:nova-conductor

    虚拟机网络

  • nova-network 工作守护进程。同样与nova-compute,它从队列接受网络任务并且执行操作网络的任务,例如设置桥接接口或者改变ip表的规则。这个功能迁移到OpenStack网络上就是一个单独的OpenStack服务。
  • nova-dhcpbridge脚本。跟踪IP地址契约和使用dnsmasq的dhcp-script脚本工具将他们记录在数据库。这个功能正在迁移向OpenStack网络。OpenStack网络提供一个不同的脚本。

    控制台界面

  • nova-consoleauth守护进程。授权口令牌给控制台代理提供的用户。可看nova-novncproxy和nova-xvpnvcproxy。这个服务必须为了控制台代理工作而运行。许多其他类型的代理可以运行而不同于一种在一种聚集构造上的单一的nova-consoleauth服务,跟多消息,可看About novaconsoleauth
  • nova-novncproxy守护进程。为通过VNC连接来访问正在运行实例提供一种代理。支持一个特别为OpenStack设计的Java客户端。
  • nova-cert守护进程。管理x509证书。

    镜像管理(EC2方案)

  • nova-objectstore守护进程。为用镜像服务来注册镜像提供一种S3接口。大部分用作必须支持euca2ools的设备。eucal2olls工具传递nova-objectstore使用S3语言,而且nova-objectstore将S3请求翻译为镜像服务请求。
  • euca2ools客户端。用于管理云资源的一组命令行解释器命令。尽管没有一个Opens模块,你可以配置nova-api来支持EC2接口。更多信息可看Eucalyptus 3.4 Documentation

    命令行客户端和其他接口

  • nova客户端。可以使用户作为一个临时管理员或者终端用户来提交命令。
  • nova-manage客户端。可以使云管理员来提交命令。

    其他构件

  • 队列。一个在守护进程中间传递信息的中心系统。通常由RAbbitMQ来实施,也可以是其他任何的AMQP消息队列,如Apache Qpid或者Zero MQ.
  • SQL数据库。为云基础实施保存大部分构建时和运行时的状态。包含可以使用的实例类型,正在使用的实例,可用的网络和项目。理论上Opens Compute可以支持任何SQL-Alchemy支持的数据库,但是普遍使用的是SQLite3数据库(只是适用于测试和开发工作),MySQL和PostgreSQL。

    计算与其他OpenStack服务联系:身份认证服务,镜像服务以及网络接口的OpenStack仪表盘。

    安装计算控制器服务

      计算式服务的总和能够使你启动虚拟机实例。你可以配置这些服务来来在单独的节点或者相同的节点上运行。在这个指引上,大部分服务运行在控制器节点,启动虚拟机的服务运行在专用的计算节点。这一节向你展示如何早控制器节点上安装和配置这些服务。

    1.安装控制器节点必要的计算包。

    yum install openstack-nova-api openstack-nova-cert openstack-

    nova-conductor \ openstack-nova-console openstack-nova-novncproxy openstack- nova-scheduler \ python-novaclient 2.计算在数据库保存信息。在这个指引中,在控制器节点我们使用MySQL数据库。配置计算的数据库位置和凭证。使用你将在后面步骤创建的数据库密码来代替NOVA_DBPASS.

    openstack-config —set /etc/nova/nova.conf \

    database connection mysql://nova:NOVA_DBPASS@controller/nova

3.配置针对于配置计算来使用的Qpid消息代理:

  1. # openstack-config --set /etc/nova/nova.conf \
  2. DEFAULT rpc_backend qpid
  3. # openstack-config --set /etc/nova/nova.conf DEFAULT
  4. qpid_hostname controller

4.设置控制器节点的管理接口IP地址选项的my_ip,vnceserver_listen和vncserver_proxyclient_address配置:

  1. # openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.11
  2. # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 10.
  3. 0.0.11
  4. # openstack-config --set /etc/nova/nova.conf DEFAULT
  5. vncserver_proxyclient_address 10.0.0.11

5.用你先前创建的密码作为root用户登录。创建一个nova数据库用户:

  1. $ mysql -u root -p
  2. mysql> CREATE DATABASE nova;
  3. mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  4. IDENTIFIED BY 'NOVA_DBPASS';
  5. mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  6. IDENTIFIED BY 'NOVA_DBPASS';

6.创建计算服务表:

  1. # su -s /bin/sh -c "nova-manage db sync" nova

7.创建一个计算使用认证服务来认证的nova用户。使用服务租赁并且给予用户admin角色:

  1. $ keystone user-create --name=nova --pass=NOVA_PASS --email=nova@example.
  2. com
  3. $ keystone user-role-add --user=nova --tenant=service --role=admin

8.配置计算来使用运行在控制器上的认证服务上的这些认证。用你的计算密码来代替NOVA_PASS。

  1. # openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy
  2. keystone
  3. # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri
  4. http://controller:5000
  5. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  6. auth_host controller
  7. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  8. auth_protocol http
  9. # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port
  10. 35357
  11. # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user
  12. nova
  13. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  14. admin_tenant_name service
  15. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  16. admin_password NOVA_PASS

9.你必须使用认证服务来注册计算以便于其他OpenStack服务能够定位它。注册服务和指定终端点:

  1. $ keystone service-create --name=nova --type=compute \
  2. --description="OpenStack Compute"
  3. $ keystone endpoint-create \
  4. --service-id=$(keystone service-list | awk '/ compute / {print $2}') \
  5. --publicurl=http://controller:8774/v2/%\(tenant_id\)s \
  6. --internalurl=http://controller:8774/v2/%\(tenant_id\)s \
  7. --adminurl=http://controller:8774/v2/%\(tenant_id\)s

10.开启计算服务并且配置他们当系统启动时也启动:

  1. # service openstack-nova-api start
  2. # service openstack-nova-cert start
  3. # service openstack-nova-consoleauth start
  4. # service openstack-nova-scheduler start
  5. # service openstack-nova-conductor start
  6. # service openstack-nova-novncproxy start
  7. # chkconfig openstack-nova-api on
  8. # chkconfig openstack-nova-cert on
  9. # chkconfig openstack-nova-consoleauth on
  10. # chkconfig openstack-nova-scheduler on
  11. # chkconfig openstack-nova-conductor on
  12. # chkconfig openstack-nova-novncproxy on

11.为了验证配置,列出可得到镜像:

  1. $ nova image-list
  2. +---------------------------------------+--------------------+---------+--------+
  3. | ID                   | Name       | Status |Server |
  4. +--------------------------------------+---------------------+---------+--------+
  5. | acafc7c0-40aa-4026-9673-b879898e1fc2 | cirros-0.3.2-x86_64 | ACTIVE |    |
  6. |+--------------------------------------+--------------------+---------+--------+

配置计算节点

  在你在控制器节点配置好计算服务后,你必须配置另一个系统作为一个计算节点。计算节点接受从控制器节点来的请求,而且控制虚拟机实例。你可以在单个节点上运行所有的服务,但是这个指引的例子使用了不同的系统。这使得很简单去通过本节下面的说明来添加额外的计算节点。

  计算服务依靠虚拟机管理程序来运行虚拟机实例。Opens能够使用不同的虚拟机管理程序,但是这个指引用KVM。

1.安装计算包:

  1. # yum install openstack-nova-compute

2.编辑/etc/nova/nova.conf配置文件:

  1. # openstack-config --set /etc/nova/nova.conf database connection mysql://
  2. nova:NOVA_DBPASS@controller/nova
  3. # openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy
  4. keystone
  5. # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri
  6. http://controller:5000
  7. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  8. auth_host controller
  9. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  10. auth_protocol http
  11. # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port
  12. 35357
  13. # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user
  14. nova
  15. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  16. admin_tenant_name service
  17. # openstack-config --set /etc/nova/nova.conf keystone_authtoken
  18. admin_password NOVA_PASS

3.通过设定配置项来配置计算服务来使用Qpid消息代理:

  1. # openstack-config --set /etc/nova/nova.conf \
  2. DEFAULT rpc_backend qpid
  3. # openstack-config --set /etc/nova/nova.conf DEFAULT
  4. qpid_hostname controller

4.配置计算能提供远程控制台访问实例。

  1. # openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.31
  2. # openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True
  3. # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.
  4. 0.0
  5. # openstack-config --set /etc/nova/nova.conf DEFAULT
  6. vncserver_proxyclient_address 10.0.0.31
  7. # openstack-config --set /etc/nova/nova.conf \
  8. DEFAULT novncproxy_base_url http://controller:6080/vnc_auto.html

5.指定运行镜像服务的主机。

  1. # openstack-config --set /etc/nova/nova.conf DEFAULT
  2. glance_host controller

6.你必须确定你的系统处理器或者虚拟机管理程序是否支持虚拟机的硬件加速。

运行下面的指令:

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

如果这个指令返回了值1或者更大,则你的系统支持硬件加速不需要额外的配置。

如果指令返回了0,则你的系统不支持硬件加速,你必须配置libvirt来使用QEMU来替代KVM。

  • 运行下面的指令:

    openstack-config —set /etc/nova/nova.conf libvirt virt_type qemu`

    7.开启计算服务和它的依赖关系。配置他们系统开启时能自动启动。

    -对于RHEL或者CentOS:

    service libvirtd start

    service messagebus start

    service openstack-nova-compute start

    chkconfig libvirtd on

    chkconfig messagebus on

    chkconfig openstack-nova-compute on

    -对于Fedora:

    service libvirtd start>

    service dbus start

    service openstack-nova-compute start

    chkconfig libvirtd on

    chkconfig dbus on

    chkconfig openstack-nova-compute on

    注意

    在RHEL 7.x或者衍生物中,上面列出的dbus或者messagebus指令可能造成一个错误。因为这些服务是默认启用的,所以这些错误可以忽略不计。