云计算是一种利用互联网实现随时随地、按需、便捷地访问共享资源池的计算模式。云计算把管理一个计算中心的费用和维护硬件的费用转换到第三方,如亚马逊EC2。公司或者个人根据其业务负载快速申请或释放资源,只需支付实际资源的使用费用就可以在世界范围内部署所需服务。
美国国家标准与技术研究院将按需自助、快速弹性等定义为云计算的必备特征。虚拟化及其相关技术是目前实现这些特征的主要技术之一。云计算平台需要通过灵活的部署和搭建不同规模与类型的虚拟机群来应对各异的用户需求,从而实现其弹性服务。虚拟机调度是云计算环境下的一个重要机制。随着用户数量及业务增长的迅速增长,对大规模、大容量的虚拟机的快速部署提出了更高的要求。
1 背景与相关研究
1.1传统的虚拟机部署策略
传统的调度平台主要由调度中心、宿主机和虚拟机镜像模板库三部分组成,如图1所示。
1)调度中心:接收部署请求,根据该请求在机群中选择满足特定条件的目标宿主机。
2)宿主机:承载虚拟机的实例化及运行功能。主要包含宿主机管理、模板传输和实例化等模块。其中虚拟机管理模块用于提供虚拟机的运行及管理服务;模板传输模块用于从虚拟机镜像模板库中获取模板文件至宿主机;实例化模块用于对虚拟机镜像模板进行实例化。
3)虚拟机镜像模板库:用来存储与管理云计算平台预定制的各类型虚拟机模板。
图1 传统的部署模型
其部署流程如下:
a)调度中心接收部署请求;
b)调度中心根据部署请求及约束条件在集群中选择能够满足需求的一台宿主机作为目标主机,并将该请求转给该宿主机的虚拟机管理模块;
c)由宿主机上的模板传输模块从虚拟机镜像模板库中获取虚拟机镜像模板文件;
d)通过宿主机上的实例化模块将虚拟机镜像模板文件加载并实例化。
1.2传统的虚拟机部署策略的局限性
传统部署方法存在着如下三个方面的局限性:a)通常一个安装有操作系统和各种应用业务软件的虚拟机模板映像的容量在几个甚至几十个GB以上,传输这种大尺寸的映像文件往往需要很长的时间,降低了整体的部署效率;b)在部署含有大量虚拟机的集群时,会导致较高的网络传输开销;c)大多数虚拟机模板库依赖于集中式存储,其往往成为数据吞吐的瓶颈,而且其单点故障也会对平台的整体运行带来关键影响。
1.3 相关研究
针对上述问题,国内外一些学者在如何快速部署虚拟机、优化虚拟机调度效率等方面做了相关研究。文献[8,9]参考fork函数的思想,利用父虚拟机迅速克隆出大量子虚拟机,这样可以通过并行创建子虚拟机的方式来提高虚拟机调度效率。文献[6]给出了一种虚拟机快速克隆方法,利用写时拷贝技术来创建虚拟磁盘和内存状态的快照,然后用按需分配内存技术和多点传送技术来请求和传输这些状态信息。但上述机制依然依赖于集中存储式的架构。文献[10]提出聚合各宿主机的存储空间为一个通用存储池,并将虚拟机镜像模板分别存储在存储池中,通过并行数据传输来提高部署效率。其缺点在于镜像模板缺少冗余存储,当大量部署同一类型的虚拟机时,由于频繁的数据传输会大大增加该存储节点的负载。
2 优化的虚拟机模板部署策略
2.1 部署模型
本文在上述文献的基础上提出的云计算虚拟机调度由五部分组成,如图2所示。
图2 优化的虚拟机调度模型
1)调度中心:接收用户服务请求,根据该请求在服务器集群中选择满足用户需求的一台服务器作为宿主机,并将服务请求转给该宿主机。
2)宿主机:包含虚拟机管理模块、数据块传输模块、数据块合并模块、存储节点负载表和实例化模块。各模块功能如下:硬件配置模块,根据调度中心命令配置宿主机硬件环境;数据块传输模块,从数据块管理服务器上获取模板与数据块的信息,以并发方式从客户机存储资源处存储各数据块;数据块合并模块,将获取的各数据块合并为镜像模板;存储节点负载表,主要包含Data_path(分块存储位置)、Load_size(该存储节点负载量)、Down_speed(该节点的传输速度)。
3)数据块服务器:包含模板传输模块、数据块分割模块和数据块信息数据库。各模块功能如下:模板传输模块,从虚拟机镜像模板库中传输模板文件;数据块分割模块,将模板文件分割为大小相等的数据块(除最后一个数据块);数据块信息数据库,用于存储模板和数据块的相关信息,主要包括模板分块表和数据块存储表。
4)虚拟机镜像模板库:用来存储云平台所提供的虚拟机镜像模板和用户自己的虚拟机镜像模板。
5)机群存储资源池:将用各宿主机的部分可用存储介质组成共享的通用存储池,用于分布式存储虚拟机模板数据块,作为模板传输源。这种方法有两方面的好处:a)潜在的高扩展性,随着用户数目的增加自动增加虚拟机镜像模板的存储空间;b)它释放了大量的集中存储空间,促进I/O性能提高和提供了数据吞吐量。
2.2 部署前的准备工作
部署前的准备工作是数据块管理服务器从虚拟机镜像模板库中读取虚拟机镜像模板,将其分割为若干数据块,并分别部署到各宿主机组成的存储资源池中,同时将模板分割表和数据块存储表等相关信息存储在数据块信息数据库中。
先在数据块管理服务器上安装模板传输模块、数据块分割模块和数据块信息数据库。图2中流程如下:
(a)模板传输模块从虚拟机镜像模板库中读取虚拟机镜像模板文件。
(b)数据块分割模块将虚拟机镜像模板文件分割为若干数据块,同时记录各数据块的起始位置。完成分块任务后,将数据块分布存储在客户机资源池中。例如将一镜像文件VM1.vd分割为VM1_1.vd、VM1_2.vd、VM1_3.vd、VM1_4.vd和VM1_5.vd五个数据块。为服务的稳定性,这里采用冗余存储的方式,例如一台服务器上存储有VM1_1.vd,同时在其他服务器上存储VM1_1.vd的副本文件VM1_1.vd’。其存储示意如图3所示。
server1: VM1.1.vd VM1.3.vd’
server2: VM1.2.vd VM1.2.vd’
server3: VM1.3.vd VM1.4.vd’
server4: VM1.4.vd VM1.5.vd’
server5: VM1.5.vd VM1.1.vd
图3 数据块分布存储示意图
(c)对每一个虚拟机镜像模板分块信息存储在模板分块表中包含VM_name(模板名称)、Data_num(数据块数目);将数据块的存储信息存储在数据块存储表中,包含VM_name、Data_sequence(数据块序号)、Data_path(网络存储位置)、Start_pos(起始位置)、End_pos(结束位置)、Storage_num(存有该数据块的节点数目)。模板分块表和数据块存储表均存储在数据块信息数据库中。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云计算环境下虚拟机部署策略的优化(上)
本文网址:http://www.toberp.com/html/consultation/1083976446.html