简介
nova负责创建、管理云计算系统,是IaaS的核心部分。nova与openstack中的identity、image service、dashboard等组件交互。
各个组件
- API
- compute-api:接收、响应用户调用api的请求,强制执行某些policy、完成大部分初始化流程,例如启动一个云主机
- compute-api-metadata:从实例接收metadata请求
- Compute Core
- nova-compute service:一个worker守护进程,从队列中取消息,使用hypervisor apis创建、终止虚拟机
- nova-scheduler service:决定在哪个compute server节点启动某个实例
- nova-conductor module:介于nova-compute和数据库database之间,使nova-compute不与database直接交互。
- nova-cert module:只有EC2 API用到了
- Networking for VMs
- nova-network worker daemon:类似于nova-compute,从消息队列中取消息,调度网络,执行一些例如网桥,更改iptable等的任务
- Console interface
- nova-consoleauth daemon:提供token验证,维护token与ip地址、端口号的映射
- nova-novncproxy daemon:支持基于浏览器的vnc 客户端,通常与nova-api部署在一起。
- nova-spicehtml5proxy daemon:支持基于html5的vnc 客户端,通常与nova-api部署在一起。
- nova-xvpvncproxy daemon:支持基于java的vnc客户端,,通常与nova-api部署在一起。
- nova-cert daemon:x509证书
- Image management (EC2 scenario)
- nova-objectstore daemon:用于兼容大多数Amazon S3的api,使用openstack image service注册镜像。
- euca2ools client:可用于管理云资源
- Command-line clients and other interfaces
- nova client:保证用户作为一个tenant管理员或者end user提交命令
- Other components
- The queue:消息队列,交换各个组件的消息。
- SQL database:存储云基础设置的大部分状态数据。
- Hypervisors:Nova通过api-server调用、管理Hypervisor
基础架构
- API server(nova-api):nova的核心部分,各个功能的入口,比如
- Message queue
- Compute worker(nova-compute)
- Network Controller(nova-networking or neutron)
镜像和实例
glance提供镜像相关的服务,每次启动一个新的实例,都会拷贝一份glance中的镜像,然后选择一个flavor,在compute节点启动实例,flavor提供一个root volume(卷),和一个临时的volume(卷),可以加入cinder的一个卷,作为持久化存储,如果没有持久化存储的话,实例删除后会把这个实例的flavor产生的root volume删掉
镜像管理
image service提供查看、注册、恢复虚拟机镜像的功能,包括使用REST API来进行相关操作,也能通过命令行去管理。存储镜像有很多种方式:
- File system
- Object Storage
- Block Storage
- VMware
- S3
- HTTP
- RADOS block device (RBD)
- Sheepdog
- GridFS