Nova组件包括:nova-api、nova-compute、nova-scheduler、nova-conductor、nova-network、nova-console、nova-consoleauth、nova-cert、nova-objectstore 和 nova-db 等。
- nova-api 是Nova对外界提供服务的窗口,它接收并响应来自用户的Compute API 调用。同时也兼容亚马逊AWS EC2 API,也提供一套管理员操作相关的管理API。
- nova-compute 是安装到每个物理机主机上的服务进程,这个服务接收请求之后执行一批与虚拟机相关的操作,这些操作需要调用底层的Hypervisor API 完成,比如支持XenServer/XCP 的 XenAPI 、支持KVM 和 QEMU 的 libvirtv 或者支持 VMware 的 VMwareAPI 等。
- nova-scheduler 用于接收创建虚拟机的请求,并决定在哪台物理主机上启动该虚拟机的调度器。
- nova-conductor 处于 nova-compute 与 nova-db 之间的一个组件,nova-conductor建立的初衷是基于安全的考虑而避免nova-compute 直接访问 nova-db 的。 也就是说,nova-compute 对nova-db的访问请求,比如让nova-compute 查询一台虚拟机的状态,或更新一条记录,都由nova-conductor 代为转交。而对于nova-scheduler 对 nova-db的请求,却没有这种顾虑,也就是说 nova-scheduler 可以直接访问nova-db。
- nova-db 包含一大堆数据库表,该数据库用于记录虚拟机状态、虚拟机与物理机的对应关系,租户信息等数据内容。
- nova-console 和 nova-consoleauth 是 nova 提供的控制台服务,允许最终用户通过代理服务器访问虚拟机的控制台。
- 最后, nova-cert 和 nova-objectstore 分别提供了 x509 验证管理服务和在 Glance 中注册镜像的 S3 接口服务。