OpenStack 中的Nova组件详解
OpenStackComputeInfrastructure(Nova)
Nova是OpenStack云中的计算组织控制器。支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。但是,Nova自身并没有提供任何虚拟化能力,相反它使用libvirtAPI来与被支持的Hypervisors交互。Nova通过一个与AmazonWebServices(AWS)EC2API兼容的webservicesAPI来对外提供服务。
功能和特点:
实例生命周期管理
管理计算资源
网络和认证管理
REST风格的API
异步的一致性通信
Hypervisor透明:支持Xen,XenServer/XCP,KVM,UML,VMwarevSphereandHyper-V
OpenStack计算的组成:
Nova云架构包括以下主要组件:
APIServer(nova-api)
MessageQueue(rabbit-mqserver)
ComputeWorkers(nova-compute)
NetworkController(nova-network)
VolumeWorker(nova-volume)
Scheduler(nova-scheduler)
APIServer(nova-api)
APIServer对外提供一个与云基础设施交互的接口,也是外部可用于管理基础设施的唯一组件。管理使用EC2API通过webservices调用实现。然后APIServer通过消息队列(MessageQueue)轮流与云基础设施的相关组件通信。作为EC2API的另外一种选择,OpenStack也提供一个内部使用的“OpenStackAPI”。
MessageQueue(RabbitMQServer)
OpenStack节点之间通过消息队列使用AMQP(AdvancedMessageQueueProtocol)完成通信。Nova通过异步调用请求响应,使用回调函数在收到响应时触发。因为使用了异步通信,不会有用户长时间卡在等待状态。这是有效的,因为许多API调用预期的行为都非常耗时,例如加载一个实例,或者上传一个镜像。
ComputeWorker(nova-compute)
ComputeWorker处理管理实例生命周期。他们通过MessageQueue接收实例生命周期管理的请求,并承担操作工作。在一个典型生产环境的云部署中有一些computeworkers。一个实例部署在哪个可用的computeworker上取决于调度算法。
NetworkController(nova-network)
NetworkController处理主机地网络配置。它包括IP地址分配、为项目配置VLAN、实现安全组、配置计算节点网络。
VolumeWorkers(nova-volume)
VolumeWorkers用来管理基于LVM(LogicalVolumeManager)的实例卷。VolumeWorkers有卷的相关功能,例如新建卷、删除卷、为实例附加卷,为实例分离卷。卷为实例提供一个持久化存储,因为根分区是非持久化的,当实例终止时对它所作的任何改变都会丢失。当一个卷从实例分离或者实例终止(这个卷附加在该终止的实例上)时,这个卷保留着存储在其上的数据。当把这个卷重附加载相同实例或者附加到不同实例上时,这些数据依旧能被访问。
一个实例的重要数据几乎总是要写在卷上,这样可以确保能在以后访问。这个对存储的典型应用需要数据库等服务的支持。
Scheduler(nova-scheduler)
调度器Scheduler把nova-API调用映射为OpenStack组件。调度器作为一个称为nova-schedule守护进程运行,通过恰当的调度算法从可用资源池获得一个计算服务。Scheduler会根据诸如负载、内存、可用域的物理距离、CPU构架等作出调度决定。novascheduler实现了一个可插入式的结构。
当前nova-scheduler实现了一些基本的调度算法:
随机算法:计算主机在所有可用域内随机选择
可用域算法:跟随机算法相仿,但是计算主机在指定的可用域内随机选择。
简单算法:这种方法选择负载最小的主机运行实例。负载信息可通过负载均衡器获得。
以上所述是小编给大家介绍的OpenStack中的Nova组件详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!