实验室云平台架构学习笔记

这些日子学习了实验室云平台的体系架构,在多次与小孟哥请教后对该架构有了一定了解。首先应明白建立云平台的目的,与传统的服务器相比,云平台可以将物理资源虚拟化为虚拟机资源池,灵活调用软硬件资源,实现对用户的按需访问。而且在运行过程中根据用户并发量不同,实时迁移虚拟机资源,一方面保证提供高质量服务,另一方面最小化资源成本,提高CPU、内存等利用率。


该架构主要分为4层,从底层到上层分别是资源层、虚拟层、中间件层、应用层。以下从底到上分别说明各层的构造和作用。


资源层:由服务器集群组成。传统服务器要想提供高质量服务,需要性能特别好的服务器(内存高,CPU快,磁盘空间大等),价格昂贵。而服务器集群可以使用以前性能不太好的服务器,利用分布式处理技术,依然可以提供可靠服务,节省费用。


虚拟层:有了物理机集群后,我们需要在物理机上建立虚拟机。建立虚拟机的目的是为了最小化资源成本(最大化资源利用率)。试想一下某台物理机有16G内存,当某段时间连续有小任务量的应用需要处理时,物理机的内存利用率会很低,所以为最大化资源利用率,可以在物理机上独立开辟几个虚拟机,每台虚拟机相当于一个小型服务器,依然可以处理应用请求。我们采用KVM来给每一台虚拟机分配适量的内存、CPU、网络带宽和磁盘,形成虚拟机池。(KVM就是虚拟机监控器hypervisor,可以给虚拟机分配资源,当然也可以开关虚拟机。同样还有XEN和OVM)。


中间件层:这层应该是云平台的核心层,主要功能为:对虚拟机池资源状态进行监测、预警、优化决策。①资源监测:实时监测当前各台虚拟机CPU、内存等使用情况,当然也监测用户应用请求,以便根据应用规模大小进行决策。②预警:防患于未然,根据当前虚拟机资源使用情况预测下一秒用户请求量,以便做出相应资源调整,防止宕机。比如CPU使用率上限为70%,所以当预测下一秒达到该触发点时,应有相应响应。当然,触发阈值应该有更科学的设定。③优化决策:预警之后,虚拟机要进行资源调度(迁移或伸缩),采用何种调度策略,才能保证服务和资源利用率是研究重点。由于该层需要对应用进行响应处理,所以需要在虚拟机上搭建操作系统,文件存储系统,以及服务器,当然最应该有负载均衡系统Nginx,其实现中间件层功能,相当于网络中的路由器不处理数据,只进行数据转发,数据处理交有虚拟机上的tomcat服务器执行。(也相当于hadoop中的Namenode,其他虚拟机相当于datanode)。


应用层:给用户提供可视化界面,应用若为存储:比如百度云会给用户提供交互界面,建立文件夹,进行数据存储,在线播放视频等界面,供用户选择操作。应用若为租用服务器:界面应该有租用的服务器资源状态。


补充:中间件层是核心,还有一个功能是初始化分配。就是说整个云平台第一次运行,第一次接收用户应用,考虑用户的应用规模很大,虚拟机处理完一个任务后还要继续处理下一个任务,所以要找到一个恰当的分配策略,使得满足高质量服务和资源成本最小。类比于数学建模中的论文—教师匹配问题,论文全部批阅完作为目标,如何给教师分配任务,使得他们工作量、工作时间接近是我们需要考虑的问题。这里面若教师处理速度不同就等价于异构多核处理器任务调度问题,若教师处理速度相同就等价于同构多核处理器任务调度问题。


另外,该平台是面向服务的体系架构(SOA),给用户的应用提供的是服务。这里面有个概念为组件服务。组件是已经编译好,并且可以使用的二进制代码,组件之间的组合可以组成一个应用程序。比如用户的应用为在线播放视频,那么云平台提供的组件应有在线播放组件及相关联组件,给用户提供的服务就是在线播放视频。而不同的组件组合,需要不同大小的虚拟机资源,所以为使资源利用率最大,需要合理进行组合。

你可能感兴趣的:(实验室云平台架构学习笔记)