消息队列协议——AMQP
高级消息队列是一个异步消息传递所使用的应用层协议规范。一般来说我们简称符合AMQP 协议的消息队列服务器为消息队列。消息队列在OpenStack中是计算节点nova-compute、存储节点nova-volume、网络节点nova-network、以及API 和各调度功能模块之间相互通信协作的重要媒介。AMQP 消息可以采用RabbitMQ(OpenStack默认)、Qpid等消息中间件实现。
调度器nova-scheduler
从AMQP队列中接受一个RPC消息,然后根据特定的策略将这个消息转发给其认为最合适的compute主机。考虑到部署环境何业务的差异性,要选择一个最为合适的消息调度策略比较复杂。Nova调度器支持各种可能的因素来进行决策,比如Compute负载、内存使用率、可用区域的物理距离,CPU使用率及CPU框架等。Nova调度其是以一种插件式的架构实现的。
ChanceScheduler:随机调度器,从所有开启指定服务(比如Compute服务、Volume服务等)的节点中随机选择。
SimpleScheduler:间断调度器,总是从可用的节点中选择负载最小的节点。目前提供了两种最小负载的选择:1.选择运行实例最小的主机。2.选择Volume使用最小的主机。
FilterScheduler:过滤调度器,根据指定的过滤条件及权重值选择最合适的节点。只对Topic为“compute”的请求有效。
MultiScheduler:多重调度器,包含多个子调度器,是多种子调度器的agiel组合体,更方便集成第三方指定的调度器
ChanceScheduler何SimpleScheduler由于调度算法比较简单,实用简直比较低,一般只在演示环境中使用。MultiSchduler本身并不包含具体的调度算法,实际起作用的事其包含的子调度器。
FilerScheduler处理大概分为两个步骤:过滤(Filtering)和权衡(Weighting)
计算资源管理
Nova的目标是将计算能力交付至用户,而Compute是整个Nova的核心,应该说最终是落到Compute上实现虚拟机的交付。Nova本身并不提供虚拟化技术,而是集成主流的开源虚拟化技术,包括KVM 、Xen、QEMU、VMware ESXi等。
Hypervisors是一种运行在基础物理服务器何操作系统之间的中间软件层,可允许多个操作系统何应用共享硬件,也可以叫做VMM (Virtual Machine Monitor),即虚拟机监视器。Hypervisors是一种在虚拟环境中的“元”操作系统,它们可以访问服务器上包括磁盘何内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,同时也在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统,同时会分配给每一台虚拟机适量的内存、CPU、网络和磁盘。
存储资源管理
存储是虚拟机不可缺少的关键设备。OpenStack参考了亚马逊的EBS,为了虚拟机提供持久化的块设备存储(Cinder)。
从网络结构上划分,可以将存储划分为:
直连式存储(Direct Attached Storage,DAS):直连式存储,我们常见的物理主机包含硬盘,通过主机的服务总线连接提供存储服务。DAS这种直连方式能够解决单台服务器的存储空间扩展、高性能传输续修,以块设备的方式提供存储服务,如我们常看到的硬盘/dev/sda、硬盘/dev/sdb。
网络接入存储(Network Attached Storage,NAS):是独立于物理主机、单独为网络数据存储而开发的一种文件服务器。NAS服务器集中连接了所有的网络数据存储设备(如各种磁盘阵列、磁带、光盘机等),存储容量可以较好地得到扩展,同时由于这种网络存储方式是NAS服务器独立承担的,所以,对原来的网络服务器性能基本上没有什么影响,可以确保这个网络性能不受影响。NAS提供了一个简单、高性价比、高可用性、高扩展性和低总拥有成本的网络存储解决方案。
存储区域网络(SAN):不是把所有的存储设备集中安装在一个专门的NAS服务器中,而是将存储设备通过交换机连接起来,形成存储网络。
nova-volume的存储设计有以下特点:
1 计算节点物理机提供计算能力,重点是提供CPU、内存,在配置上,它对存储的要求不高。
2 存储节点物理机采用低频CPU、内存,多硬盘的机架式服务器
Cinder包括API、调度Scheduler和存储适配cinder-volume 3个服务,其中cinder-volume可以部署至多个节点上。
网络资源管理
Openstack将IP资源划分为两大类:私网fixed IP 和公网floating IP,分别对应于数据网和公网。每个虚拟机均拥有一个私网IP,部分虚拟机还可以绑定公网IP。OpenStack基于DHCP方式实现私网IP的自动绑定,通过NAT方式实现公网IP的映射与转换。