基于KVM的虚拟桌面基础架构设计与优化
- 格式:pdf
- 大小:345.88 KB
- 文档页数:3
2020年第4期信息与电脑China Computer & Communication软件开发与应用基于KVM 协议的远程虚拟桌面的设计与实现柯晓昱1 罗若文2 胡赛强3(1.福州软件职业技术学院 游戏产业学院,福建 福州 350213;2.福建石子科技有限公司,福建 福州 350110;3.福建工程学院 建筑与城乡规划学院,福建 福州 350118)摘 要:为了使校园网络管理员能够从大量的机房设备管理中解放出来,笔者结合云技术和具有良好的资源分配的Linux 系统,提出了基于KVM 的远程桌面虚拟化系统的设计与实现。
该系统主要采用Linux 系统的KVM 服务和VNC 客户端进行网络传输,基于JavaEE 的WEB 化管理,实现了虚拟系统的资源管理和分配,并以云的方式进行部署。
测试表明,系统性能稳定,有很好的发展前景。
关键词:虚拟桌面;KVM;VNC中图分类号:TP311.52 文献标识码:A 文章编号:1003-9767(2020)04-098-03Design and Implementation of Remote Virtual Desktop Based onKVM ProtocolKe Xiaoyu 1, Luo Ruowen 2, Hu Saiqiang 3(1. School of Game Industry, Fuzhou Institute of Software Technology, Fuzhou Fujian 350213, China;2. Fujian Shizi Technology Co., Ltd., Fuzhou Fujian 350110, China;3. School of Architecture and Urban-Rural Planning, Fujian University of Technology, Fuzhou Fujian 350118, China)Abstract: In order to liberate campus network administrators from a large number of computer room equipment management, theauthor proposes the design and implementation of Remote Desktop Virtualization System Based on KVM in combination with cloud technology and Linux system with good resource allocation. This system mainly uses KVM service of Linux system and VNC client for network transmission. Based on the web management of Java EE, it realizes the resource management and distribution of virtual system, and deploys in the way of cloud. The test shows that the system performance is stable and has a good development prospect.Key words: virtual desktop; KVM; VNC0 引言KVM 是Kernel-based Virtual Machine 的简称,是Linux 内的一个虚拟化模块,在多种Linux 发行版本中都有,它的资源调度是由Linux 自身的调度器管理的,而且核心的源码不多,是现在主流的VMM 之一。
基于虚拟化技术的桌面云计算平台构建与优化随着科技的不断发展,虚拟化技术在云计算领域中得到越来越广泛的应用和推广。
虚拟化技术通过将物理资源虚拟化,使得一台物理服务器可以同时承载多个虚拟机,并能够将这些虚拟机灵活地分配给用户。
在桌面云计算平台中,基于虚拟化技术的构建与优化可以为用户提供更好的使用体验和管理效率。
首先,构建一套基于虚拟化技术的桌面云计算平台需要考虑以下几个方面。
1. 服务器硬件配置:在构建平台之前,需要选择适合虚拟化技术的服务器硬件配置。
硬件配置的选择关系到平台的性能和稳定性。
一般来说,服务器应配备高性能的处理器和大容量的内存。
此外,为了提高硬件资源的利用率,可以选择支持硬件虚拟化的服务器。
2. 虚拟化软件选择:构建桌面云计算平台要选择适合的虚拟化软件。
目前较为流行的虚拟化软件有VMware、VirtualBox和KVM等。
这些软件具有不同的特点和功能,可以根据实际需求选择最合适的虚拟化软件。
3. 虚拟机管理:在桌面云计算平台中,虚拟机的管理是非常重要的。
通过虚拟机管理软件,可以方便地创建、启动、停止和管理虚拟机。
常见的虚拟机管理软件有vCenter、OpenStack和Proxmox等。
选择合适的虚拟机管理软件可以提高平台的管理效率和灵活性。
4. 桌面云服务:构建桌面云计算平台需要提供各种桌面云服务,包括面向用户的虚拟桌面、应用程序虚拟化和文件存储等。
通过提供虚拟桌面服务,用户可以通过互联网访问自己的桌面环境,并使用各种应用程序。
应用程序虚拟化可以将应用程序与操作系统解耦,提高应用程序的易部署性和管理性。
文件存储服务可以提供安全可靠的文件存储和备份。
在构建好基于虚拟化技术的桌面云计算平台后,还可以进行一些优化。
以下是一些优化的策略。
1. 资源管理与调度:通过合理地管理和调度虚拟机资源,可以提高资源的利用率。
可以根据各个虚拟机的负载情况,动态地调整虚拟机的资源分配。
此外,可以利用资源负载均衡策略将虚拟机均匀地分配到各个物理服务器上,以避免某个服务器资源过载。
基于云计算的虚拟桌面实现与优化云计算技术在当今信息技术领域中发挥着重要的作用,为企业提供了高效、灵活和可扩展的计算资源。
在这种背景下,虚拟桌面技术成为了许多企业提高办公效率、降低成本的选择。
本文将探讨基于云计算的虚拟桌面实现与优化的方法和策略。
一、虚拟桌面的概念及实现原理虚拟桌面是一种将用户的个人电脑桌面环境转变为位于远程服务器上的虚拟环境的技术。
通过虚拟化技术,用户可以在任何时间、任何地点通过互联网访问自己的个人桌面,使得工作变得更加灵活和便捷。
实现虚拟桌面的关键是将用户的操作与数据存储在远程服务器上,而不是在本地计算机上。
用户通过使用本地终端设备登录到远程服务器,服务器上的虚拟桌面会将用户的输入与显示反馈传输回终端设备。
这种架构可以大大提高资源的利用率,并加强数据的安全性。
二、基于云计算的虚拟桌面实现的优势1. 提高办公效率:用户可以在任何终端设备上访问自己的桌面,没有时间和空间的限制。
无论是办公室、家里还是旅途中,用户都可以轻松地获取自己的工作环境。
2. 资源共享和利用率提升:虚拟桌面技术将计算资源集中在远程服务器上,实现了资源的共享和集中管理。
由于各个用户共享一套硬件资源,资源利用率得到提高,减少了硬件采购和维护成本。
3. 数据安全和灾备恢复:所有的数据都存储在服务器上,用户可以通过云端进行备份和恢复。
针对用户身份验证和访问控制,虚拟桌面可以提供更高的数据安全性,减少了数据泄露和丢失的风险。
4. 简化管理和维护:通过虚拟桌面技术,企业可以集中管理所有终端设备和用户权限。
管理员可以远程管理和配置用户桌面环境,大大简化了管理和维护的工作量。
三、基于云计算的虚拟桌面实现的优化策略1. 基础设施的优化:为了实现高效的虚拟桌面体验,关键是要优化服务器和网络设备的性能。
通过使用高性能的服务器和网络设备,可以提供稳定、快速的远程桌面体验。
2. 加强用户体验:为了满足用户对于响应速度和实时性的需求,可以采用增加带宽、使用分布式存储、调整协议和优化数据传输等方法,提高用户体验。
基于云计算的虚拟化桌面系统设计与实现近年来,随着虚拟化技术和云计算技术的不断发展,基于云计算的虚拟化桌面系统逐渐成为了企业和个人选择的重要方式。
与传统的桌面系统相比,虚拟化桌面系统具有灵活性、安全性、可扩展性等优势,已经被广泛应用于各行各业。
本文将介绍一种基于云计算的虚拟化桌面系统设计与实现方案,旨在为读者提供一些指导和思路,促进虚拟化技术的应用和推广。
一、需求分析首先,我们需要明确自己的需求,即要实现的虚拟化桌面系统应具备哪些功能和特性。
例如,我们可能需要一个能够实现多用户远程访问、可定制化的界面、高速数据传输、安全可靠的数据存储等要求。
此外,我们还需要考虑到所选用的云平台、虚拟化技术以及适用的硬件环境等因素,以确保所选用的实现方案的可行性和实用性。
二、技术选型在选择技术方案时,我们需要考虑到多个因素,包括但不限于:1. 云平台的选择:AWS、Azure、阿里云等各项性能指标、功能、服务等方面的比较和分析。
2. 虚拟化技术的选择:虚拟机、容器化、桌面虚拟化等虚拟化技术的比较和分析。
3. 硬件配置选型:确保所选用的硬件配置(CPU、内存、存储等)能够满足实现方案的需要。
一般来说,我们可以选择虚拟机作为虚拟化桌面系统的实现技术,并结合AWS等云平台提供的服务和硬件环境,以达到高速、安全、可扩展的系统实现效果。
三、系统设计在确定技术方案后,我们需要进行系统的详细设计。
具体设计过程包括但不限于:1. 虚拟化框架的搭建:在AWS等云平台上创建一个虚拟网络环境,并选择合适的硬件配置,确保能够实现桌面虚拟化的需求。
2. 虚拟机镜像的制作:根据需要制作符合系统需求的虚拟机镜像,并将其导入到虚拟网络环境中。
3. 用户管理系统的搭建:建立一个能够管理用户账号、权限等信息的系统,以提供给用户访问虚拟化桌面系统的功能。
4. 云存储系统的搭建:建立以AWS等云平台的存储为基础的云存储系统,以保证数据的高速存储和可靠性。
基于云计算的分布式虚拟桌面系统设计与性能优化近年来,随着云计算技术的迅猛发展,分布式虚拟桌面系统逐渐成为企业和个人用户的热门选择。
这种系统可以将用户的桌面环境虚拟化,并通过云端服务器将用户的数据和应用程序实时传输到终端设备上。
本文将重点讨论基于云计算的分布式虚拟桌面系统的设计原则和性能优化措施。
一、系统设计原则在设计分布式虚拟桌面系统时,以下几个原则应被充分考虑。
1. 灵活可扩展性系统需要具备灵活的可扩展性,以应对用户的不断增长和业务的变化。
通过在云端服务器集群中分布用户的桌面环境,可以实现按需分配计算资源,从而优化系统的性能和可用性。
2. 安全性与隔离性分布式虚拟桌面系统需要有强大的安全性和隔离性能力,确保数据和应用程序不会被未经授权的人员访问或篡改。
在用户访问时,系统应采用多层次的身份验证和加密机制,同时在云端服务器上使用安全隔离技术,防止用户之间的互相干扰和攻击。
3. 高可用性与容错性为了保证用户在任何情况下都能正常访问系统,系统需要具备高可用性和容错性。
通过采用冗余和备份技术,当某个云端服务器出现故障时,系统可以自动切换到其他可用节点,确保用户的访问不受影响。
二、性能优化措施为了提升分布式虚拟桌面系统的性能,以下几项措施可以被采用。
1. 数据压缩和去冗余处理在将用户的桌面环境传输到终端设备时,可以采用数据压缩和去冗余处理技术。
通过减少数据传输量,可以提高数据传输的效率,并减少带宽的占用。
2. 延迟优化在分布式虚拟桌面系统中,延迟是一个非常重要的性能指标。
通过优化云端服务器的响应速度和网络传输的延迟,可以降低用户访问系统时的等待时间,提升系统的用户体验。
3. 资源调度与负载均衡为了实现高性能的分布式虚拟桌面系统,合理的资源调度和负载均衡是必不可少的。
通过动态监测云端服务器的负载情况,并将用户请求分配到负载较轻的服务器上,可以最大限度地提升系统的性能和响应速度。
4. 缓存技术的应用利用缓存技术可以提高用户对常用数据和应用程序的访问速度。
基于云计算的虚拟桌面系统设计与优化云计算和虚拟化技术是当今IT领域的热门话题,它们为企业提供了更高效、灵活和安全的信息技术解决方案。
虚拟桌面系统是云计算的一个重要应用,能够将用户的桌面环境虚拟化和集中管理,为用户提供远程访问桌面的便利。
在传统的桌面环境中,用户需要使用物理设备进行工作,而云计算的虚拟桌面系统则将桌面环境虚拟化,将用户的桌面操作和数据存储在云端,用户只需要通过网络连接就可以访问自己的个人桌面。
这种技术的优点是显而易见的:提高了工作的灵活性和移动性、降低了硬件和维护成本、提供了更好的数据安全性。
虚拟桌面系统的设计和优化关键在于提供快速、可靠、稳定的用户体验。
首先,需要选择适当的虚拟化技术和云计算平台。
虚拟化技术可以使用硬件虚拟化或软件虚拟化,在选择时需要考虑到系统性能、硬件要求、软件兼容性等因素。
云计算平台可以选择公有云、私有云或混合云,根据业务需求和安全性要求来进行选择。
其次,虚拟桌面系统需要考虑到用户的需求和使用习惯。
不同的用户可能会有不同的应用需求和工作环境,因此需要根据用户的需求来定制个性化的虚拟桌面环境。
例如,某些用户可能需要多屏幕支持,某些用户可能需要特定的应用软件,虚拟桌面系统需要能够满足这些不同的需求。
另外,性能优化也是虚拟桌面系统设计的重要考虑因素。
由于云计算环境的多租户特性,虚拟桌面系统需要能够平衡不同用户之间的资源利用和性能要求。
例如,可以通过资源调度算法来优化系统的性能,确保每个用户都能够获得足够的计算资源。
此外,还可以采取缓存、压缩和去重等技术来减少数据传输的带宽和延迟,提高用户访问桌面的响应速度。
安全性是任何云计算系统的重要考虑因素,虚拟桌面系统也不例外。
在设计虚拟桌面系统时,需要考虑数据的传输加密、访问控制和身份认证等安全方面的问题。
例如,可以使用SSL/TLS协议来加密数据传输,可以使用双因素身份认证来增加安全性,可以使用访问控制策略来限制用户对资源的访问。
基于KVM的桌面虚拟化架构设计与实现作者:张惠华来源:《中国高新科技·下半月》2017年第04期摘要:为了解决传统PC机技术数据零散、数据安全性低、数据维护工作量大、管理难度大等问题,KVM桌面虚化架构的概念被提出。
其设计的核心思想是按照“分布显示,集中计算”的基本原则,利用虚化技术将所有客户运算整合起来,然后将数据集中到数据中心处理,提高企业的管理效率,降低企业的管理成本。
文章重点对KVM桌面虚拟化架构的设计和实现进行分析和探讨。
关键词:桌面虚化架构;KVM系统;互联网文献标识码:A 中图分类号:TP316文章编号:2096-4137(2017)10-028-03 DOI:10.13535/ki.10-1507/n.2017.10.09随着IT技术的不断发展,PC采购成本日益减少。
在IT架构管理过程中,PC技术没有出现大变革。
为了满足要求,虚拟化技术出现,提出了IT管理架构具体改进方法,在服务器和存储方面得到了广泛的应用。
文章首先介绍虚拟化技术的基本概念,然后对KVM桌面虚拟化架构的设计和实现进行探讨。
1 虚拟化定义互联网技术的进步在计算机应用方面起着重要的推动作用。
随着人们生活节奏的不断加快,对计算机设备的移动性、多样性、安全性以及产品更新换代都有了更多的要求,“紧耦合”的传统计算机结构已经跟不上时代的步伐。
例如,在对产品进行更新换代时,要重新安装一些应用和配置,但是这些应用和配置有可能和新系统出现不兼容的情况。
技术人员针对不兼容性问题也尽可能地利用技术进行补救,但是并不能从根本上解决该问题,补救技术大多数是治标不治本。
但随着科学技术的不断进步,一些技术难题还是得到了解决。
例如,虚拟化技术的应用让人们对解决技术性难题更抱有信心。
所谓的虚拟化技术就是保持原有的上下逻辑关系和层次结构不变,在两个“层”中间安排一个“虚拟层”进去,每个层之间就由“紧耦合”转变成了“松耦合”。
而“松耦合”是针对于某个“层”,当下层结构不发生改变时,这层就可以任意变动。
基于云计算的虚拟桌面服务系统设计与实现随着信息技术的发展,云计算技术在各个领域得到了广泛应用。
其中,基于云计算的虚拟桌面服务系统是一种非常实用的方案,因为它可以提供高效、便捷和安全的桌面虚拟化服务。
本文将介绍基于云计算的虚拟桌面服务系统的设计与实现。
一、系统架构设计虚拟化技术是实现云计算的重要组成部分。
在虚拟化技术中最主流的是VMware、KVM,Citrix Xen等。
这些系统都具有不同的特点,可以针对不同的企业需求和业务场景进行选择。
本文所介绍的虚拟桌面服务系统选择了基于Citrix XenServer的虚拟化技术。
在建立一个基于云计算的虚拟桌面服务系统之前,需要先设计好架构。
系统架构包括三个部分:云计算基础设施、虚拟桌面存储以及虚拟桌面管理。
云计算基础设施作为底层基础设施,主要包括服务器、网络以及存储等相关设备。
虚拟桌面存储则是对虚拟桌面和用户数据进行存储的设备。
虚拟桌面管理平台则是一个集中管理虚拟机、物理服务器、存储以及各种虚拟化、限制和管理功能的管理平台。
二、虚拟桌面服务系统实现1. 系统环境部署通过Citrix官方提供的安装包和详细操作手册,按照文档说明即可完成系统的部署。
需要注意的是,在安装之前必须先准备好相关硬件和配置参数,包括服务器IP地址、虚拟桌面大小、内存大小和CPU核心等等。
2. 虚拟桌面的创建、修改和删除在系统环境部署完成后,需要针对虚拟桌面进行创建、修改以及删除等操作。
这些操作需要使用到虚拟桌面管理平台,管理员通过该平台对虚拟桌面进行管理和维护。
3. 虚拟桌面访问授权管理在进行虚拟桌面访问授权管理时,需要考虑到系统的安全性和稳定性。
因此,需要对虚拟桌面访问进行授权,并进行访问的权限管理。
4. 基于云计算的灾难恢复在系统运行过程中,由于各种原因,系统可能会出现意外的崩溃或故障。
基于云计算技术,我们可以设计一种灾难恢复方案。
在系统出现故障时,可以通过备份或快照等方式进行数据恢复。
基于云计算的虚拟化桌面系统设计与实现随着现代科技的发展,人们对于计算机的需求也越来越高。
尤其是在企业环境中,高效的计算资源管理和灵活的工作环境成为企业追求的目标。
基于云计算的虚拟化桌面系统应运而生,它能够解决传统桌面计算机带来的一系列问题,并提供更加灵活和高效的工作环境。
一、需求分析在进行虚拟化桌面系统的设计与实现之前,我们首先需要进行需求分析。
一般来说,虚拟化桌面系统应满足以下几个主要需求:1. 可扩展性:系统能够根据企业的需求进行扩展,不受物理设备数量和性能的限制。
当企业规模扩大或者需求增加时,系统能够进行相应的资源调配和扩容。
2. 高可用性:系统需要保证在任何情况下都能够提供稳定和可靠的服务。
当某个物理节点宕机时,系统能够自动调整,确保用户的工作不受影响。
3. 安全性:虚拟化桌面系统中的用户数据需要进行加密和隔离,保证数据的安全性。
同时,系统需要提供权限控制机制,确保只有授权的用户能够访问和操作自己的桌面。
4. 性能优化:系统需要对计算资源进行合理利用,提供优化的计算和存储性能。
例如,使用负载均衡技术,将用户的请求合理分配到不同的物理节点上,避免单点故障。
二、系统设计基于以上需求分析,我们可以进行虚拟化桌面系统的设计。
下面是一个基于云计算的虚拟化桌面系统的基本架构:1. 前端用户界面:提供用户登录和操作虚拟桌面的界面,可以通过浏览器或者专门的客户端进行访问。
用户可以选择自己的虚拟桌面配置,例如处理器和内存的数量。
2. 虚拟机管理平台:负责虚拟机的创建、销毁和管理。
它能够监控物理节点的状态,并根据需求进行资源的分配。
同时,它还需要提供虚拟机的快照功能,用于备份和恢复用户的工作环境。
3. 虚拟化技术:虚拟化技术是实现虚拟化桌面系统的关键。
常用的虚拟化技术包括硬件虚拟化和容器化。
硬件虚拟化技术通过虚拟机监控程序(VMM)在物理硬件和虚拟机之间创建一个虚拟层,使得多个虚拟机能够共享物理硬件资源。
容器化技术则是将应用程序和相关依赖封装到一个隔离的容器中,多个容器共享同一个操作系统内核,提供更高的性能和资源利用率。
基于云计算的虚拟桌面管理系统设计与实现云计算技术的快速发展促使了各行业对于虚拟化技术的需求不断增加。
虚拟桌面管理系统作为一种重要的基于云计算的解决方案,为企业提供了更加高效、灵活和安全的办公环境。
本文将对基于云计算的虚拟桌面管理系统进行设计与实现的相关内容进行探讨。
一、引言虚拟桌面管理系统是将多个虚拟桌面实例部署在云计算平台上,并通过网络传输将虚拟桌面的图像和交互操作传送到终端用户的计算设备上,实现远程访问和办公。
其优点在于可以减少终端用户设备的要求,提高资源利用率,节省成本,提高安全性和可维护性。
二、系统设计1. 虚拟桌面部署基于云计算的虚拟桌面管理系统的设计开始于虚拟桌面的部署。
可以选择使用开源的虚拟机管理软件,如VMware、Citrix XenServer等。
建立一个虚拟机池,使用云计算平台基础架构作为虚拟化环境,将虚拟桌面实例化并分配给终端用户。
2. 网络传输在基于云计算的虚拟桌面管理系统中,网络传输是至关重要的部分。
可以选择使用远程桌面协议,如RDP(Remote Desktop Protocol)、VNC(Virtual Network Computing)等。
通过网络将虚拟桌面的图像和交互操作传送到终端用户的计算设备上,实现远程办公。
同时,为了提高传输效率和体验,可以使用数据压缩和加密技术。
3. 终端设备管理虚拟桌面管理系统需要对终端设备进行管理。
可以选择使用设备管理软件,对终端设备进行远程监控、维护和升级。
同时,可以对终端设备进行策略管理,限制用户对设备的访问和操作,提高安全性。
4. 用户身份认证为了保证系统的安全性,虚拟桌面管理系统需要进行用户身份认证。
可以选择使用单一登录认证技术,如LDAP (Lightweight Directory Access Protocol)、X.509证书等。
通过用户身份认证,确保只有授权用户才能访问虚拟桌面系统,提高系统的安全性。
5. 资源管理虚拟桌面管理系统需要进行资源管理,包括计算资源、存储资源和网络资源的分配和调度。
第44卷 第6A期2017年6月计算机科学COMPUTER SCIENCEVol.44No.6AJune 2017本文受安徽工程大学教学研究项目(2015jcjxzz01)资助。
唐红梅 高级工程师,主要研究领域为计算机软件技术、云计算及其应用;郑 刚 副教授,硕士生导师,主要研究领域为云计算、分布式计算。
基于KVM的虚拟桌面基础架构设计与优化唐红梅1 郑 刚2(安徽工程大学现代教育技术中心 芜湖241000)1 (安徽工程大学计算机与信息学院 芜湖241000)2摘 要 随着云计算的不断发展,虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)解决方案日益成熟。
VDI建立在虚拟化技术的基础上,突破了时间和空间的限制,有效地解决了传统个人计算机使用过程中存在的诸多问题,是当前桌面云解决方案中主流的架构与部署方式。
充分利用VDI的优势,结合目前流行的KVM虚拟化技术,探讨解析虚拟桌面架构并进行实际部署,详细设计了平台优化方案,最后进行了测试并记录了性能表现,验证了系统的正确性和可用性。
结果表明,VDI为现代机房带来了移动计算、方便管理和降低运维成本等诸多改进,为高校实际安装部署虚拟化平台提供了现实的指导意义。
关键词 虚拟桌面基础架构,虚拟化技术,KVM,优化方案中图法分类号 TP311.1 文献标识码 A Design and Optimization on Virtual Desktop Infrastructure Based on KVMTANG Hong-mei 1 ZHENG Gang2(Modern Education Technology Center,Anhui Polytechnic University,Wuhu 241000,China)1(School of Computer and Information Technology,Anhui Polytechnic University,Wuhu 241000,China)2 Abstract With the continuous development of cloud computing,the virtual desktop infrastructure(VDI)solution is be-coming more and more mature.VDI is established on the basis of the virtualization technology,break through the limitof time and space,effectively solve the problems in the process of using traditional personal computer,and is the main-stream in current desktop cloud solution architecture and deployment.In this paper,making full use of the advantages ofVDI,combining with the epidemic KVM virtualization technology,virtual desktop resolution architecture was discussedand made actual deployment,and the optimization platform was detailed designed.Finally we did the test and recordedperformance results,which verify the correctness and availability of the system.The results show that the VDI bringsmany conveniences for mobile computing,management and reducing operational costs of modern computer room,andprovides real guidance for colleges deploying virtualization platform.Keywords Virtual desktop infrastructure,Virtualization technology,KVM,Optimization scheme 1 引言虚拟化技术是云计算为用户提供灵活增减IT资源、按需付费等特色服务的基础核心,在虚拟化环境下,云计算成为可能,因此虚拟化技术无疑是当今研究的热点。
随着高校办学规模的不断扩大,中心机房也将承载着更多的教学、实践与考试任务,为了满足这些需求,需要构建更新颖、更复杂的软件环境,而传统的PC桌面管理模式面临着数据安全、管理成本、设备功耗等诸多方面的挑战[1]。
VDI通过虚拟化技术将用户的桌面管理都迁移至数据中心,终端用户通过虚拟桌面传输协议访问桌面系统,以“集中管理,分布显示”的原则将用户的桌面应用环境与其显示终端进行解耦合,使得用户可以通过网络接入的方式随时随地获取属于自己的计算机教学实验环境,极大地提高了系统的安全性和硬件系统的利用率,有效弥补了传统机房管理和运维的不足。
2 虚拟化技术分析2.1 虚拟桌面虚拟化技术种类很多,主要包含了虚拟服务器技术、虚拟桌面技术和虚拟应用技术等多个方面,虚拟化技术从实现结构上可以分为Hypervisor型虚拟化、宿主型虚拟化、混合型虚拟化。
虚拟桌面技术是将平台虚拟化,在硬件、软件环境与用户间增加虚拟层,把计算机的实际物理特性隐藏起来,建立起一个虚拟的计算环境(称为虚拟桌面或虚拟机)。
由于具有成本低,更可控、更安全的桌面环境以及面向PC和其他终端应用集中等诸多优势,虚拟桌面技术无疑成为当今研究的热点。
现阶段,虚拟桌面技术的解决方案较多,如:VMwareViewer,Citrix XenDeaktop和KVM[2](Kernel-based VirtualMachine)。
本文以KVM技术构建的虚拟化桌面为讨论对象,采用当前兼容性最好的Spice作为桌面传输协议,讨论其在机房环境应用下带来的改进。
2.2 KVM技术KVM虚拟化技术是x86硬件平台上Linux操作系统完全原生的全虚拟化解决方案[3],具有开源的特性以及出色的表现,是目前最流行的虚拟化产品,适用于包括Windows以及Linux操作系统的各种变种的多种操作系统。
KVM技术采用宿主型虚拟化模型,是第一个基于Linux内核的Hypervisor[4](虚拟机监视器,也称VMM),使KVM平台上运行的虚拟机能够使用Linux内核提供的内存管理和进程管理等机制,从而让虚拟机获得与宿主机(Host)相当或者比Host更好的性能。
KVM并不是一个完整的模拟器,具体的模拟器工作需要借助QEMU[5](虚拟化模拟器)来完成,形成可控制KVM内核模块的用户空间工具QEMU-KVM。
由于QEMU工具效率仍然不高,本文采用QEMU-KVM[6]和Libvirt(KVM虚拟机进行管理的工具和应用编程接口API)相结合的方式,提供对虚拟机客户机(Guest)的管理以及对虚拟化网络和存储的管理。
3 虚拟桌面架构设计基于Libvirt及QEMU-KVM的虚拟桌面架构是面向智能移动终端解决方案中的服务端实现部分,系统架构如图1所示。
图1 虚拟桌面系统架构在解决方案中,虚拟化资源池(Virtualization ResourcePool)借助Libvirt工具库实现且构建于QEMU-KVM之上的机器集群,利用Spice协议实施虚拟桌面向终端用户的交付,通过Spice server以Spice协议[7]的方式与终端用户上的Spice client完成通信以实现虚拟桌面传输,client通过Spice协议显示并操作虚拟桌面。
资源池管理系统基于QEMU-KVM完成,通过TCP/IP协议连接到这些服务器节点的Lib-virt守护进程,借助Libvirt库实现对物理资源和虚拟资源的监控和管理。
资源池管理系统和虚拟化资源池共同构成了混合型虚拟桌面服务端,并通过统一的标准化API为上层应用提供底层服务,上层应用的服务端通过调用API获得底层服务[8]。
4 系统优化方案本系统采用的KVM虚拟化技术虽然已有很高的性能,但由于运行在虚拟机上的操作系统是针对物理机开发的,其在虚拟机上运行时会出现一些不适应虚拟化环境的因素,造成系统在使用过程中的一些瓶颈。
因此,通过优化资源的解决方案可以进一步提高系统的整体性能,本文主要探讨虚拟机环境下的内存优化策略。
4.1 内存虚拟化的实现实现内存虚拟化的核心是虚拟地址到物理地址的转换,KVM可以采用影子页表(Shadow page)或扩展页表(Exten-ted Page Table,EPT)技术来实现[9]。
由于Guest维护的虚拟Guest内存页表地址和Host维护的物理内存页表地址在开始时并没有形成映射关系,影子页表技术的核心思想是利用页故障的方式产生一个Pagefault int的异常,然后跳出KVM的执行流程,使得KVM异常执行程序可以捕获并且处理该异常,同时根据Guest的Page table填充影子页表,即可使得在影子页表中保存客户机操作系统(Guest OS)中的虚拟地址到宿主机操作系统(HostOS)中物理地址的转换映射。
影子页表的使用带来了地址转换过程的简化,但是也有一些明显的缺点,如Guest OS在读写CR3或Guest页表不完整时都会导致VM exit的产生,使内存虚拟化的效率明显降低。
为了改善这一状况,KVM会使用EPT这种高效的虚拟机-主机内存管理方法来实现内存虚拟化。
如图2所示,EPT页表结构定义了虚拟机物理地址到主机物理地址之间的映射关系,所有的虚拟机物理地址都必须经过EPT页表结构转换后,用户才能访问主机物理内存。
在釆用EPT实现内存虚拟化之后,虚拟机读写CR3、执行影子页表虚拟化指令和Guest页表结构自身导致的页故障都不会产生VM exit,可以大大提高内存虚拟化的实现效率。
图2 EPT内存虚拟化工作原理4.2 内存的过载使用KVM中内存允许过载使用(over-commit),KVM能够让分配给Guest的内存总数大于实际可用的物理内存总数,这样就可以达到节省内存开销的目的。
由于Guest OS及其应用程序并非一直百分之百地利用其分配到的内存,而且Host上的多个Guest一般也不会同时达到100%的内存使用率,因此内存过载分配是可行的,实现内存过载使用的方式有3种:1)内存交换(swapping),用交换空间(swap space)来弥补内存的不足;2)气球(ballooning),通过virio_balloon驱动实现Host Hypervisor和Guest之间的协作来完成;3)页共享(page sharing),通过KSM(Kernel samepage merging)合并多个Guest进程使用的相同内存页。