欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

OpenStack 中的Nova组件详解

程序员文章站 2022-06-29 23:29:50
open stack compute infrastructure (nova) nova是openstack云中的计算组织控制器。支持openstack云中实例(ins...

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组件详解,希望对大家有所帮助