版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
II摘要随着虚拟化技术和计算机硬件的发展,越来越多的企业、政府、学校等机构开始应用桌面虚拟化产品,以提升办公效率,降低运营成本。桌面虚拟化系统的核心思想是“集中管理、分布显示”,一方面为用户提供虚拟桌面环境,使用户可以随时随地访问自己的桌面环境进行办公或学习,提供了灵活、安全的桌面体验;另一方面所有用户的虚拟桌面交由系统后台进行集中管理,大大降低了企业的计算机运维成本。传统的桌面虚拟化技术架构是VDI(VirtualDesktopInfrastructure)架构,特点是“集中存储、集中运算”,其特点决定了用户必须通过网络才可以访问自己的桌面,并且VDI架构产品对网络带宽和服务器计算、存储性能有着很高的要求。为克服VDI架构下的服务器投入成本高、网络依赖高、集中风险、外围设备支持差等缺点,Intel公司率先提出了新型的IDV(IntelligentDesktopVirtualization)架构,这是一种新颖的技术观念,其采用的是“分布运算、集中存储”的方式来满足用户的需求,服务器负责管理和传输虚拟机镜像,终端负责运行虚拟桌面,这大大减轻了服务器的计算压力和降低了带宽要求,也从根本上提升了虚拟桌面的用户体验。本文将面向教学实验场景,设计并开发基于KVM与IDV架构的桌面虚拟化系统,并重点研究桌面虚拟化Linux客户端的设计与实现。其中,本文通过LibvirtAPI实现对虚拟桌面及各类虚拟资源的配置和管理;基于NFS、Ceph和本地存储方案构建镜像资源存储池;基于OpenvSwitch构建VXLANTunnel实现虚拟桌面跨物理网络的通信方案。本文最后对客户端的运行效果和性能进行了测试和分析并采取了可行优化方案,改善用户的桌面体验。关键词:桌面虚拟化;IDV架构;Linux客户端
AbstractWiththedevelopmentofvirtualizationtechnologyandcomputerhardware,moreandmoreenterprises,governments,schoolsandotherinstitutionshavebeguntoapplydesktopvirtualizationproductstoimproveofficeefficiencyandreduceoperatingcosts.Thecoreideaofdesktopvirtualizationsystemis"centralizedmanagementanddistributiondisplay".Ontheonehand,itprovidesvirtualdesktopenvironmentsothatuserscanaccesstheirdesktopenvironmentanytimeandanywhereforworkorlearning,andprovidesflexibleandsecuredesktopexperience;thevirtualdesktoptothesystembackgroundforcentralizedmanagement,greatlyreducingthecomputeroperationcostofenterprises.ThetraditionaldesktopvirtualizationtechnologyarchitectureisVDI(VirtualDesktopInfrastructure)architecture,characterizedby"centralizedstorage,centralizedcomputing",itscharacteristicsdeterminethatusersmustpassthroughthenetworktoaccesstheirowndesktop,andVDIarchitectureproductshavehighrequirementsfornetworkbandwidthandservercomputingandstorageperformance.Toovercomethedisadvantagesofhighserverinputcost,highnetworkdependence,centralizedrisk,andpoorperipheraldevicesupportundertheVDIarchitecture,InteltooktheleadinproposinganewIDV(IntelligentDesktopVirtualization)architecture,Thisisanovelideaoftechnology,Itusesthe"distributionoperation,centralizedstorage"waytomeettheneedsofusers,Theserverisresponsibleformanagingandtransmittingvirtualmachinemirrors,Theterminalisresponsibleforrunningthevirtualdesktop,Thisgreatlyreducesthecomputationalpressureontheserverandreducesthebandwidthrequirements,Italsofundamentallyimprovestheuserexperienceofthevirtualdesktop.ThispaperwilldesignanddevelopadesktopvirtualizationsystembasedonKVMandIDVarchitectureforteachingexperimentscenarios,andfocusonthedesignandimplementationofthedesktopvirtualizationLinuxclient.ThispaperrealizestheconfigurationandmanagementofvirtualdesktopandvariousvirtualresourcesthroughLibvirtAPI;buildsmirrorresourcestoragepoolbasedonNFS,Cephandlocalstoragescheme;andbuildsVXLANTunnelforthecommunicationschemeofvirtualdesktopacrossphysicalnetworkbasedonOpenvSwitch.Attheendofthispaper,theclienttestsandanalyzestherunningeffectandperformance,andadoptsthefeasibleoptimizationschemetoimprovetheuser'sdesktopexperience.Keywords:Desktopvirtualization;IDVschema;Linuxclient
目录TOC\o"1-3"\h\u473第一章绪论 1251661.1研究背景及意义 1129451.2本文的组织结构 13858第二章桌面虚拟化相关技术介绍 3274312.1桌面虚拟化介绍 3137722.2桌面虚拟化主流架构介绍 3240952.2.1VDI虚拟桌面基础架构 375672.2.2IDV智能桌面虚拟化架构 46312.3桌面虚拟化的核心技术 5176102.3.1服务器虚拟化技术 5231982.3.2远程桌面协议 513031第三章系统需求分析 731173.1需求背景分析 729853.2系统角色划分 756923.3功能性需求分析 768163.4非功能性需求分析 109099第四章系统设计 12325674.1系统整体架构设计 1279004.2客户端设计目标 1497594.3客户端框架结构设计 1590074.4客户端逻辑架构设计 16253824.5客户端功能结构与模块设计 1728348第五章系统功能实现 20222065.1客户端登录界面 20304295.2客户端学生/教师界面 21257895.3客户端管理员界面 2527732总结 2728190参考文献 28第一章绪论1.1研究背景及意义在这个万物互联的时代,人们的工作和生活与互联网和计算机变得密不可分。无论是各领域企业单位,还是学校、医院和政府机关,都部署了大量的电脑和服务器,这同时也产生了许多问题:首先,除了大量的PC成本外,对PC的长期运维会带来更大的开销;其次,部分PC设备可能长期搁置,利用率低,这造成了极大的资源浪费;再次,本地桌面管理模式给管理人员带来很大的工作负担与不便;最后,由于人们生活节奏不断变快,工作环境不断变更,这对灵活的办公方式的需求也越来越高。因此,在这样的背景下诞生的桌面虚拟化技术就展现出了“鲜活”的生命力并得到了广泛的支持与快速的发展。桌面虚拟化是指将计算机的操作系统桌面进行虚拟化,将系统桌面与底层硬件解耦,达到桌面使用的灵活性。用户能够通过手机、平板、电脑等任何终端设备,利用网络去访问自己的桌面环境。传统的桌面虚拟化架构采用的是“集中存储、集中运算”的管理模式,将计算、存储、网络等资源统一部署在数据中心,通过服务器虚拟化技术将CPU、内存、硬盘和其他I/O设备等硬件资源变成可动态伸缩管理的虚拟资源池,桌面虚拟化平台根据用户的需求定制个性化桌面,通过网络将虚拟化的桌面环境交付给终端设备。目前流行的桌面虚拟化架构有两种:传统的VDI架构和Intel率先提出的IDV架构。VDI架构的“集中存储,集中管理,集中运算”的特点决定了系统的一些“缺点”,包括网络依赖性大、服务器计算性能要求高、服务器磁盘的读写性能要求高等,并且它的集中式存储存在安全隐患。IDV架构采取的是“集中存储,集中管理,分布运算”的运维方式,将系统的计算分散到客户端中,减轻服务器压力的同时也减少了网络的数据流量,这从根本上解决了桌面体验性差的问题。综上,传统的VDI架构存在高成本、高带宽和用户体验差的缺陷,IDV架构展现出了低成本、低带宽、用户体验良好的优点。IDV架构的桌面虚拟化方案无疑给传统的桌面虚拟化技术存在的不足之处提供了很好的思路,因此对它的研究有着重大的意义。1.2本文的组织结构本文的各章节的组织结构如下:第一章,绪论。本章主要介绍课题的研究背景和意义,接着列举本文的主要工作和创新点,最后给出本论文的组织结构。第二章,桌面虚拟化及客户端依赖技术介绍。本章首先给出了桌面虚拟化技术的介绍,包括原理以及分类;其次,介绍并比较当前桌面虚拟化使用的主流架构;接着,阐述了桌面虚拟化的核心技术;最后对客户端的研发所依赖的相关技术进行介绍。第三章,桌面虚拟化客户端框架设计。面对实验教学环境,本章首先给出基于IDV架构的桌面虚拟化系统IDV-Desktop的整体架构设计并解释说明其中的核心组件,重点介绍客户端IDV-Client的架构设计;接着对客户端进行需求分析,指明客户端的目标,功能性需求和非功能性需求;然后描述客户端的功能结构和模块设计;第四章,桌面虚拟化客户端具体实现。本章首先介绍客户端程序IDV-Client的开发环境、代码组织结构和配置文件,接着介绍了客户端窗口功能结构,最后重点分析客户端的各个功能模块的实现。第五章,系统部署与测试。本章对IDV-Desktop桌面虚拟化系统进行打包与部署,对客户端IDV-Client进行桌面性能测试和体验桌面运行效果,同时给出客户端运行的部分界面。结论部分对研究工作进行全面总结并对未来的研究工作进行展望。
第二章桌面虚拟化相关技术介绍2.1桌面虚拟化介绍桌面虚拟化是将桌面系统进行虚拟化,满足用户桌面访问的安全性、灵活性和高效性。在任何时间、地点和终端设备上都能通过互联网访问运行于虚拟化平台上的个人桌面,其中终端设备是不要求有高计算和存储能力的瘦客户端,可以使计算机、手机、平板、瘦终端盒等各种设备,达到安全、灵活和高效的办公体验。瘦终端盒是一种体积小、内置Android操作系统、CPU、内存、显卡、网卡和各种I/O端口的迷你台式机。桌面虚拟化技术是建立在X86PC为标准的IT基础架构上,能够最大化地利用硬件设施和对资源进行优化,因此对比于传统的IT架构有着很大的优势。2.2桌面虚拟化主流架构介绍桌面虚拟化在技术架构上有两大阵营,一个是VM为代表的VDI,一个是Intel提出的IDV架构。2.2.1VDI虚拟桌面基础架构VDI桌面虚拟化架构将虚拟机与磁盘镜像统一存放在数据中心的服务器及存储设备中,虚拟桌面与客户端通过网络连接,所有的计算都发生在服务器上,所有的I/O读写都发送在存储集群上。在VDI下,所有的计算、存储和网络资源高度集中在数据中心中,瘦终端借助桌面传输协议(SPICE、RDP、ICA等)获取服务器端推送过来的虚拟桌面影像。用户可以随时随地访问自己的桌面,实现桌面漫游。VDI给IT建设带来的显著挑战包括:(1)高成本:要部署VDI办公场景,在现有的IT基础设施基础上,还需要采购服务端的核心基础设施,包括高可靠性存储服务器、高性能计算服务器,可能还要采购新的瘦终端设备。部署完毕后可能还需要支付VDI软件授权费用,实施起来可能比传统IT基础架构的成本还要高。(2)存储方面要求高:一方面,存储容量必需能够满足所有用户的桌面镜像、应用程序和用户数据的需求;另一方面,存储性能直接影响到用户的桌面体验。由于虚拟机和镜像以集中式的方式存储,而非分散到本地客户机上,此时,系统的存储性能较容量而言变得更为重要,虚拟机数量的增多,对于存储系统的性能需求较以往则呈指数增长。成百上千的虚拟机同时工作时的数据吞吐量会给存储系统带来巨大的读写压力,VDI系统的性能受到存储系统能够支撑的IOPS影响。在极端情况,当大量的虚拟机同时启动或登录时,可能会产生“启动风暴”或“登录风暴”。更糟糕情况下,虚拟机从启动到桌面加载完成可能需要十几分钟甚至更久,这对终端用户来说体验性是非常不友好的。(3)用户体验不友好:再高效的远程桌面显示协议也无法完全消除低带宽、高延时的网络给桌面体验带来的影响。由于网络带宽、延时的制约,使得VDI桌面无法从根本上真正突破多媒体、3D建模、制图设计等高显卡要求应用的瓶颈。VDI架构图如下:图2-1VDI架构图2.2.2IDV智能桌面虚拟化架构IDV是一种出现较晚的技术观念,IDV架构采取虚拟桌面“分布运算”的方式来满足用户生产需求,同时管理员对虚拟桌面进行“统一管理”。IDV架构要求的客户端不再是传统的瘦客户端,而是具备一定运算能力的胖客户端。用户的桌面镜像“集中存储”在服务器端的数据中心中,按需分发到客户端提供给虚拟机使用。虚拟桌面运行在本地的虚拟机监视器上,计算、存储和网络资源由本地提供,以此来获取接近本地PC体验的虚拟桌面。相比与VDI架构,IDV有着如下一些优点:(1)成本低:在现有的IT基础设施的前提下,不需要做大规模改造,通过IDV产品的部署即可快速获得桌面虚拟化的优势。借助IDV,各机构无需额外的基础设施投入便可快速、方便地开展桌面虚拟化办公场景。(2)降低存储和网络带宽需求:将操作系统镜像进行分层管理,提高镜像更新和创建新桌面镜像的效率,并简化了镜像存储。当管理员将桌面镜像分成逻辑层时,可独立管理每一层镜像,最大程度地减少了镜像的数量。IDV要求在客户端运行的本地镜像与云端镜像同步,保证管理员和用户随时使用黄金镜像。同时,IDV桌面运行在客户端本地并且允许离线运行,这最大程度地减少了存储和网络带宽需求,也增加了用户的移动性。(3)用户体验流畅:虚拟机在客户端本地运行,对服务器的性能要求降至最低,同时,客户端对宿主机和虚拟机进行性能优化,提升了用户体验。本地执行虚拟机带来了比VDI的多媒体重定向更佳的性能,并可完美支持多媒体、3D影像设计、视频交互等应用。IDV架构图如下:图2-2IDV架构图2.3桌面虚拟化的核心技术服务器虚拟化技术和远程桌面协议的发展给桌面虚拟化技术的诞生打下了铺垫,因此,桌面虚拟化的核心技术是基于服务器的服务器虚拟化技术和基于连接代理的远程桌面协议。2.3.1服务器虚拟化技术服务器虚拟化是把多个服务器整合成一个虚拟服务器或把一个服务器拆分成多个虚拟服务器以达到提高资源利用率的目的,将服务器专用于单个应用或用于多个应用隔离。服务器虚拟化的三方面内容分别是平台虚拟化、资源虚拟化以及应用程序虚拟化。其中,平台虚拟化技术是核心。利用平台虚拟化技术,忽略平台运行的硬件设施的物理属性,按照需求在硬件层和操作系统层之间通过软件定义的方式创建多个相互独立的虚拟化平台环境,从中得到和实际硬件环境相同的操作体验。平台虚拟化技术分为硬件抽象级虚拟化、操作系统级虚拟化、指令级虚拟化、硬件辅助虚拟化。其中,硬件辅助虚拟化主要目的是提高虚拟化性能。例如,虚拟机监视器在正常情况处于系统的最高级别权限,较低级别的虚拟机是无法执行最高权限的,在借助Intel-VT技术或AMD-V硬件辅助虚拟化技术后,虚拟机可以创建独立的寄存器系统进而完成CPU指令的编译,不再需要借助虚拟机监视器的协助,这大大提升了虚拟机执行CPU指令的效率。用户可以进行BIOS查看计算机硬件是否支持硬件辅助虚拟化。2.3.2远程桌面协议远程桌面协议也叫远程连接协议,它能够让用户使用终端设备完成对自己的远程桌面的访问和控制。当前主要的远程协议有VMWare的PCoIP协议、Citrix的ICA协议、微软的RDP协议、红帽的SPICE协议和AT&T研发的VNC协议。本文实现的桌面虚拟化系统选用的传输协议是QEMU-KVM天然支持的SPICE,在实现学生观看教师的共享桌面上采用的是VNC协议。
第三章系统需求分析3.1需求背景分析随着计算机的普及,越来越多高校的专业课程都需要学生进行上机实验,不同课程的实验环境不尽相同,例如,操作系统课程需要Linux操作系统进行课程实验,设计类课程需要在Windows操作系统上使用专业的图像/视频处理软件进行课程实验。因此,机房管理员需要在每一台计算机上安装多种操作系统和各类软件来满足实验教学的需求。除此之外,机房管理员还需要定期对系统进行维护、升级。这种机械式的对每台计算机进行环境搭建和维护升级使管理员不堪重负,难以灵活地满足各类实验教学的上机需求。桌面虚拟化产品正是为解决传统的PC模式下的缺陷而诞生的。桌面虚拟化系统将桌面环境与硬件终端设备解耦,采用集中管控的方式,对桌面环境进行统一的配置、更新和销毁工作。现在已经越来越多高校的机房采用桌面虚拟化产品来满足日渐增多的实验教学需求。在实验教学背景下,本系统中的每一名学生的每门课程都对应着一个虚拟桌面,桌面环境彼此隔离,出现故障可以快速恢复或直接迁移至新的计算机进行课程实验。机房中的计算机只需安装桌面虚拟化客户端,由服务端通过传输协议下发实验教学的桌面环境至客户端。这样一来桌面环境的升级维护工作就从线下转移到了云端,统一进行管理,省去了机房管理员机械式的维护工作时间,也提升了桌面管理的灵活性。3.2系统角色划分在高校的实验教学背景下,本系统划分为以下三类角色:1)管理员:负责维护系统正常运行,主要职责包括:管理系统的所有用户、管理存储池及各类镜像、管理虚拟网络配置、为学生下发课程桌面和实时监控系统运行数据等。同时,管理员充当教务员的职责进行课程信息、班级信息、教师信息和学生信息的录入并安排所属关系,建立虚拟桌面和相应课程的关联关系。上述功能需要管理员登录桌面虚拟化客户端或登录基于Web的后台管理系统进行操作。2)学生:是使用虚拟桌面的主体,主要职责包括:获取课程列表、设置本地虚拟机的运行参数、选择并运行一门课程的虚拟桌面、保存桌面会话数据至云端和从云端下拉桌面会话数据继续实验等。上述功能需要学生登录桌面虚拟化客户端进行操作。3)教师:负责进行教学实验指导,主要职责包括:查看课程列表、选择并登录专属桌面环境、共享屏幕对学生说明实验内容、查看学生登录状态和查看考勤记录等。上述功能需要教师登录桌面虚拟化客户端进行操作。3.3功能性需求分析桌面虚拟化系统中的每一个角色都有其自身的功能需求,下面依次分析管理员、学生、教师三个角色的功能需求1)管理员需求分许如下:登录:使用用户ID及密码登录/注销后台管理系统和桌面虚拟化客户端。修改密码:修改自己的登录密码。用户管理:对系统中的学生、教师、管理员进行管理,管理内容包括创建新用户、删除用户、修改用户密码、管理用户权限、管理登录状态。班级管理:对班级进行管理,内容包括创建班级、删除班级、添加学生进班级。课程管理:对课程进行管理,内容包括创建课程、删除课程、添加班级进课程、选择授课老师、选择课程使用的模板镜像、选择课程使用的虚拟网络。存储池管理:对系统存储池进行管理,内容包括启动存储池、停止存储池、查看存储池可用容量、查看存储池中的镜像数量。镜像管理:对存储池中的镜像进行管理,内容包括在WEB控制台查看镜像使用状态、查看镜像占用空间、删除镜像;在桌面虚拟化客户端对模板镜像/数据盘镜像执行创建、更新和删除操作。虚拟网络管理:对虚拟网络进行管理,包括创建虚拟网络、删除虚拟网络、更新虚拟网络配置信息。桌面管理:对桌面进行统一管理,包括批量创建桌面、批量删除桌面、查看桌面运行状态和更新桌面配置信息。管理员用例图如图3-1所示。图3-1管理员用例图2)学生需求分析如下:登录:使用用户ID及密码登录桌面虚拟化客户端。修改密码:修改自己的登录密码。查看课程:查看自己参加的课程列表与课程信息,观看老师的共享课程桌面。登录桌面:选择某门课程的桌面进行登录,进入桌面控制面板。桌面同步:将本次桌面会话数据同步至云端,或从云端拉取桌面会话数据至本地。桌面配置:修改本地虚拟桌面的运行参数,包括CPU、内存、磁盘、外设等。桌面管理:对课程桌面的运行状态进行管理。模板镜像管理:将模板镜像缓存至本地、更新模板镜像、删除模板镜像。数据镜像管理:为桌面添加本地数据盘镜像、删除数据盘镜像和添加共享盘镜像。学生用例图如图3-2所示。图3-2学生用例图3)教师需求分析如下:登录:使用用户ID及密码登录桌面虚拟化客户端。修改密码:修改自己的登录密码。教学管理:进行实验教学管理,包括查看课程列表、查看学生列表、查看学生考勤记录。桌面管理:对自己进行授课的课程的桌面进行管理,内容包括登录课程桌面、同步桌面、调整桌面运行参数、管理桌面运行状态、共享桌面屏幕。模板镜像管理:将模板镜像缓存至本地、更新模板镜像、删除模板镜像。数据镜像管理:为桌面添加本地数据盘镜像、删除数据盘镜像和添加共享盘镜像。教师用例图如图3-3所示。图3-3教师用例图3.4非功能性需求分析除了上述的功能性需求外,桌面虚拟化系统还要考虑以下几点非功能性需求。(1)高可用性:IDV架构的桌面虚拟化系统采用计算、存储分离的运行模式,镜像存储在云端的分布式系统中,虚拟机运行在本地客户端上,不受服务器性能影响。一旦出现网络中断情况,客户端可切换至离线模式,继续为用户提供桌面环境,保证了系统的高可用性。(2)易用性:IDV桌面虚拟化客户端为不同的角色设计了不同的UI操作界面。用户只需登录客户端,即可快速找到各类功能入口。除此之外,系统还为管理员提供了基于Web的桌面后台管理系统。管理员只需使用浏览器登录后台管理系统,即可在Web端对系统进行统一管控,这些都保证了系统的简单易用。(3)易维护性:实时记录客户端程序和服务端程序的运行日志,方便系统运行出错时进行故障排查和进行系统维护。例如,当用户的桌面环境出现故障、无法正常运行时,管理员可快速恢复该桌面,或创建一个新的桌面环境供用户使用。(4)安全性:系统需要保障桌面数据的安全,为桌面使用者提供管控网络与外设接入策略的能力。例如,当需要禁止桌面使用外网时,管理员可禁用虚拟桌面访问外网的权限,仅可使用虚拟的局域网;当需要禁止U盘等外设连接桌面拷贝敏感数据时,管理员可禁用桌面的外设连接权限,屏蔽U盘等不被允许接入的外部设备。
第四章系统设计4.1系统整体架构设计基于IDV架构的桌面虚拟化系统以“集中存储、集中管理、分布运行”为架构的设计理念进行构建,以教学实验环境为背景进行系统开发。基于IDV架构的桌面虚拟化系统IDV-Desktop的整体架构如图4-1所示。图4-1系统整体架构图该架构主要由4部分构成:存储集群:存储集群使用Ceph分布式文件系统和NFS作为后端镜像的存储方案,包括母盘镜像、用户桌面盘镜像、共享数据盘镜像的存储。对于读需求量大的母盘镜像使用Ceph作为存储方案。2)计算集群:计算集群主要用来作为云端虚拟机的宿主机,底层同样基于KVM虚拟化环境。在某些场景下例如管理员制作模板镜像时,会在云端运行虚拟机对模板镜像进行修改,因此需要计算集群来提供在云端运行虚拟机的基本能力。3)服务端主机:服务端主机主要运行服务端程序、IDVWeb管理控制台、MySQL数据库。服务端基于Go+Gin+GORM开发,使用MySQL数据库,通过RESTfulAPI为客户端程序和管理员的Web控制台提供服务,使用libvirtAPI调度计算集群中的虚拟机运行和通过SSH管理集群。提供的服务包括虚拟机管理、存储管理、网络管理、用户管理、课程管理、配置管理、数据库管理、身份管理、策略管理和资源管理。IDVWeb管理控制台基于Node.js+Vue.js+Element-ui开发,为管理员提供统一的管理入口,调度服务端相应的API对系统进行管理。4)客户端主机:客户端主机操作系统要求是具有KVM虚拟化环境的Linux操作系统,并且客户端主机是必须具备一定运算能力的胖客户端,主要的工作的运行客户端程序、本地运行虚拟机、本地缓存虚拟机镜像。客户端程序基于Electron+React.js+Material-ui开发,通过LibvirtAPI以及Shell命令对虚拟机及相关的资源进行管理,调用服务端API获取用户的虚拟桌面相关信息和通信,为Web控制台管理员提供客户端API实现管理员对本地桌面的远程控制,并对虚拟机镜像进行上传、下载、制作和更新等操作。客户端程序以实验教学环境为开发背景,IDV桌面架构下,各个虚拟机运行于不同的物理宿主机上,对于同一课程的虚拟机之间网络相互隔离,无法通信,此处借助OpenvSwitch或其他虚拟网络方案,实现不同物理节点上的虚拟机网络互通。本系统中客户端程序和服务端程序通过RESTful风格的HTTP方式进行交互。以普通用户通过客户端登录自己的桌面的过程为例,时序图如图4-2所示。其流程大概如下,用户在客户端的登录窗口输入用户名和密码,发送登录请求给服务端,若身份校验通过,客户端打开用户操作窗口,用户点击获取桌面的按钮发送获取桌面请求给服务端,客户端收到桌面列表信息后进行展示,用户选择要使用的桌面,若该桌面在本地未初始化,用户可以选择对其进行初始化,具体初始化过程将在后面介绍,而后进入该桌面的操作界面,点击启动按钮即可在本地创建虚拟机并使用虚拟桌面显示工具进行显示。启动后发送桌面启动信息的请求给服务端。图4-2普通用户登录桌面时序客户端通过RESTfulAPI访问服务端,获取用户及桌面相关信息,Web后台管理系统也通过RESTfulAPI访问客户端,以此进行对客户端的远程操控。以IDV-Web远程关闭客户端的虚拟机为例,时序图如图4-3所示。监听进程的Web应用框架为Express。图4-3IDV-Web远程关闭客户端虚拟机时序图4.2客户端设计目标客户端的开发基于实验教学环境,以学生为普通用户的身份前提下,本文将设计一个基于IDV架构的桌面虚拟化Linux客户端,IDV架构的桌面虚拟化理念是一种新型的桌面虚拟化解决方案,它的出现弥补了传统VDI架构的桌面虚拟化系统的不足,同时增加了许多特有的功能。客户端的主要目标如下:1)允许离线运行。发生网络中断时,用户可以继续使用桌面办公。普通用户在之前登录过的机器可以离线登录客户端。2)支持网络启动。用户初始化桌面时,在本地没有缓存母盘和桌面查分盘的情况下,用户可以选择母盘和桌面查分盘的位置都为远端,直接通过网络读取磁盘镜像数据启动桌面。3)桌面互通与隔离。普通用户可以同时启动多个桌面,每个桌面对应一个课程,处在不同物理机中同一课程的桌面可以相互访问,以进行课程实验。处在同一物理机中的不同课程的桌面相互隔离。4)个性化配置桌面。用户在桌面初始化完毕后可以修改桌面的本地初始配置信息,比如CPU、内存、磁盘、CDROM等桌面参数。5)镜像制作和更新。镜像制作和更新的目标包括母盘和数据盘。该项功能是管理员的功能,在IDV桌面虚拟化系统中,大部分的数据库CRUD操作都整合到了Web管理控制台中,考虑到Web的局限性和性能方面,管理员对母盘/数据盘的制作和更新等操作需要由桌面端完成。管理员对用户桌面统一升级时,只需对母盘升级即可。4.3客户端框架结构设计系统采用C/S架构,即“客户端/服务器”模式,这种模式将系统的业务请求实现逻辑部分集中到了后台服务端上,由于IDV架构的“集中存储,分布运算”的特点,虚拟桌面运行所需要的计算资源由各个客户端操作系统自身提供,由于采用了IDV架构,虚拟化系统的计算核心部分由后台服务器上转移到了客户端操作系统上,这大大增加了客户端的开发和维护难度。客户端要求运行在有KVM虚拟化能力的Linux操作系统上,Linux客户端的开发使用基于Node.js和Chromium的Electron框架,直接使用JS,HTML和CSS构建桌面应用,这大大缩短了客户端开发周期。Electron框架将程序分为主进程和渲染进程。主进程主要负责创建窗口和监听窗口事件,一个Electron应用只有一个主进程,使用ipcMain监听渲染进程动作,使用函数给渲染进程发送消息。渲染进程与主进程创建的窗口一一对应,每个窗口运行在自己的渲染进程中,使用ipcRenderer与主进程通信。使用React和Material-UI框架实现各个窗口的界面渲染,通过调用各模块功能实现界面上的业务逻辑功能。客户端通过调用shell命令进行系统调用,例如virsh、qemu-img、pidstat等,通过RESTful接口与服务端和Web控制台进行通信。在制作母盘镜像和同步镜像时,客户端直接访问存储集群服务器和计算集群服务器。在本地使用OpenvSwitch配置vxlan隧道和对本地ceph客户端进行配置后,使用virsh定义vxlan网络和ceph存储池,为虚拟桌面提供跨主机的虚拟局域网和后端操作系统母盘镜像。图4-4客户端架构设计4.4客户端逻辑架构设计IDV桌面虚拟化客户端IDV-Client的逻辑架构如图4-5所示。IDV-Client的系统环境从逻辑上根据职责的不同将系统划分为五个不同的层次,自底向上分别是物理层、操作系统层、虚拟化层、业务功能层和UI层。这五层构成了IDV-Client的主体部分。1)物理层,由客户端主机、交换机设备和路由器设备等构成。其中,客户端主机要求是具有一定运算能力的胖客户机并且其处理器必须集成硬件辅助虚拟化(IntelVT-x、AMD-V)。在vCPU运行效率方面有硬件支持,其效率是比较高的;若内存虚拟化有硬件支持(IntelEPT、AMDNPT),内存虚拟化效率也会提高。客户端主机提供本地的CPU资源、内存资源和磁盘资源,交换机和路由器提供网络资源,物理层向上层提供基本的硬件基础。2)操作系统层,由Linux操作系统和运行在其上的Libvirt、Inotify、Rsync、NFS、Ceph、OpenvSwitch等软件构成。之所以选择Linux操作系统,是因为大多数的Linux发行版集成了KVM模块。这些被采用的软件技术将在之后的章节中详细介绍。Linux操作系统和其上的软件为上层中的虚拟化层和业务功能层提供API接口和系统调用。在整个客户端系统中起到承上启下的作用。3)虚拟化层,由hypervisor构成,客户端程序和虚拟化层中的hypervisor作为进程共同运行在基础操作系统之上。Hypervisor是所有虚拟化技术的核心,中断地支持多工作负载迁移的能力是hypervisor的基本功能。本文中的hypervisor架构被称为托管型,构建出一整套虚拟硬件平台,虚拟机运行在传统操作系统上,创建的是硬件全仿真实例,底层和上层的操作系统可以完全无关化。本层使用虚拟化技术通过操作系统层提供的接口对物理层的资源进行池化,创建计算池、存储池和网络池,向运行在虚拟化层上虚拟机提供虚拟资源。本文所采用的虚拟化解决方案是基于硬件辅助的开源全虚拟化的QEMU-KVM,可以让客户机不经过任何修改就能运行在KVM环境中。虚拟化层所创建的虚拟机由上层的业务功能层配置、管理和监控。4)业务功能层,由客户端程序的功能模块组成,使用操作系统层提供系统服务和虚拟机管理工具对由客户端启动的所有虚拟桌面的运行环境进行管理,主要包括对桌面生命周期管理、桌面配置、桌面监控和磁盘镜像管理。这部分是整个客户端的核心部分,负责完成对UI层的请求的处理和响应、与服务端进行通信。被管理的虚拟机可以分为两层,虚拟操作系统层和虚拟应用程序层,对应于桌面的母盘镜像和差分盘镜像。虚拟机中的应用程序调用硬件资源时的路径是:VM内核>Hypervisor>宿主机内核。5)UI层位于顶层,直接与用户打交道。UI层负责使用Remote-viewer远程桌面显示工具来连接由虚拟化层创建的虚拟桌面,接受用户的操作并作出正确的响应。客户端的开发基于Electron框架、React框架和Material-ui框架,Electron是基于Chromium和Node.js的一个使用JavaScript,HTML和CSS等Web技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。React是一个用于构建用户界面的JavaScript库,它使创建交互式UI变得轻而易举。Material-ui是当下最流行的React界面框架,能更快速、更简便地开发更美观的用户界面。UI层主要由登录界面、桌面选择界面、桌面管理界面和管理员界面组成。图4-5客户端逻辑架构图4.5客户端功能结构与模块设计从功能的角度可以将客户端划分为桌面管理模块、镜像管理模块、桌面监控模块、其他模块四大模块,每个模块可以进一步划分为多个子模块。其中,桌面管理模块包括桌面初始化与销毁、桌面运行状态管理和桌面个性化配置三个子模块。镜像管理模块包括桌面盘镜像管理、桌面附加盘镜像管理、云端镜像制作与更新、本地镜像管理和母盘镜像下载五个子模块。桌面监控模块包括桌面运行状态监控和桌面占用资源监控等功能。其他模块包括个人功能模块、日志模块。客户端功能结构如图4-6所示。图4-6客户端功能结构图1)桌面管理模块桌面初始化与销毁:该模块对桌面进行初始化与销毁,当用户在某客户端第一次使用某桌面时,需对该桌面进行初始化后才能使用,初始化的内容大概包括桌面盘镜像创建、桌面配置文件初始化和更新用户配置文件。当用户不再需要某一个桌面时,可选择销毁该桌面,销毁后需要再次初始化才能使用桌面,销毁的内容大概包括桌面盘镜像删除、桌面附加盘镜像删除、桌面配置文件删除和更新用户配置文件。桌面运行状态管理:该模块对桌面的运行状态进行管理,为桌面提供开机、暂停、关机等操作实现桌面状态的转换,每个桌面运行状态转换操作对应于该桌面管理界面的状态按钮,从一个状态转到另一个状态后作出相应的界面响应。桌面个性化配置:该模块对桌面运行的相关资源参数进行设置,用户可以根据客户端拥有的资源情况和自身需求对桌面运行所需的CPU、内存、磁盘、CDROM、网卡等资源进行设置。2)镜像管理模块存储池管理:该模块负责本地存储池的创建、删除、启动及存储池相关的操作。本地桌面盘镜像管理:该模块负责桌面盘镜像的创建、删除、修改和同步。本地附加盘镜像管理:该模块负责桌面附加盘镜像的创建、删除和热插拔。本地母盘镜像管理:该模块负责母盘镜像的下载和删除。云端镜像制作与更新:该模块负责在线制作和更新母盘和数据盘。3)桌面监控模块桌面运行状态监控:该模块负责监控已启动的虚拟桌面,当桌面启动后,开启对桌面的监控直到桌面关闭,桌面关闭后根据桌面是否由客户端关闭作出相应动作。桌面占用资源监控:该模块负责监控桌面进程运行时占用客户端主机的资源情况,监控的内容包括CPU使用率、内存使用率、磁盘读写速率、网络速率。4)其他模块个人功能模块:该模块负责普通用户和管理员的登录和注销,普通用户登录后将登录信息保存到本地,下次可直接离线登录,管理员只能进行在线登录。客户端以任何形式退出时,确保对用户执行了注销操作。除此之外,还包括对客户端配置和用户个人配置文件的读写功能、教师对选了自己授课的某班级进行考勤。日志模块:该模块负责记录客户端的使用信息,将客户端的日志打印到控制台和写入日志文件中。记录的内容大概包括客户端配置文件读写,用户配置文件读写,桌面配置文件读写,桌面创建和销毁,桌面生命周期变更,本地镜像创建、删除和同步、云端镜像创建和更新,程序警告、错误信息等。
第五章系统功能实现5.1客户端登录界面客户端登录界面如图5-1所示,用于输入普通用户和管理员的验证信息,验证通过则跳转到相应界面。右上角的设置按钮点击后窗口翻转至客户端设置界面。图5-1登录界面客户端设置界面如图5-2所示,在这填写服务端地址信息,打开母盘浏览窗口可进行母盘下载操作。图5-2客户端设置界面母盘浏览窗口如图5-3所示,可根据名称、文件大小、修改日期和状态进行排序。点击母盘名称进行母盘下载。图5-3母盘浏览窗口母盘下载界面如图5-4所示,和镜像同步一样弹出进度条子窗口进行镜像传输。图5-4母盘下载5.2客户端学生/教师界面学生登录后弹出学生的操作界面,在操作界面点击我的桌面按钮显示桌面列表,桌面列表界面如图5-5所示,桌面列表通过鼠标拖动形式浏览选择,图中显示了三个课程桌面,课程桌面显示的图片为用户上一次使用后关机前的截图,若没有使用过则显示默认图片。点击右上角的设置按钮弹出用户设置子窗口。通过操作系统关闭客户端或者点击右上角主动关闭客户端都会触发客户端关闭动作进行客户端关闭前检查操作,防止客户端关闭后,仍然有由其启动的虚拟机正在运行。点击退出登录按钮会关闭当前窗口回到登录窗口。图5-5学生桌面列表点击一个桌面进入桌面控制面板,若没初始化则初始化后进入桌面的控制面板,桌面控制面板界面如图5-6所示,该桌面状态为未启动。桌面管理按钮有启动/恢复按钮、挂起按钮、关机/强制关机按钮、暂停/继续按钮、截图按钮、桌面显示按钮、观看教师共享桌面按钮、桌面设置按钮、镜像上传按钮、镜像下载按钮、桌面销毁按钮和返回到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管道绝热施工技术方案
- 工程管理岗位人员业务知识考试试卷及答案(2025年)
- 2025年诊所年度工作总结
- 国家能源集团采矿工程师面试题库及答案
- 2025年工会个人工作计划
- 2025年X人民医院工作总结及2026年工作计划
- 三级安全教育培训试卷及答案班组级(钢筋工)
- 建设工程施工合同纠纷要素式起诉状模板贴合真实维权案例
- 2026 年有子女离婚协议书权威版
- 房屋售后维修年终总结(3篇)
- 2025年江苏省公务员面试模拟题及答案
- 2024-2025学年山东省济南市槐荫区七年级(上)期末地理试卷
- 2025中国家庭品牌消费趋势报告-OTC药品篇-
- 机器人学:机构、运动学及动力学 课件全套 第1-8章 绪论-机器人综合设计
- JJG 694-2025原子吸收分光光度计检定规程
- 广东省2025届湛江市高三下学期第一次模拟考试-政治试题(含答案)
- 2025年3月29日全国事业单位事业编联考A类《职测》真题及答案
- 梯子使用安全操作规程
- 民航保健与卫生
- 医药ka专员培训课件
- 【中考真题】2025年上海英语试卷(含听力mp3)
评论
0/150
提交评论