第2章 计算(Nova)服务介绍
OpenStack项目中的Nova计算服务组件是非常重要、核心的部分,负责承载和管理云计算系统,与其他组件有密切联系。例如,与Keystone身份认证服务组件完成服务认证,与Glance镜像服务组件协作生成虚拟机实例,在Horizon仪表板服务组件上完成操作等。Nova计算服务组件支持使用标准的x86硬件进行横向扩展。
Nova计算服务组件包括以下部分。
● nova-api service:负责对终端用户调用Compute API的接收和反馈。支持OpenStack Compute API、the Amazon EC2 API和其他的Admin API,运行策略和编排活动。
● nova-api-metadata service:负责接收虚拟机实例对metadata(元数据)的访问请求。一般部署nova-network的多主机模式才会使用nova-api-metadata service。
● nova-compute service:该服务通过Hypervisor APIs创建和终止虚拟机实例。Hypervisor APIs包括XenAPI for XenServer/XCP、Libvirt for KVM or QEMU和VMwareAPI for VMware。该服务接收消息队列中的信息,执行一系列操作命令,如创建和更新虚拟机实例状态,过程极其复杂。
● nova-scheduler service:该服务接收消息队列中的请求,从而决定虚拟机实例运行在哪个计算节点上。
● nova-conductor module:该服务部署支持横向扩展。出于安全考虑,其不能和nova-compute service部署在同一节点上。因为nova-compute service不能直接访问数据库,所以需要nova-conductor module置于它们中间,与它们交互、通信,传递信息。
● nova-cert module:该服务是一个守护进程,用于X509证书的认证服务,通常为euca-bundle-image(打包好将要上传的镜像)生成证书。仅EC2 API需要此module。
● nova-network worker daemon:类似于nova-compute service,从消息队列中接收和处理关于网络的请求,如配置桥接网络端口、修改防火墙规则等。
● nova-consoleauth daemon:该进程必须和控制台管理程序(novncproxy、spicehtml 5proxy、xvpvncproxy)共同使用,起安全作用。
● nova-novncproxy daemon:通过VNC连接OpenStack环境中正在运行的虚拟机实例。无须安装VNC客户端,可以使用浏览器访问。
● nova-spicehtml5proxy daemon:通过SPICE连接OpenStack环境中正在运行的虚拟机实例。需要使用HTML5访问。
● nova-xvpvncproxy daemon:通过VNC连接OpenStack环境中正在运行的虚拟机实例。使用OpenStack指定的Java客户端访问。
● nova-cert daemon:X509证书。
● euca2ools client:用于管理Amazon EC2云资源,不属于OpenStack项目。
● nova client:用户通过nova client提交请求,包括管理员和非管理员。
● The queue:用于进程和服务间传输信息。支持RabbitMQ、Apache Qpid和ZeroMQ,RabbitMQ使用频率较高。
● SQL database:用于存储各种信息。只要是Python编程语言支持的数据库,Nova计算服务组件都可以使用。比较常见的数据库包括SQLite3、MySQL和PostgreSQL,MySQL使用频率较高。