版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西北工业大学硕士学位论文 第三章 按需虚拟集群管理平台架构研究图3-9 核心工作流程1)用户根据自身的计算服务需求,以XML文件的形式给出虚拟集群的定制请求。2)将请求提交给系统管理节点进行请求处理解析。3)从用户提交的定制文件中解析出相应的虚拟机配置信息,生成不同的虚拟机对象,以便之后的虚拟机部署使用。4)根据用户提交的定制文件,结合计算服务的自身需要,生成针对不同虚拟机的配置脚本,用于虚拟机之间实现自动聚合。5)对系统物理资源的使用情况进行分析,结合用户计算服务的自身特点选择合适的资源映射方案。6)参照资源映射方案和不同虚拟机对象,对虚拟机进行并行部署(包括虚拟机的创建与镜像文件加载两部分
2、),同时可以进行启动、关闭、挂起等操作。7)管理节点将不同的配置脚本传输到对应的虚拟机节点,并开始脚本文件的执行,启动自动聚合。8)当自动聚合完成后,按需的虚拟集群平台搭建完成,可用于特定的计算服务。对平台核心工作流程进行分析,提出按需虚拟集群管理研究的四个技术难点:1)如何规范化用户的服务定制请求,如何对请求进行处理。2)如何制定资源映射方案,建立虚拟机与物理主机之间的对应关系。3)如何实现虚拟机准确快速地部署。4)如何实现虚拟机之间的自动聚合,无需人工干预。第四章 关键模块设计与实现本章对系统几个关键模块的设计与实现进行研究,首先对用户定制请求进行处理,对相关数据结构进行描述;接下来对不同
3、计算服务请求下的资源映射方案进行讨论和选择;之后讨论了在当前物理拓扑下如何实现多虚拟机部署及相关类结构;最后针对多虚拟机之间如何实现自动聚合进行了研究。11.1 定制请求处理本系统为用户提供XML文件模板,以便用户根据自身的计算服务需求提交请求,系统对固定格式的文件进行解析,生成相应的数据结构与配置文件,用于虚拟集群的搭建。虚拟集群是一个具有作业执行能力的资源实体,独立于特定的虚拟化管理器和硬件结构,其XML定制文件描述了虚拟集群中不同资源的配置请求信息,系统按照特定的标签进行解析,并对结果进行保存处理,方便虚拟集群的搭建。1.1.1 请求参数提取如图4-1所示,虚拟集群的定制参数由集群名称和
4、若干虚拟机定制参数组成,其中虚拟机定制参数又可细分为硬件定制参数、软件定制参数、网络定制参数和服务定制参数四大部分。图4-1 虚拟集群定制参数树状图与集群定制相比,虚拟机定制需要更多贴近实现的,具体的配置参数。一个虚拟机的配置主要包括了一下四大部分,如图4-2所示。图4-2 虚拟机配置1)硬件资源配置:主要需要当前虚拟机申请的CPU内核数、内存大小、硬盘大小等。在此系统中,物理网卡MAC地址由系统自动分配,因此不包括在硬件定制参数之中。2)软件资源配置:主要需要当前虚拟机应加载的操作系统镜像信息,包括镜像名称,操作系统名称、版本,同时还需要安装配置的应用服务名称。3)网络资源配置:主要需要当前
5、虚拟机不同网卡的网络配置参数,若当前虚拟机为集群管理节点,还需要网关配置参数。4)服务配置:主要需要集群基础服务的配置参数,如主机名、账户管理、NFS协议、SSH协议等。1.1.2 定制请求描述通过上一小节对虚拟集群定制参数的分类提取,借助XML语言建立定制请求模型,进行标准化的资源需求、运行环境配置和服务配置等描述。XML语言具有灵活、简单、易于扩展、易于解析等特点。系统通过使用XML自定义标签,实现虚拟集群定制请求描述。图4-3说明了虚拟集群定制文件格式。其中文件规则如下:1)若imagename参数值不为none,则忽略之后osname与osversion参数值。镜像文件本身就打包了特定
6、的操作系统,与之后操作系统的名称与版本相冲突,以前者为准。2)masternode参数为布尔型类,若其值为false,则忽略之后gateway与gwDevice参数值。集群管理节点拥有公网IP,需要配置网关,实现对外通信,而其余计算节点无需进行该配置。图4-3 虚拟集群定制文件格式1.1.3 虚拟机信息管理对用户创建的虚拟集群定制文件,本系统使用JAVA结合DOM(Document Object Module)进行XML文件解析,生成虚拟集群搭建所需的数据结构和类。虚拟集群管理的基础是虚拟机,它是运行在虚拟环境下的实体在上面能运行各种应用服务程序,不必关心底层硬件的细节。虚拟机要运行需要由虚拟
7、机监控器给它分配CPU和内存,然后挂载虚拟磁盘,加载Guest OS,进行网络配置,最后启动运行。本模块即对所有虚拟机进行统一管理和控制。图4-4是系统UML实体类图。图4-4 系统UML实体类图(1) VirtualCluster类虚拟集群类是由XML文件根元素所映射的类,主要由集群名称属性和虚拟机集合属性组成。表4-1 VirtualCluster属性属性描述clusterName集群名称vmListList容器,元素为VirtualMachine对象(2) VirtualMachine类VirtualMachine对象描述系统中的虚拟机实例,其中VirtualMachine有以下属性,系
8、统会将定制文件解析生成VirtualMachine对象,并据此进行虚拟机实体的创建,其属性如表4-2。表4-2 VirtualMachine属性属性描述vmName虚拟机名称硬件资源定制属性cpuNumber请求CPU资源份额memory申请内存大小diskSize申请磁盘大小软件资源定制属性imageName挂载虚拟映像名称;none表示未设置osName操作系统名称osVersion操作系统版本appName应用服务软件名称网络资源定制属性masterNode当前虚拟机是否为管理节点interfaceListList容器,元素为Interface对象上下文定制属性hostname主机名名称
9、accountsList容器,元素为User对象基础服务定制属性nfsNFS对象,包含nfsServer与nfsDir属性sshSSH对象,包含needPasswd属性state虚拟机状态部署属性hostId部署hostId;-1为没有部署(3) Interface类不同Interface对象对应虚拟机上的不同网卡,描述相应的网络配置信息,包括网络地址和网卡所属网络组(也称端口组)等。其属性如表4-3所示。表4-3 Interface类属性描述name网卡名称ip当前网卡对应IP地址netmaskIP地址对应的子网掩码mac网卡物理地址,系统自动分配gateway网关地址,网卡配置公网IP时有
10、效,默认为noneonboot开机是否启动enabled网卡当前是否可用networkName网卡所属网络组,系统自动划分(4) VirtualMachineManager类 此类用于实现对VirtualMachine生命周期的控制,功能如表4-4。它根据Master节点的调度管理信息,执行需要的操作。其消息格式为三元组形式,即(vmName,hostId,action),action定义为需要执行的操作,根据hostId查询主机的url、username与password,连接到不同主机,进行管理。表4-4 虚拟机管理操作方法参数返回值功能deployAction(vmName,hostId
11、)bool部署到指定主机loadimageAction(vmName)bool加载系统镜像rebootAction(vmName)bool重启虚拟机saveAction(vmName)bool保持成快照文件restoreAction(vmName)bool对虚拟机进行恢复shutdownAction(vmName)bool关闭虚拟机1.2 资源映射方案本文基于三类资源提出映射模型,分析决策影响因素,在模型基础上对现有的几种映射算法进行修改组合,作为平台的资源映射方案。平台根据用户的计算服务需求,结合当前物理资源的使用情况,选择合理的映射方案进行虚拟机的部署。1.2.1 资源映射模型资源映射的关
12、键是将虚拟集群的资源申请和物理节点的负载模型化,以便调度器进行合理的决策。在本系统中将这两者都表示为与CPU、内存、网络相关的三维向量<CPU,mem,net>31,调度算法同时兼顾这三类资源,避免优化某类资源分配时影响其他资源。图4-5为本系统的资源映射模型。图4-5 资源映射模型虚拟机资源申请Rvm=<Rvm_CPU,Rvm_mem,Rvm_Net>;虚拟集群定制请求Rvc=Rvm1,Rvm2,Rvm3,RvmN;物理节点资源信息Rpm=< Rpm_CPU,Rpm_mem,Rpm_Net >;虚拟机的负载情况由三种资源的利用率Lpm=< Lpm_C
13、PU,Lpm_mem,Lpm_Net >表示;系统的运行信息U= Rpm1, Lpm1, Rpm2, Lpm2, Rpm3, Lpm3,RpmN, LpmN。调度的目的是通过分析系统资源利用情况,生成合理的资源映射方案,即一组映射关系,如(Rvm1->Rpm3,Rvm2->Rpm1,)。 1.2.2 影响因素分析影响决策制定的因素有很多32,33,比如:(1)不同用户对于应用部署方式的需求是不一样的。用户做仿真试验需要多台虚拟机,而这些虚拟机不会有很大的负荷,为了方便以及减小干扰,用户常常希望将这些虚拟的机器全部启动在一个物理节点上;用户如果要部署web应用,需要利用这些虚拟
14、机去完成负载比较大的任务时,这时又希望将这些虚拟机均衡地启动在多个物理节点上,尽可能的使每台机器都能拥有充足的资源,并能实现容错和负载平衡。(2)不同应用对于资源的需求是不同的。以石油勘探行业为例,油储模拟对内存带宽比较敏感,而地震资料处理则需要很多的CPU计算资源。(3)不同时段,系统的负载状况是不一样的。这类似于城市公交流量,白天有高峰期,而晚上负载很低。基于此,对于不同时段应使用不同的分配策略。在负载高峰期,应将新的虚拟机申请放置到较低负载的节点(或启动新主机节点),以避免系统中节点超载;而在接近晚上时,又需要采取将虚拟机集中起来,空闲出一些低负载主机,并关闭以节约资源。1.2.3 映射
15、原则介绍在决定虚拟机的宿主机时,有两个基本原则需要遵循,即资源满足性原则与资源均衡性原则。首先根据满足性原则筛选候选主机,当多台主机均可以满足要求时,优先选择安置虚拟机后资源利用均衡度高的主机。(1)资源满足性原则假设虚拟机申请的资源配额定义为<Rvm_CPU,Rvm_mem,Rvm_Net>,分别表示对CPU,内存,网络的需求大小;物理主机总资源为< Rpm_CPU,Rpm_mem,Rpm_Net >;当前资源利用率为< Lpm_CPU,Lpm_mem,Lpm_Net >。系统计算当前主机可供分配的资源,基于经验为资源利用率设置上限值80%,即某种资源利用
16、率超过80%时,认为该资源处于预警区(或过载区),剩余可供分配资源为0,否则通过公式计算当前资源可用量。图4-6以CPU为例(内存,网络类似),对计算公式进行了说明。图4-6 CPU空闲资源计算虚拟机CPU并不是真实的CPU,而是VCPU,一般来说这个VCPU可以看作物理CPU上真实运行的进程32。虚拟机CPU资源性能相关参数有VCPU申请数量、虚拟机CPU占用VMM所分配物理CPU时间片权重、物理CPU主频三大部分。物理CPU资源总量Rpm_CPU为物理CPU主频f与内核数NCPU之积,即 公式4-1 虚拟机请求CPU资源总量Rvm_CPU为物理CPU主频f、虚拟机申请的VCPU数量NVCP
17、U和虚拟机在VMM的资源调度时间片权重WVM之积,即 公式4-2当公式4-3成立时,表示当前的主机符合虚拟机部署的满足性原则。 公式4-3 (2)资源均衡性原则一台物理主机的负载我们主要通过CPU、内存与网络的三维向量进行衡量。在制定映射方案时,要尽量平衡这些资源的利用度。比如当物理节点的空闲内存相对不足,而其他资源充分时,就不应该再在该主机上部署内存需求大的虚拟机。我们通过公式4-4,对一台物理主机的资源利用均衡度进行计算。 公式4-4其中,分别表示物理主机的CPU利用率 内存利用率和网络带宽利用率,是的平均值。是三种资源利用率的方差值,反映了系统资源利用率的均衡情况,值越小说明资源利用均衡
18、度越好。比如,有2台主机的资源利用率为:,则PM2的资源利用均衡度更好。1.2.4 多策略映射结合上一小节介绍的两个基本原则,以系统整体负载情况为依据,本文改进了现有的三种虚拟机部署策略。(1)紧压策略 当系统整体负载较低时,由于绝大多数的物理主机的负载均未达到最佳,我们优先将虚拟机部署到这样的物理主机,即部署之后当前物理主机负载最接近利用率最佳值。通过定义紧压度Fitness来量化主机的负载轻重,其计算方式如公式4-5。其值越小,说明主机越得到充分利用。这样,不断地向相对负载高的主机放置虚拟机,可使负载逐步集中。采用二次函数,其意义在于资源利用率越偏离最佳值,对Fitness的影响越大。每次
19、虚拟机的部署都是从符合资源满足性原则的物理节点中选择Fitness值最小主机进行。 公式 4-5(2)贪婪策略当系统整体负载较高时,即大多数物理主机的负载均超过了最佳值,虚拟机部署应寻找这样的主机,在上面部署后其负载相对较低,根据公式4-5,每次虚拟机的部署都是从符合资源满足性原则的物理节点中选择Fitness值最大主机进行。(3)填充策略当系统整体负载处于最优区时,资源利用率相对较高,之后的虚拟机部署可能有多个宿主机可选,此时需要考虑放置虚拟机后,物理主机的资源利用均衡度增加,比如物理主机的各个资源利用率为,即内存可供分配的资源已不多,其他资源还充足。这时应在此物理节点放置内存需求少,而CP
20、U(或网络)需求到的虚拟机。如公式4-6所示,表示目前物理主机的各种资源利用的均衡度,是放置虚拟机后的均衡度,则越大越好,说明有效地提高了物理主机的资源利用均衡度。 公式4-6本文通过对上述三种改进后的映射策略进行组合,提出两种适合不同应用服务特点的映射方案:(1)集中式方案 该方案适用于测试应用的虚拟集群定制需求,如应用MPI高性能计算集群进行实验,为了避免其他因素的干扰,尽可能的将虚拟机部署到少量的物理主机上。假设需要部署的虚拟机集合为Rvc=Rvm1,Rvm2,Rvm3,RvmN,虚拟机两种标记状态为unchecked(表示未判断能否在当前物理主机部署)和undeloyed(表示不能在当
21、前主机部署),其方案如算法4-1所示。算法4-1:集中式方案剖析算法输入参数:虚拟机集合Rvc=Rvm1,Rvm2,Rvm3,RvmN;所有物理主机的集合Rpc=Rpm1,Rpm2,Rpm3,RpmN;被选中物理主机集合SRpc=;当前映射虚拟机current_Rvc;当前被选中主机current_Rpc输出参数:虚拟机与物理主机映射关系 1. while true do2. 初始化Rvc所有元素状态为unchecked3. current_Rvc 从Rvc随机选择一个元素4. SRpc 在Rpc集合内基于贪婪策略选择物理主机5. if size_of_SRpc >1 then6. cu
22、rrent_Rpc 基于填充策略优先选择部署后物理资源利用均衡度高的物理主机7. else8. current_Rpc SRpc中唯一元素9. end if10. 建立current_Rvc 与current_Rpc之间部署映射关系11. 在Rvc中删除current_Rvc12. 清空SRpc13. while Rvc内存在状态为unchecked的虚拟机元素 或者 Rvc为空do14. if Rvc为空 then15. 虚拟机映射完成16. return17. else 18. current_Rvc 从Rvc选择一个状态为unchecked的虚拟机元素19. if current_Rvc
23、映射到current_Rpc符合资源满足性原则 then20. 建立current_Rvc 与current_Rpc之间部署映射关系21. 在Rvc中删除current_Rvc22. else23. 将Rvc内current_Rvc对应元素状态修改为undeloyed24. end if25. end if26. end while27. end while(2)均摊式方案当用户部署诸如web应用集群时,则希望将一组虚拟机均摊放到多个物理主机上,以获取充足资源和实现负载均衡,避免单点故障。假设系统管理所有物理主机集合为Rpc=Rpm1,Rpm2,Rpm3,RpmN,两种标记状态为unselec
24、ted(表示当前物理主机还未被选定)和selected(表示当前主机已被选定),其方案如算法4-2所示。算法4-2:均摊式方案剖析算法输入参数:虚拟机集合Rvc=Rvm1,Rvm2,Rvm3,RvmN;所有物理主机的集合Rpc=Rpm1,Rpm2,Rpm3,RpmN;被选中物理主机集合SRpc=;当前映射虚拟机current_Rvc;当前被选中主机current_Rpc输出参数:虚拟机与物理主机映射关系1. 初始化Rpc所有元素状态为unselected2. while true do3. if Rpc所有元素状态为selected then4. current_Rvc 从Rvc选择一个虚拟机
25、元素5. SRpc 在Rpc集合内基于贪婪策略选择物理主机6. if size_of_SRpc >1 then7. current_Rpc 基于填充策略优先选择部署后物理资源利用均衡度高的物理主机8. else9. current_Rpc SRpc中唯一元素10. end if11. else12. current_Rvc 从Rvc选择一个虚拟机元素13. SRpc 在Rpc所有unselected状态元素子集中基于贪婪策略选择物理主机14. if size_of_SRpc >1 then15. current_Rpc 基于填充策略优先选择部署后物理资源利用均衡度高的物理主机16.
26、 else17. current_Rpc SRpc中唯一元素18. end if19. 设置Rpc集合中current_Rpc对应元素状态为selected20. end if21. 在Rvc中删除current_Rvc22. if Rvc为空 then23. 虚拟机映射完成24. return25. end if26. end while1.3 并行虚拟机部署在映射方案制定完成后,管理节点需要对虚拟网络进行管理与划分,以保证虚拟机与外部网络、虚拟机之间能够正常通信,防止IP冲突发生,还要为虚拟机选择合适的镜像文件,准备之后的镜像加载。为了提高镜像加载的速度和效率,在为不同虚拟机选定镜像文件后
27、,采用多线程方式执行加载操作。1.3.1 虚拟网络管理管理节点对虚拟网络进行划分,主要是为了解决如图4-7所示问题,系统创建两个集群Cluster1与Cluster2,其中C1_VM1、C2_VM1这两台虚拟机均部署于主机Host2上,分别为各自集群的内部节点,其网卡eth0配置的IP地址均为192.168.1.2,在这种情况下,如不进行虚拟网络划分,则出现IP冲突。如虚拟机C1_VM2无法正常与C1_VM1进行通信,原因是存在两个IP地址为192.168.1.2的虚拟机节点。图4-7 系统网络配置问题 为了解决上述问题,管理节点需要对虚拟网络进行划分。简而言之,就是为每个虚拟集群定制请求创建
28、独立的网络分组,也就是虚拟机端口组,配置独立的VLAN,保证不同的虚拟集群之间互不干扰的运行。系统虚拟网络被划分为两大部分:公共虚拟网络(公共虚拟机端口组)和集群虚拟网络(集群虚拟机端口组)。公共虚拟网络仅有一个,管理的都是集群管理节点上配置有公网IP的虚拟网卡,保证它们可以与外部网络连接通信;集群虚拟网络与虚拟集群一一对应,并配置成不同的VLAN网络,管理的是一个集群里所有配置有内部IP的虚拟网卡,保证集群内部的通信,隔离其他集群。图4-8 虚拟网络划分如图4-8所示,publicVNet为公共虚拟网络,其中管理了redhat_cluster与rh_cluster两个集群的管理节点,分别为r
29、edhat_master与rh_master,它们可以与外部网络通信;为了保证两个集群之间互不影响,为每个虚拟集群单独创建一个集群虚拟网络,并配置不同的VLAN id,这样集群内部虚拟机之间的通信被约束在VLAN范围内,从而实现不同集群的隔离。系统在初始化时,调用特定接口创建一个公共虚拟网络,它在系统的生命周期中唯一存在。针对每个集群定制请求,系统会在虚拟机部署之前为集群创建独立的集群虚拟网络,并配置一个随机生成的未曾使用的VLAN id,该操作也是通过调用API实现。由于系统部署的是分布式虚拟交换机,所以当前的虚拟网络划分对所有主机均有效。之后在虚拟机部署过程中,根据虚拟机对象网卡属性与虚拟
30、网络名称的对应关系完成不同虚拟网卡的创建与分组工作。由于VLAN可以划分广播域,且不同集群所处虚拟网络的VLAN id不相同,可以保证集群之间互不干扰。按照虚拟网络的设计方案进行抽象,主要实现一下两个类:(1) VirtualNetwork类一个VirtualNetwork对象表示一个创建的虚拟网络,也表示一个划分了的虚拟机端口组。按照VirtualNetwork对象对创建后的虚拟机进行管理。此类主要属性如表4-5所示。表4-5 VirtualNetwork类属性属性值域描述vnNameString虚拟网络名称,是唯一标识clusterNameString当前虚拟网络对应集群,空串表示公共虚拟
31、网络VLANIdInteger虚拟网络所划分VLAN号,-1表示公共虚拟网络bridgeString虚拟网络将连接的物理主机网桥名称ifListList<Interface>虚拟网络所管理虚拟网卡集合(2) VirtualNetworkManager该类功能为对系统中所有被使用的虚拟网络进行统一管理,使网络资源得到良好的使用。类方法如表4-6所示。表4-6 VirtualNetworkManager的方法方法输入参数返回值功能createPublicVNet无VirtualNetwork创建公共虚拟网络createClusterVNet(clusterName)VirtualNet
32、work 创建集群虚拟网络deleteVirtualNetwork(vnName)Bool删除虚拟网络addInterface(vnName ,interface)Bool向虚拟网络增添虚拟网卡rmInterface(vnName ,interface)Bool从虚拟网络删除虚拟网卡createNewVLANId无Integer生成新的VLAN号GetPublicVNet无VirtualNetwork获取公共虚拟网络1.3.2 镜像文件管理一个虚拟机环境可细分为三部分34:硬件环境(虚拟机分配的CPU、内存等)、软件环境(虚拟机安装的操作系统)和应用服务(用于计算服务的软件)。在传统的软件交付
33、中,应用服务与软硬件环境紧耦合。部署应用服务过程中,首先需要收集环境信息,配置软硬件环境,再安装应用软件,集成多个组件,十分繁琐耗时,且容易出错,在新的环境下又需要重头再来。以虚拟机镜像文件进行软件交付,以虚拟机形式部署应用服务,能有效提供部署效率。虚拟机镜像结构可以为以下两种形式:(1)预安装操作系统。在这种情况下,虚拟机镜像只是一个打包了操作系统的文件,可以用它作为虚拟机加载的硬盘映像(包括内核,启动分区和根文件系统)。同时需要一个装备库服务器,对应用软件进行统一管理。针对用户不同的应用定制需求,虚拟机在成功加载镜像文件后,通过NFS等技术挂载装备库,实现软件的部署。如图4-9所示,各种应
34、用服务软件安装在装备库服务器中,当虚拟机软硬件环境配置完成后,通过NFS协议将定制应用软件的目录挂载到本机,并进行一系列配置,完成应用服务部署。图4-9 装备库服务器式拓扑(2)预安装操作系统与应用软件。在这种情况下,虚拟机映像不仅预安装了操作系统,而且安装了应用软件。这样可以一次性完成软件环境和应用软件的部署,同时系统结构也不会过于复杂,如图4-10所示。图4-10 虚拟机镜像结构本文采用预安装操作系统与应用软件的镜像结构,对虚拟映像统一管理,在虚拟机创建过程中,通过指定镜像文件名称或是操作系统名称、版本、应用服务名称完成映像加载。本文使用Image类描述虚拟镜像,用ImageManager
35、对系统的镜像文件进行统一管理。(1) Image类一个Image对象描述一个虚拟机映像实体,其属性如表4-7。其中既可以通过imageName,也可以通过结合osName、osVersion和应用软件名称指定一个镜像。path属性值是虚拟机映像在Linux文件系统中的路径。type属性值是虚拟映像的类型: OS类型映像持有一个可启动的操作系统环境,每个虚拟机都必须关联一个此类OS映像作为其虚拟硬盘设备。CDROM类型映像持有一个CDROM只读的数据,能被多个虚拟机共用。DATABLOCK类型映像为数据存储映像,能被多个虚拟机使用和修改,一个虚拟机也可包含多个DATABLOCK映像。创建DATA
36、BLOCK映像时,可以包含一些已存在的数据,也可以是空的。表4-7 Image类属性列表属性 值域描述imageNameString映像名称,唯一标识pathString映像文件绝对路径typeEnumOS,CDROM,DATABLOCKstateEnumINIT,READY,USED,DISABLEDosNameString映像操作系统名称osVersionString映像操作系统版本appMapMap<String,String>存放应用软件名称(key)与应用软件路径(value)的映射关系descriptionString映像描述信息(2) ImageManager类 该类
37、负责对镜像文件的统一管理,其方法如表4-8所示。 表4-8 映像管理类方法方法输入参数返回功能createImage(imageTemplate)String用描述文件创建映像实例diskToImage(imagePath)Image 虚拟硬盘转换为映像acquireImageByName(imageName)Image 根据镜像名称返回相应映像acquireImageByOs(osName,osVersion,appName)Image根据操作系统和应用软件信息获取映像deleteImage(imageName)bool删除映像(3) 镜像描述文件镜像描述文件记录操作系统和应用软件配置信息,
38、用于生成对应的镜像文件,实例如图4-11所示。图4-11 镜像描述文件镜像文件的加载流程如下: 1)系统初始化时,ImageManager类读取解析镜像描述文件,获取镜像文件的存储路径path。 2)根据path属性值将相应的镜像文件拷贝到NAS存储系统,该存储被系统内所有物理主机挂载共享。 3)根据镜像描述文件的内容创建Image类对象,调用系统方法用于镜像文件的快速查找。 4)根据用户的定制请求,映射合适的镜像文件,在虚拟机创建后调用VirtualMachineManager类方法进行加载。1.3.3 多线程部署在制定映射方案和划分虚拟网络结束后,需要对虚拟机进行部署。本系统中虚拟机的部署
39、主要分为两大部分:虚拟机的创建和镜像文件的加载。虚拟机的创建主要包括CPU、内存等资源的分配,虚拟网卡网络分组的配置;镜像文件的加载包括操作系统和应用程序的部署,虽然镜像加载步骤相对简单,但是由于镜像文件一般在2G以上,所以整个加载过程需要较长时间。针对这样的情况,提出如下部署几种方案:(1)虚拟机顺序部署。这种方式最为简单,基于分布式网络的同步通信模式对虚拟集群中的虚拟机逐个进行部署。集群部署完成后,将不同配置文件上传到对应虚拟机,启动自动聚合操作。由于整个虚拟集群部署的时间等于各个虚拟机部署的时间累加,所以效率最低。(2)虚拟机异步部署。这种方式基于分布式网络的异步通信模式,管理节点以异步
40、方式启动各虚拟机的部署任务,之后进行其他操作。当虚拟机部署完成后,调用对应的回调函数,通知管理节点部署完成。这种方式极大地减低了虚拟部署的时间,但是实现起来相对复杂,而且不方便对部署后的虚拟机自动聚合过程进行同步。(3)虚拟机多线程部署。这是本系统使用的虚拟机部署方案,它结合了多线程并发技术与同步通信模式进行操作。如图4-12所示,管理节点请求处理主线程为每个虚拟机部署任务启动一个线程,线程之间互不干扰;每个线程实现虚拟机的同步部署操作。管理节点请求处理主线程对所有线程进行管理,保证所有虚拟机部署成功后启动集群的自动聚合操作。图4-12 多线程部署时序图1.4 虚拟机自动聚合在虚拟机部署完成后
41、,需要对虚拟机进行一系列配置使它们成为可以协同工作的集群。这个过程称为虚拟机的自动聚合。管理节点解析用户定制请求生成针对不同虚拟机的配置脚本,上传至对应虚拟机后启动执行,实现虚拟机基础环境配置、集群协议配置和集群计算服务配置等。这个过程的关键是如何生成集群不同角色节点的配置文件,如何实现虚拟机的自动配置,如何同步虚拟机之间的集群协议配置。1.4.1 自动聚合分析虚拟集群自动聚合主要由三大部分组成:虚拟机基础环境配置、集群协议配置和集群计算服务配置。其中虚拟机基础环境配置由管理节点为每个节点生成的虚拟机配置文件完成,包括对网络、用户、主机名等进行配置。集群协议配置包括了NFS协议与SSH协议,由
42、预先打包在镜像文件中的协议配置脚本完成。最后集群计算服务的配置也由打包在镜像文件中的配置脚本完成,根据应用服务的特点完成相应操作。自动聚合的关键是镜像中打包的标记文件。标记文件记录了自动聚合下一步应执行的操作。其值与含义如表4-9所示。表4-9 标记文件标记值标记含义 configBasicEnv对虚拟机基础环境进行配置 configNFSandSSH对集群协议NFS、SSH进行配置 configApplication对特定的计算服务进行配置该标记文件供两个配置脚本读取:虚拟机配置脚本和Linux启动脚本rc.local。虚拟机配置脚本根据标记文件执行相应的配置操作;rc.local脚本在操作
43、系统启动时读取标记值,决定是否执行配置操作。其状态转换如图4-13所示。图4-13 状态转换图管理节点上传虚拟机配置脚本,执行脚本过程中判断标记文件值为configBasicEnv,对基础环境进行配置,并将下一步操作configNFSandSSH写入标记文件。由于基础环境的配置需要重启系统生效,所以在这步执行结束后对系统进行重启。系统重启时执行rc.local脚本,判断标记文件值为configNFSandSSH,调用虚拟机配置脚本进行集群协议配置,并将下一步configApplication写入标记文件,重启系统。系统再次重启,rc.local脚本判断标记文件值为configApplicati
44、on,再次调用虚拟机配置脚本进行应用服务配置,并将标记文件状态设置为初始值。整个自动聚合的过程到此结束。1.4.2 配置文件管理(1) ConfigFileManager类管理节点需要对配置脚本进行创建、管理、上传和远程执行等操作。系统定义一个配置文件管理类,实现了上述的各种操作,其方法如表4-10所示。表4-10 配置文件管理类方法方法输入参数返回功能createConfForMaster(clusterName)String为集群管理节点创建配置文件,返回文件名称createConfForCompute(clusterName)String 为集群计算节点创建配置文件,返回文件名称uploadConfToVM(filePath,vmName)bool将配置文件上传到特定虚拟机downloadResult(vmName,filePath,localPath)bool将脚本文件执行结果下载到本地目录下runShellInVM(vmName,filePath)void启动执行虚拟机上的某个脚本文件runCommandInVM(vmName,commandStr)void在虚拟机上执行命令(2) 虚拟机配置文件虚拟机的自动聚合需要若干配置文件依次执行,其中最重要的就是管理节点生成的虚拟机配置文件,它负责
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿案例分析教学报告与反思模板
- 60年代工作制度
- pt技师工作制度
- 一对三看工作制度
- 一级随访工作制度
- 三个以案工作制度
- 三天两休工作制度
- 三级调解工作制度
- 上二休二工作制度
- 专科联盟工作制度
- 2025年四川省成都市青羊区中考英语一诊试卷
- DB12 685-2016 反恐怖防范管理规范 第18部分:文博场馆影剧院
- 企业年度会议活动策划与场地布置
- JTG B05-01-2013 公路护栏安全性能评价标准
- 《 尿的形成和排出 第2课时》示范公开课教学课件【生物北师大七年级下册】
- 清明节前安全培训课件
- (新版)国民经济行业分类代码表(八大行业)
- 创意园孵化器大楼场区工程施工组织设计
- 聋校高年级阅读教学
- 工程勘察设计收费标准(2002年修订本)完整版
- 黑龙江省各地市基准地价20160104
评论
0/150
提交评论