Nova用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。
Nova组件包括以下几个服务:
- nova-api
- nova-compute
- nova-scheduler
- nova-conductor
- nova-network(现在是使用的neutron)
- nova-console
- nova-consoleauth
- nova-objectstore
- nova-db
nova的逻辑架构图如图:
nova-api
Nova对外提供服务的窗口,他接收并响应来自用户的Compute API调用。nova-compute
是安装到每个物理主机上的服务进程,这个服务接受请求后执行一批与虚拟机相关的操作,这些操作需要调用底层的Hypervisor API完成,比如支持XenServer/XCP的XwnAPI,支持KVM和QEMU的libvirt或者支持VMware的VMwareAPI等。nova-scheduler
用于接收创建虚拟机的请求,并决定在哪台物理主机上启动该虚拟机的调度器。目前nova中的实现有以下几种:- 随机调度器(ChanceScheduler):从所有nova-compute服务的正常运行的节点中随机选择。
- 过滤调度器(FilterSchedulerÿ