Nova介绍
Nova是OpenStack中的计算组织控制器,管理OpenStack云中实例的生命周期的所有活动,使Nova成为一个负责管理计算资源、网络、认证所需的可扩展性平台。
常用术语
KVM
内核虚拟化,OpenStack默认的Hypersvisor
Qemu
KVM的替补角色,没有KVM执行效率高,不支持全虚拟化
Flavor
新建虚拟机的配置列表,虚拟机模板
Keypair
ssh连接访问实例的密钥对
安全组
用来控制实例访问策略的容器
安全组规则
用来控制实例访问的具体策略
Nova框架
Nova API 提供了统一风格的API接口,作为Nova组件的入口,接受用户的请求;Nova SCHEDULER负责调度将实例分配到具体的计算节点;Nova CONDUCTOR与Nova数据库进行交互;Nova COMPUTE节点运行在计算节点上,用于虚拟机实例的创建和管理;消息队列主要用于Nova各个组件之间的消息传递。
Nova中各组件结合虚拟机实例创建的过程
当用户通过CLI命令行或horizon向Nova组件提出创建实例的请求时,Nova API作为Nova的入口会接受用户请求,然后以消息队列的方式,将请求发送给Nova-scheduler,Nova-scheduler从消息队列中侦听到Nova API的消息后, 到数据库中查询当前计算节点的负载和使用中,由于Nova-scheduler不能和数据库直接进行交互,因此将会借助消息队列的方式,通过Nova-conductor组件与数据库进行交互,最后根据查询到的结果,将虚拟机实例分配到当前负载最小,并且满足启动虚拟机实例的那个计算节点上。实际实例的创建、启停工作并不是由Nova-scheduler来完成,它的主要功能是实现实例的调度分配工作,最终实例的创建还是需要调用另一个组件Nova-compute来完成,实例的创建还离不开镜像、网络、存储等资源的配合,因此Nova-compute组件将会与Nova-volume、Nova-network等组件通过消息队列的方式实现相互协作,最终实现虚拟机实例的创建。
总结
Nova组件主要提供实例的生命周期管理,调动管理平台的网络、存储等资源,同时还提供了统一风格的RestAPI接口,支持透明的hypervisor,各个模块通过消息队列实现信息的相互传递。