李俊
摘要:为了实现计算机实验室的资源的优化配置以及利用效率的提升,该文选择Hybrid HVM方案设计构建基于Xen虚拟化的计算机实验室整体框架,以重构和语义获取的方式来对虚拟机控制与管理。采取虚拟硬件辅助页四级页表控制机制,以虚拟机任务调度总时间为目标,虚拟事件并行处理机制为导向,构建资源调度算法,通过实验表明,该算法对虚拟机的性能影响较小,耗费时间短,提高了计算机实验室运行与管理的效率。
关键词: 虚拟技术;Xen;资源配置;算法
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)06-0163-04
随着计算机网络技术的发展与进步,学校招生规模的不断扩大,学生的人数呈现快速发展,通过现有设备发挥出资源的最大化,成为当前学校教学与管理的实践的需求。在学校计算机的教学与管理环节,依靠计算机实验室,培养出适合当代社会需要的复合型人才,对学生的专业知识与能力的提升起到很重要的作用。计算机实验室作为高等教育实践活动的一个十分重要的场所,如何构建一个高效的计算机处理机制、资源优化配置方式,实验室的管理机制更合理,实验室的队伍不断加强,在有限的资源下得到最大计算机利用效率成为一直研究的问题[1,2,3]。受到计算机实验室中的计算机数量较多,数据处理繁杂等因素的影响,现有的条件下管理模式存在很大的缺陷,造成整个实驗室的利用率降低,管理水平存在明显的不足,很容易在运行管理环节出现故障,不及时的进行故障的处理与维修很容易造成实验室事故的发生。
为了有效地提高计算机实验室资源的有效配置,提高管理的效率,设备的故障发生的概率降至最低,本文基于虚拟化技术引入到计算机实验室的设计与建设的过程中,构建实验的整体实验教学平台,设计了计算机资源分配的调度算法,有效地提高了实验室的教学服务能力与水平,实验室管理效率得到最优。
1 虚拟计算机实验室
1.1虚拟化技术
虚拟化技术始于对分时(Time Sharing)操作系统的需求[4]。虚拟化技术通过虚拟机来实现其功能的,通过在虚拟的环境中进行资源状态的模拟后实现资源的有效管理与控制。虚拟化技术可以通过内存的虚拟化来完成内存容量的扩大,利用虚拟内存的进程寻址的方式完成对多个CPU的模拟虚拟操作,在同一个平台上运行多个操作系统。在不同区域内每一个运行程序都相互隔离,使得资源的利用率得到提升。虚拟机管理器(VMM)的主要功能在于管理系统资源与客户的操作系统。从系统架构上来讲,虚拟机管理器在操作系统与物理硬件间存在,每一个虚拟机上都存在一个模拟的硬件虚拟环境空间。通过虚拟机可以将不同的虚拟计算机定义在同一的计算机上,使得运营的资金成本以及空间成本降低,解决了系统开发与一致的难度问题。
对于虚拟化来讲,其主要的虚拟技术包含了指令级虚拟化、硬件级虚拟化、操作系统级虚拟化、程序库级虚拟化以及编程语言级虚拟化等分类。虚拟机管理器作为多多个计算机管理,通过VMM将不同的计算机位置分为混合模式((Hybrid Model)、主机模式(Hosted-based Mode)、独立监视器模式(Stand-alone Hypervisor Model),如图1所示。
虚拟化技术通过一些特权指令的方式执行操作产生陷入(Trap),下层的VMM对该指令进行执行后,真实的内存与处理器寄存器的相关信息被操作系统虚拟机利用后进行反馈,保证了VMM完全控制虚拟机,彼此间相互隔离。VMware和Xen是虚拟机的代表,是作为混合模式的一种模式,模拟了虚拟I/O设备的运行过程,并提供了基础的虚拟服务功能。将虚拟技术应用在计算机实验室的设计与建设的环节,对实验环节的构建产生很大的影响,可以灵活地满足学生的实验要求与实践环境。
1.2虚拟化计算机实验室总体框架
为了构建虚拟化的计算机实验室,本文设计采取的是混合虚拟化的设计思想,通过虚拟化的操作系统运行与硬件辅助虚拟机器上,实现虚拟化计算机的整体性能的提升。本文采用x86/x86_64 CPU中的虚拟化扩展页表(EPT)和虚拟化拓展指令VT-x来共同对数据进行处理,从而实现整个计算机实验室环境的数据处理。通过引入虚拟中断以及事件通道等虚拟化技术对I/O 虚拟化事件进行处理,避免了在进行事件处理过程中出现“陷入-模拟执行”的问题,降低了事件处理内存的利用率,保证了吞吐率。虚拟化技术本文选择Hybrid HVM方案,可以有效地对系统内存的入侵性降低,调试便利,可行性度高。如图2所示,为该方案的框架结构。
本文提出基于Xen 虚拟化平台下的虚拟化的计算机实验室设计与建设,该方案主要对每一个计算机融合了虚拟化的工作特性,增加了虚拟功能的系统接口。如图3所示,为本文设计的关于虚拟化的计算机实验室的体系结构。
在本文设计中国,将事件处理机制,传输通道,网络交换进行分层后,虚拟实验室的物理服务器作为数据处理服务器的主机,以虚拟为容器中的单元,建立各个资源群,每一个资源群进行数据的存储与运算的处理,为虚拟服务器提供服务。与Xen虚拟监控器对虚拟主机的上运行的每一个操作系统进行监控与控制。当事件发生后,以语义的获取与重构的方式完成了数据的处理。该实验室的整体结构框架模式远小于操作系统代码数量,具有更小的可信基;在运行的过程中,虚拟机单元是彼此独立的,具有更高的隔离性能;
2 基于虚拟化技术的计算机资源优化配置
2.1硬件辅助虚拟化虚拟机页表设计
本文设计的虚拟化计算机实验室的内存虚拟化技术可以利用Xen技术对其进行EPT操作控制,虚拟机表控制机制的开启后进行事件的写入。写操作环节物理页错误,很容导致VM exit,该种控制机制虚拟机的感知能力较弱。如图4所示,本文设计的关于内存虚拟化的技术方案,该方案通过在原有的虚拟机原型基础上进行地址的逻辑翻译后,四级页表机制是虚拟化硬件辅助页采用的机制,虚拟机操作系统采用两级页表机制。当前的二级页表的物理地址才去的为CR3寄存器,并与相应虚拟地址进行相互叠加后更新得到最新的二级页表地址信息。在页表中,物理基址与虚拟地址的物理基址偏移后完成新的地址的获得。通过硬件辅助页表内的管理单元进行当前的物理地址的翻译后,得到了内存中存在的最新的地址信息。在进行虚拟机的地址访问与信息交互的过程中,通过该辅助页表完成了每一个虚拟机物理地址的翻译后,虚拟机接收到该数据信息。二级页表与四级页表的操作机制在虚拟机的操作过程中,地址翻译的过程基本一致。
该虚拟机的操作系统的硬件辅助页的页表设计方案,主要的工作通过硬件来完成操作。该情况下使得在虚拟机操作执行的流程中避免了陷入到虚拟监控器中,该机制具有很好的虚拟资源的控制机制。
在虚拟机操作的过程中,很容易产生一些页表中出现文件写入或者创建,该事件頁表的执行操作在于系统的调用。当恶意程序对内核的相关数据进行恶意的更改,例如修改函数的地址等操作。目标的虚拟机与该系统进行相互隔离后,利用事件获取机制来对系统进行调用,从而实现虚拟机的管理。本文对页表的数据操作事件的截取采取快速系统调用的方式,具体的计算流程与代码如下所示,首选进行保存内核入口的数据信息到寄存器中后,定义一个新的地址,来完成对相关虚拟机的初始值的修改操作。这样就形成了一个操作页的错误,根据该也标的错误信息寻址比较,假若该地址与定义的新地址相同,则说明该页表进行了快速调用操作。反之,则缺页表出现异常需要进行调用。完成调用后,寄存器存储想的地址标号后就可以查询到相关的调用代码。
input: page一fault-addr (缺页地址)
VMEXIT happens in the target VM;
if (the exit reason is not page fault) then
other exception handler
end if
if (page-fault-addr != inexit addr) then
the normal handler of page fault
end if
filter the system call about file operation
reconstruct the arguments about file operation
write the file operation information into the shared page and notify the management domain
set ETP as the original SYSENTER—EIP—MSR
the target domain continue to execute
2.2虚拟机资源调度算法
根据虚拟机存在中断请求以及事件通道机制的共同作用,该系统中虚拟机的“陷入-模拟执行”不会被I/O 事件处理机制进行影响,从而中断处理路径的长度大大缩短,使得CPU计算的效率大大提升。本文对虚拟化的I/O 虚拟化进行优化,结合虚拟中断机制以及事件通道机制共同作用下来对负载下虚拟机的处理机制设计。虚拟化中断通过该事件通道来完成数据的处理与分发,为了使得Xen虚拟管理器中断分发给另外的虚拟处理器,针对其他的虚拟管理器进行标识后完成对应中断事件通道的处理,使得第一个虚拟处理器上不进行虚拟终端绑定半虚拟化内核。
由于特殊的原因可能存在于某个虚拟处理器上被半虚拟化内核进行中断静态绑定操作,pin和free为虚拟中断的两种状态,第一种只能进行特定虚拟处理的数据分发;第二种状态可以进行自由动态的数据分发。如图5所示,显示了基虚拟器中断分发过程,该过程经过阈值与计数器间的比对统计分析后,获取得到下一个虚拟处理器是否接受中断迁移操作。
针对当前虚拟机的调度来讲Xen常用的算法为Credit调度算法,但是该算法在多个虚拟机的结构的计算机实验室计算中,没有充分地考虑到多个虚拟机的并行运行的关系,知识基于对不得处理器以及时间来进行数据的处理,面向多个虚拟机的并行调度问题存在很大的不足。为了能够更好地对计算机虚拟化实验室进行系统资源进行分配,满足不同人员的性能需求,使得事件处理时间最小。本文针对虚拟机管理器的调度算法进行改进,设计出符合并行任务请求的调度控制机制,满足并行任务运行的时间最小,整体性能得到提升。
对于N个虚拟机系统来讲,虚拟机集合可以表示为,其中,根据并行结构模型对该虚拟机的事件进行描述。
定义虚拟机上的每个第i层,第j个任务节点为,每一个节点虚拟机访问的时间为。对于一个虚拟机实验室来讲,包含了多个任务并行管理。定义该虚拟机访问的层数为I,在每一层上有个任务并行操作管理。假设虚拟实验室具有M个任务数,在某个时间点上任务数正在执行定义为。实验室中存在K个虚拟机操作系统,在进行任务并行处理的虚拟机的数目为,该条件下存在:;在实验室虚拟机管理系统中,对并行任务的虚拟机进行系统的分配定义为;表示VMM对不同的虚拟机进行内核分配;针对每一个任务的内核分配可以用来表示。当虚拟机上有事件驱动响应后,转入到该虚拟机的调度算法进行任务分配与处理。
当虚拟机事件进行数据分发过程中,在首层的任务节点上,不同的虚拟机接收到分配来的数据信息后,将其转发到不同的处理内核上。当第1层的节点数目大于当前虚拟机的个数K情况下,则第一层的任务节点进行分批处理。假设总共虚拟机数目大于等于每一层的任务节点数目,采取并发处理的方式来完成多批次任务的处理直到分发完成。此时总的时间为:
假设为并发任务完成的总体时间,为每一个并发任务的处理时间,在某个时间内不同的任务处理,且没一个任务存在彼此的依赖关系,以分配因子对不同层次上的任务进行注意分配到实验室虚拟机上,处理器上与相互对应,保证在相同的时间点上进行任务的处理。当同一个层次上并行任务较多,并发处理机制采取分步的形式进行处理。当N<|D|时,为了完成实验室内的虚拟机的资源的分配,N个虚拟机获取得到每一个处理器上分配而来的数据信息后,对该虚拟机上的任务进行监测后,当该任务完成后,可以进行位于同一个层次上的虚拟机的任务处理。此时的总的时间为:
其中表示了处于第i层的任务分配参数,因此可以得到并行任务调度算法的总的处理时间如下所示:
为了对虚拟机任务调度达到并行处理最大化,监测每一个任务节点的关联性,当下一层任务基点处理完毕后,进入到相同任务节点下的操作,避免了因为等待同一层下的不相干的任务处理使得内核的利用效率得到提升。
2.3虚拟机资源调度算法流程
如图6所示,为本文设计的虚拟机并行任务调度算法流程。
從该流程中可以看出,在实验室的多位虚拟机的运行管理过程中,以一个虚拟机系统作为调度单元,每一个单元都对应着一个Domain。当虚拟机事件驱动后,产生一个调度任务,该任务如果是一个串行的任务,可以采取原有的调度算法;当不同的虚拟机同时任务进行分发的情况下,采取本文设计的算法。当进入到并行算法调度模式下,分配每一个虚拟内核来进行任务资源的分配与调度,实现多任务的调度执行控制与管理。
当虚拟机任务进行数据发送后,调度的方法根据事件的种类来进行判定,本文定义如下枚举结构:
Structure Scheduling Enumeration Structure
typedef enum{
COM, // commom tasks.
CON, // concurrent tasks.
}TaskType;
本文对虚拟机多个任务并行处理的算法如下代码所示:
Input: V– set of tasks
Output: The time and result of tasks have finished.
When parallel mission coming,
Initialize Vi.
For each map i do
Vs = Vi.
If Vi <= N, then
Assign a PCPU to each task.
Else
While (Vs>0) do
Choose N unhandled tasks;
Assign a PCPU to each of them;
Vs= Vs-N.
End While.
End If.
End For.
3 实验验证
为了验证本文虚拟计算机设计的合理性与调度资源的可靠性,本文选择的实验平台为X额n7550处理器,频率为3.16GHz,服务器为DDR3的6GB,硬盘为2TB。虚拟化硬件采取Xen4.1.3作为虚拟机器,实验室管理的机器为两台。配置好Xen与操作系统后,当系统在客户端进行运行后,相应的进程会进行创建后,使得寄存器CR3的内容更新,系统出现中断,在当前的进程中找不对虚拟机系统入口,主要的原因在于虚拟机创建不合适,如图7所示,显示了该虚拟机事件中断获取进程:
当实验室的虚拟机操作开始后,新的进程号直接确立后,使得在该系统上进行相应的进程调取,利用硬件辅助虚拟机页表的相关事件操作方式完成调用,完成事件触发,使得虚拟机系统关闭,整个系统的监控机制触发。
本文选择实验室部署虚拟和没有虚拟机的计算机虚拟系统作对比分析,测试工具选择PCMark软件。
从图中可以得到该虚拟机系统对其影响较小,内存的读写,复制以及文件的加解密的性能影响都低于百分之一,对实验室的虚拟机管理与控制更有效。采取本文所涉及的硬件虚拟机页表设计方案是可行的,性能的损耗在规定的范围之内。
为了判定本文设计的调度算法,构造了四个并行任务程序:点乘,π估算,RC4密钥查找和N-体问题[5,6]。在实验室中,创建不同数量虚拟机,进行本文的调度算法性能的测试,对于不同的串行任务与并行任务来讲,虚拟机的数量影响调度算法的性能。每一个虚拟机上设定两个串行任务和4个并行任务,算法整体迭代次数为109。在Xen上设定虚拟机的数目后,对内核资源事件发送请求进行调度,得到如图8所示的性能图。可以看出该算法下的多个判定依据都得到降低,分别降低了25.61%,23.06%,28.60%,26.27%。改进后的调度算法,对任务资源进行分配到物理处理器中,使得需要较小的时间来完成多个任务。有效地提升了实验室计算的效率
4 结束语
针对现有计算机实验室的投资与资源不足的问题,为了更好地利用计算机资源,构建一个开放式的实验平台,提高教学质量与资源优化水平,本文基于虚拟化的设计技术,构建虚拟计算机实验室,满足实验环节的多样化需求,构建虚拟实验室的整体框架结构,并提出了基于虚拟化的实验室的资源优化配置算法,通过计算实验证明该算法与结构的优越性,为高校计算机实验教学环境与资源的优化提供了帮助。随着现有设备的开发与设计,学生的实践得到最大拓展。随着虚拟化技术的不断完善与发展,现代高校的计算机实验室的建设与发展在虚拟化技术的作用下更好地满足社会发展的需求,促进高校计算机学科更好地发展。
参考文献:
[1] 姜丽伟.教学实验设备使用与管理的优化[J].实验技术与管理,2011,28(10):206-208.
[2] Biun A.Virtualization techniques: A methodical review of Xen and KVM [C]//Communication in Computer and Information Science,2011:399-410,
[3] Carbone, Martim. Secure and robust monitoring of virtual machines through guest-assisted introspection [C].Lecture Notes in Computer Science,2012:22-41
[4] 项国富,金海,邹德清,陈学.基于虚拟化的安全监控[J].软件学报,2012(2):12-17.
[5] 曲文涛,李明禄,翁楚良,跨虚拟机的可信检测[J].计算机科学与探索,2010(2).
[6] 李超. Xen VMX虚拟网卡的研究和模型改进[D]. 上海:上海交通大学, 2008:11-12.
[7] 石磊,邹德清.金海. Xen 虚拟化技术 [M].武汉:华中科技大学出版社,2009:220-226.
[8] 金海,钟阿林,吴松,等.多核环境下虚拟机VCPU 调度研究问题与挑战[J].计算机研究与发展, 2011, 48(7):1216-1224.
[9] 白志青,张银.实验室信息管理系统(LIMS)综述[J].科技情报开发与经济,2007,17(12):36-39.
[10] 江平,王铮.开放式计算机实验室监控管理系统的设计与实现[J].计算机与现代化,2007,12(11):125-128.
[11] 吕斯特.陈奋译.虚拟化技术指南[M].北京:机械工业出版社,2011.