OpenStack 中的Nova组件详解
open stack compute infrastructure (nova)
nova是openstack云中的计算组织控制器。支持openstack云中实例(instances)生命周期的所有活动都由nova处理。这样使得nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。但是,nova自身并没有提供任何虚拟化能力,相反它使用libvirt api来与被支持的hypervisors交互。nova 通过一个与amazon web services(aws)ec2 api兼容的web services api来对外提供服务。
功能和特点:
实例生命周期管理
管理计算资源
网络和认证管理
rest风格的api
异步的一致性通信
hypervisor透明:支持xen,xenserver/xcp, kvm, uml, vmware vsphere and hyper-v
openstack计算的组成:
nova 云架构包括以下主要组件:
api server (nova-api)
message queue (rabbit-mq server)
compute workers (nova-compute)
network controller (nova-network)
volume worker (nova-volume)
scheduler (nova-scheduler)
api server(nova-api)
api server对外提供一个与云基础设施交互的接口,也是外部可用于管理基础设施的唯一组件。管理使用ec2 api通过web services调用实现。然后api server通过消息队列(message queue)轮流与云基础设施的相关组件通信。作为ec2 api的另外一种选择,openstack也提供一个内部使用的“openstack api”。
message queue(rabbit mq server)
openstack 节点之间通过消息队列使用amqp(advanced message queue protocol)完成通信。nova 通过异步调用请求响应,使用回调函数在收到响应时触发。因为使用了异步通信,不会有用户长时间卡在等待状态。这是有效的,因为许多api调用预期的行为都非常耗时,例如加载一个实例,或者上传一个镜像。
compute worker(nova-compute)
compute worker处理管理实例生命周期。他们通过message queue接收实例生命周期管理的请求,并承担操作工作。在一个典型生产环境的云部署中有一些compute workers。一个实例部署在哪个可用的compute worker上取决于调度算法。
network controller(nova-network)
network controller 处理主机地网络配置。它包括ip地址分配、为项目配置vlan、实现安全组、配置计算节点网络。
volume workers(nova-volume)
volume workers用来管理基于lvm(logical volume manager)的实例卷。volume workers有卷的相关功能,例如新建卷、删除卷、为实例附加卷,为实例分离卷。卷为实例提供一个持久化存储,因为根分区是非持久化的,当实例终止时对它所作的任何改变都会丢失。当一个卷从实例分离或者实例终止(这个卷附加在该终止的实例上)时,这个卷保留着存储在其上的数据。当把这个卷重附加载相同实例或者附加到不同实例上时,这些数据依旧能被访问。
一个实例的重要数据几乎总是要写在卷上,这样可以确保能在以后访问。这个对存储的典型应用需要数据库等服务的支持。
scheduler(nova-scheduler)
调度器scheduler把nova-api调用映射为openstack组件。调度器作为一个称为nova-schedule守护进程运行,通过恰当的调度算法从可用资源池获得一个计算服务。scheduler会根据诸如负载、内存、可用域的物理距离、cpu构架等作出调度决定。nova scheduler实现了一个可插入式的结构。
当前nova-scheduler实现了一些基本的调度算法:
随机算法:计算主机在所有可用域内随机选择
可用域算法:跟随机算法相仿,但是计算主机在指定的可用域内随机选择。
简单算法:这种方法选择负载最小的主机运行实例。负载信息可通过负载均衡器获得。
以上所述是小编给大家介绍的openstack 中的nova组件详解,希望对大家有所帮助