nova提供了一种配置计算实例,支持创建虚拟机,裸机服务器。nova在linux上作为一组守护进程运行,以提供该服务
nova分成两类节点:一个是nova-compute计算节点,另一个是控制节点
nova api:负责接收和响应外部请求,外部访问nova的唯一途径,接受外部请求并通过Message Queue将请求发送给其他的服务组件
nova scheduler:云主机调度,决策虚拟机应该创建在哪个计算节点上。决策一个虚拟机应该调度到哪个物理节点上(过滤,计算权值)
nova computer:运行在计算节点上,通过message queue接收并管理KVM的生命周期。管理虚拟机的核心服务,通过调用hypervisor API实现虚拟生命周期管理
hypervisor:计算节点上跑的虚拟化管理程序,虚拟机管理最底层的程序。不同虚拟化技术提供自己的hypervisor
nova conductor:计算节点访问数据库的中间件,nova-computer经常需要更新数据库(比如虚拟机环境),但不会直接访问数据库,而是将这个任务委托给nova-conductor
nova consoleauth:控制台的授权验证,需要打开vnc需要在consoleauth进行授权认证
nova novncporxy:提供一个代理,用来访问正在运行的实例
nova-spicehtml5proxy:基于html5浏览器的spice访问
nova cert:服务器守护进程向nova cert服务提供x509证书
消息队列:在守护进程之间传递消息的中心。nova通过message queue作为子服务的信息中转站
SQL数据库:存储云主机在构建时和运行时的状态,为云基础设施,包括:可用实例类型,使用中的实例,可用网络,项目
flavor:规定了主机的内存,cpu等的大小,并且可以用来限制虚拟机的一系列参数,使用同一个flavor创建出来的虚拟机,在规格上基本保持一致
availability_zones:可用区是主机的聚合,主机组可以认为是可用区的进一步划分,主机组只对管理员可见而可用区用户可见(主机可以属于多个组,但只属于一个可用区)
host aggregates:主机组是一组主机compute节点的集合,默认只开放给管理员,可以通过策略配置修改访问权限
aggregates:主机组管理metadata,可以向主机中添加,或者移除一个主机,也可以管理metadata