摘要:本文主要分析nova各个子系统模块的功能、协作运行机理。
1.消息队列协议AMQP
高级消息队列协议AMQP是一个异步消息传递所使用的应用层协议规范。消息队列在openstack中是计算节点nova-compute、存储节点nova-volume、网络节点nova-network以及API和各个功能模块之间相互通信写作的重要媒介。AMQP可以采用rabbitMQ、Apid等消息中间件来实现。Nova组件通过RPC实现相互通信。采用典型的发布/订阅模式。
2.调度器——nova-scheduler
nova-scheduler是Nova中最简单的一个模块:从AMQP队列中接受一个RPC消息,然后根据特定的策略将这个消息转发给其认为最合适的compute主机。考录到部署环境和业务的差异性,要选择一个最为合适的消息调度策略非常复杂。Nova调度其支持各种可能的因素进行决策,比如Compute负载、内存使用率、可用区域的物理距离等。为了应对各种稀奇古怪、甚至不可预见的调度策略,Nova调度器是以一种插件的架构来实现的。
2.1过滤
每个计算节点都会在Nova数据库的compute_nodes表中保存你一个对应的表项,记录了计算节点所有可用的能力信息——内存容量、虚拟CPU个数、硬盘容量等。在进行过滤之前,需要先获取所有可用的计算节点信息,步骤如下:
(1)从compute_nodes表中获取计算节点的能力信息,并加入计算节点集合。
(2)从数据库获取已经创建的云主机的实例信息。
(3)从云主机所在的计算节点中减去云主机实例所占用的资源,从而得到剩余资源。
2.2权衡
成本表示宿主机与请求的符合程度,是主机特征与宿主特征对比以后得出的结果。当主机特征和请求特征契合的时候,成本较低。调度器衡量的过程如下:
(1)创建一个何曾本计算函数结果的矩阵,每个主机对应于一行,每个成本计算函数对应于一列
(2)根据权重银子和成本计算函数来计算矩阵中每个单元的值
(3)每行各列相加,得到主机权重
(4)取权重最小的作为最优选择。
3.计算资源管理
nova集成了多种虚拟化技术,其中nova-compute需要关注的是通过Hypervisor分配cpu/内存/磁盘/网络等给虚拟机,其中cpu是compute直接分配,磁盘和网络通过volume、network提供。compute如何实现这些资源的交付呢?
libvort实现kvm、qemu等hypervisor的集成,计算资源服务通过适配的方式提供对不同虚拟化技术的集成,nova-api通过调度其发送计算资源管理指令到计算节点nova-compute,计算节点nova-compute接受指令之后,获取信息调用底层虚拟化适配libvirt中的不同驱动driver,与底层虚拟化软件进行交互。
4.存储资源管理
4.1常见的存储概念
直连式存储(DAS),我们常见的物理主机包含硬盘,通过足迹的服务总线链接来提供存储服务。可以解决单台服务器的存储空间扩展,高性能传输需求,以快设备的方式提供存储服务。
网络接入存储(NAS),独立于主机、弯度为网络数据存储尔开发的一种文件服务器。NAS服务器集中连接了所有的网络罗数据存储设备,扩展性好,同时这种网络存储方式是NAS服务器独立承担的。所以,对原来的网络服务器性能基本没有影响。NAS&&DAS最大的别却是NAS蔡永乐文件系统方式,尔DAS采用了快设备方式。NAS存储一般采用NFS协议的方式,实现不同主机之间的文件共享。
存储区域网络san,不是将所有的存储设备集中安装在一个专门的nas服务器中,而是将存储设备通过交换机连接起来,形成存储网络。因为网络传输协议的不同,san种类也有所不同。
大规模的生产环境一般都采用san,nova蔡永乐iscsi协议的存储方式。nova-volume存储适配有多种方式,有基于iscsi的IP-SAN方式,有规划中的集群文件系统Ceph方式。在Folsom版本后渐引入了Cinder项目,用于替换nova-volume模块,Cinder具备更强大的管理能力。
4.2Cinder功能
Cinder的功能是实现存储服务,根据实际需要快速为虚拟机提供设备创建、挂载、回收以及快照备份控制等。Cinder包括API、调度Scheduler和存储适配cinder-volume 3个服务,其中cinder-volume可以部署到多个节点上。cinder-scheduler和nova-scheduler类似,根据服务寻找合适的服务器cinder-volume,发送消息到cinder-volume节点,由cinder-volume提供弹性云存储服务。
因为实际环境中,存储服务厂商有很多,采用了各种各样的存储访问协议,如ISCSI、NFS等。这就需要进行适配,根据API服务提供的接口来实现块设备的提供。所有的存储设备中使用的连接协议基本都是iSCSI和NFS两种,从计算节点使用的角度来说,他们很相似,我们接下来剖析这两种协议。
4.3iSCSI适配
iscsi又称为IP——SAN,是一种基于internet和scsi-3协议之下的存储技术,通过IP协议将存储设备连接到一起,实现数据传递,它是SAN市场快速发展的因素之一。iSCSI后端存储架构有三种——控制器架构、pc架构、pc+toe架构
openstack如何基于机架方式服务器方式的软件iSCSI服务?
1)存储节点部署上nova-volume/cinder-volume之后,作为存储target提供块设备服务。
2)计算节点nova-compute作为存储客户端Initiator,查找存储节点的存储单元LUN,并挂载到本机,识别为块设备,并分配设备给虚拟机。
4.4 NFS适配
与上面不同,NFS是文件系统,可以理解为文件夹(目录),它最大的特性是文件共享。
5.网络资源管理
5.1 IP资源管理
5.2 DHCP自动分配IP
5.3 网络连接管理
5.4 虚拟交换机管理
5.5 nat网络映射
5.6 网络安全管理
5.7 Quantum 项目介绍
云计算与openstack (三)openstack 功能剖析
原文:http://blog.csdn.net/trochiluses/article/details/19416015