浅析KVM虚拟化平台的构建
2016-05-12韩文智
韩文智
(四川职业技术学院计算机科学系,四川遂宁629000)
浅析KVM虚拟化平台的构建
韩文智
(四川职业技术学院计算机科学系,四川遂宁629000)
随着云计算技术的快速发展和应用,有效的降低了企业的IT成本,使得企业可以快速的构建各类高效的信息化系统,虚拟化技术作为云计算技术的核心,其在云计算技术中被广泛使用,KVM(基于内核的虚拟机系统)是一种高效的虚拟机系统技术,是一个运行在操作系统上的虚拟化管理程序,是目前应用最为广泛的和公认的最为高效的虚拟机系统,被广泛的应用于各种大型云计算平台中,如亚马逊的Amazon云服务,阿里巴巴的阿里云服务都应用了先进的KVM虚拟化技术,本文将从KVM虚拟化平台的构建出发,对目前KVM虚拟化技术研究现状进行分析,浅析目前KVM虚拟化平台构建存在的问题,并提出了提高虚拟化安全性的方法,对提高KVM虚拟化平台安全性、促进KVM虚拟化技术发展具有非常重要意义.
KVM;虚拟化平台;云计算;安全
平台虚拟化主要是将计算机系统的主要的资源,如C P U、内存、网络和硬盘等进行抽象化处理[1],并且通过相关的管理程序进行整合和统一管理,操作系统则通过虚拟机的抽象层获取需要的计算机资源,实现操作系统与计算机硬件资源的隔离,和统一管理,有效的提高了计算平台的效率[2].
从目前已有的虚拟化技术研究来看,根据虚拟机工作时与软硬件之间的相互关系可以将虚拟化技术分为全虚拟化技术、半虚拟化技术和硬件辅助虚拟化技术三类,其中全虚拟化技术采用的是二进制转译技术来解决虚拟机客户与操作系统的特权指令问题[3],如常见的Q E M U和V M w are虚拟机软件都是采用这种技术来实现的;半虚拟化主要是通过修改操作系统的核心[4],利用构建虚拟管理程序来实现对硬件运算资源的访问和管理,如U M L和X en虚拟机软件系统都是采用这种方式进行实现的;硬件辅助虚拟化技术主要是指能够支持英特尔公司推出的I ntel-V T硬件虚拟化技术或者是A M D推出的A M D-V硬件虚拟化技术,通过这两种技术来实现一些处理指令提高虚拟化性能[5],基于这两个平台实现的都是直接通过硬件C P U辅助指令来执行相关虚拟化命令,这种虚拟化技术的效率非常高,处理速度是其他虚拟化技术无法相比的,也是目前应用最为广泛的一种虚拟化技术,如K V M、V M w are E S X i虚拟化软件等[6],采用硬件辅助虚拟化技术构建的虚拟化平台,不需要对操作系统进行修改也不需要执行任何的代码转译程序,有效的弥补了前全虚拟化技术和半虚拟化技术的不足.
基于上述背景,本文在研究过程中,选择了目前应用最为广泛的K V M虚拟化技术,探讨利用K V M虚拟化技术构建虚拟化平台的现状和存在的问题,并提出了相关的解决对策,以提高基于K V M虚拟化技术构建的虚拟化平台的安全性和稳定性.
1 虚拟化研究现状
1.1 系统虚拟化
系统虚拟化技术主要是使用虚拟化软件技术在一个计算机硬件平台上构建多台的虚拟计算机系统,其构建的虚拟机系统和普通的计算机系统一样具备传统计算机系统的所有的功能,可以运行各种计算机软件和操作系统,是虚拟化技术领域的一个重要方向[7].
早在上世纪中期,美国军方的计算机研究机构就开始对计算机系统层面的虚拟化技术进行了研究和探讨,并且提出了虚拟化技术的概念,当时的虚拟化技术主要是指计算机系统基本的虚拟化技术[8],通过软件构建一个模拟传统计算机环境的虚拟化计算机系统,但是早期的虚拟化计算机系统智能应用在一些大型的主机上,随着后续的计算机虚拟化技术的发展,特别是一些I T硬件的丰富和多元化,一些软件公司推出了不同的虚拟化软件之后,虚拟化技术开始在各个领域得到了广泛的应用和发展[9],近年来,随着计算机硬件系统的日益复杂,计算机系统的资源管理难度极大的提高,特别是云计算概念的提出,基于云计算实现对整个网络的计算硬件资源的有效整合,有效的促进了虚拟化技术的发展和应用,这也使得虚拟化技术成为了目前最为热门的计算机技术,得到了学术科研界的广泛关注和研究,从目前计算机系统虚拟化技术发展来看[10],可以根据其技术层次的不同将其分为指令架构级、硬件级和操作系统级和编程语言基本的虚拟化技术,下文将以K V M虚拟化技术为例从这四个技术层面对计算机系统虚拟化的研究和发展现状进行分析[11].
1)计算机C P U指令架构级的虚拟化
K V M是基于内核的一种虚拟化技术,其在实现计算机C P U指令架构级别的虚拟化中,主要是高度依赖l inu x操作系统内核提供的相关功能,来模拟出与实际运行的应用程序相同的指令集去执行,在K V M中采用这种方式构建了一个计算机指令模拟器,该指令模拟器在K V M中主要是负责通过将客户虚拟机发出的所有的指令翻译成本地指令,然后在真实的计算机硬件环境上执行,在K V M中利用这种方式实现对计算机的C P U的指令架构级别的虚拟化,其不仅可以实现典型的计算处理指令集,同时还可以实现一些特殊的I/O处理指令的虚拟化,进而可以方便的实现应用和操作系统的跨平台执行,通过K V M可以容易的实现对各种能计算机平台的兼容性,如K V M提供的指令架构级别的模拟器可以方便让原来运行在X86结构的计算机平台上的操作系统和应用程序迁移到A R M、P o w er P C等处理器架构平台上[12].
2)硬件级别的虚拟化
硬件抽象层面的虚拟化其实质与指令集的虚拟化非常类似,其主要是利用客户执行环境与主机相同的指令集合的特点,让绝大多数客户指令能够在主机上直接执行,进而有效的提高指令执行的速度,目前这种技术在各类虚拟化软件平台中都得到了应用,如K V M虚拟机、L M虚拟机等,在K V M虚拟机中主要是通过V MM管理器将K V M系统中的虚拟资源和真实的计算机平台上的物理资源进行映射,在虚拟机需要访问关键的物理资源的时候,K V M中提供的硬件资源模拟器将接管整个计算机平台的物理资源并采用多路复用技术实现对各种硬件资源的多路复用,在K V M中利用这种技术可以使得整个虚拟机和底层物理及其实现高度的隔离,使得利用K V M构建虚拟化平台的时候可以非常容易的支持各种不同的操作系统和应用程序,并且风险低易于维护.
3)操作系统级的虚拟化
操作系统虚拟化主要是在操作系统之上的虚拟层按照每个虚拟机的要求为其生产一个运行在物理及其上的操作系统的克隆版本,实现虚拟机与物理计算机的隔离,在K V M虚拟机中也提供了对操作系统的虚拟化的支持,其主要是在操作系统之上提供一个虚拟层,是一种类似于V MM的程式,通过该程式来实现提供多个独立的隔离的计算机,实现操作系统的用户函数库、文件系统和环境的相关设置,保持这些环境的稳定性,进而使得为应用程序提供一个完全的虚拟的操作系统环境.
4)编程语言级的虚拟化
编程语言级的虚拟化是计算机系统虚拟化的一个重要内容,其主要是构建I S A抽象层来支持各种编程语言的执行,如通过对J V M的支持来实现对j ava语言的支持,在利用K V M技术来构建虚拟化平台的时候可以利用J V M和N E T C L等方式来实现对j ava和net编程技术的支持,进而使得基于这些语言开发的程序可以方便的在K V M虚拟化平台上运行.
1.2 虚拟机监控器
虚拟机监控器是虚拟机的一个重要组成部分,也是整个虚拟机的核心,其在虚拟机中主要是负责管理真实的物理硬件,同时向运行在虚拟机上的客户操作系统提供虚拟的计算机资源.随着虚拟化技术的快速发展和应用,虚拟监控器技术也得到了快速的发展,目前根据虚拟监控器的实现方式主要可以分为以下三类:
1)Hy p ervisor模型
该类虚拟机监控器主要是在传统的操作系统的基础上,通过添加相关的虚拟化技术支持,在操作系统中集成虚拟监控器来实现对各种硬件资源和虚拟资源的管理和监控,在该类模型中虚拟机监控器拥有对计算机平台的物理资源的访问的所有权限,基于这种模式实现的虚拟机监控器具有较高的虚拟化效率,同时由于基于Hy p ervisor模型的虚拟机监控器需要对计算机平台的各种I/O设备资源进行监控和管理,在这种模式下进行虚拟机构建需要进行大量的设备驱动程序的开发和设计,进而使得整个虚拟监控系统变得非常臃肿,在K V M虚拟机技术中也可以有效的支持Hy p ervisor模型,基于该模型的虚拟机架构如图1所示.
图1 Hypervisor模型的虚拟化控制器架构
2)宿主模型
宿主模型也是一种非常重要的虚拟控制器技术,其在构建和管理虚拟机的时候主要是以传统的操作系统作为素质的操作系统,宿主机在工作过程中,其本身并不提供任何的虚拟化支持,只是虚拟控制器以系统模块的形式与整个宿主机的操作系统进行相关的协作,为虚拟化平台提供一些虚拟化功能,在宿主机虚拟化控制器模型下,其主要是通过调用操作系统的相关的服务和接口来实现对整个计算机平台的真实的物理资源的访问和控制,与Hy p ervisor模型相比,在宿主模型下,虚拟控制器是在虚拟机创建之后才创建的,其作为宿主操作系统的一个工作进程被操作系统创建和管理。如V M w are S erver、vir tual P C等虚拟机软件都是基于宿主模型进行开发和设计的,但是这种模式下由于宿主机才是真正的控制和管理者,因此会导致整个虚拟化效率降低,并且其安全性还需要依赖整个虚拟控制器的安全祥和宿主机操作系统的安全,安全风险也有所增加,典型的宿主模型的虚拟机控制器的结构如图所示.
图2 基于宿主模型的虚拟机控制器架构
3)混合虚拟控制器模型
该模型中将整个虚拟机控制器放在最底层,其拥有对计算机平台的绝大部分的物理资源的访问和控制权限,该种模式下的虚拟机控制器将大部分的I/O设备的控制和管理权限都是通过一个在拥有特权的虚拟机的特权操作系统进行管理和控制,该模型下的虚拟机的控制器的主要的设备模型和相关的设备驱动都被集成在该特权操作系统中,运行在这个特权操作系统中的虚拟控制器和该特权操作系统协同完成对计算机平台资源的虚拟化工作,如定性的Windo w s S erver2008的虚拟机控制器就是基于该模型进行开发和设计的,在Windo w s S erver2008的架构中Hy p er-V作为虚拟机控制器运行在最底层,特权操作系统是运行在Hy p er-V之上的。这种模式下,由于设置了特权操作系统,其可以兼容前面两种模式的优点,但是如果该模型中的特权操作系统和虚拟机控制器之间的交互和切换过于频繁整个虚拟机的虚拟化性能将降低,其中典型的混合虚拟控制器的架构如图3所示.
图3 混合模型下的虚拟控制器架构
K V M虚拟化技术是l inu x中内核的一部分,是基于inel V T技术和A M D S V M技术的一种硬件辅助虚拟化技术方案,同时结合了Q E M U模拟器来实现对设备的虚拟化,其控制模型主要是采用了Hy p ervisor模型,同时兼容宿主机模型,采取的是一种倾向于Hy p ervisor模型的混合式虚拟控制器模型,本文在后续的对虚拟化安全问题的探讨主要是探讨基于K V M虚拟化技术构建的虚拟化平台存在的安全问题.
2 虚拟化安全问题研究
2.1 虚拟化存储安全问题研究
在基于K V M虚拟机技术构建和实现虚拟化平台中,可以通过使用L V M(L ogical Home M anager)和创建存储池的方式来实现对K V M虚拟机系统的存储管理,其中在创建K V M虚拟机的时候默认使用虚拟磁盘文件作为整个虚拟化平台的后端存储,在完成虚拟机的安装后,整个虚拟机使用磁盘的时候认为是在使用真实的磁盘,但是,实际上其访问的是一种模拟硬盘的虚拟文件,这种存储方式会降低系统的速度和安全性,目前在K V M中的存储虚拟化中主要有以下三种技术,下文将对这三种技术及存在的安全问题进行分析.
1)基于文件系统的K V M存储
在构建K V M虚拟化平台的时候,如果采用基于文件系统的K V M存储,其可以使用本地文件系统或者位于虚拟化平台上的某个物理宿主机上的网络文件系统,这种方式下由于文件系统的固有特点,无论是网络文件系统还是本文文件系统,在存储资源访问的时候需要通过写入到宿主机的操作系统之上的文件系统,需要额外的通过一层操作系统来进行访问,而由于操作系统的安全性问题,特别是在网络环境下,其容易受到攻击,恶意程序通过操作系统对文件系统产生破坏,导致其安全性能降低.
2)基于设备的K V M存储
该种K V M存储主要是基于设备方式进行,通过支持不同存储设备如磁盘、i S C S I、S C S I和逻辑盘等,这种方式下访问磁盘是通过直接读写硬盘设备来实现来得,其不需要通过操作系统来搜索磁盘和访问磁盘,但是这种方式实现的虚拟机系统存储,其不带备份,不支持镜像,如果虚拟机的存储出了故障很容易导致数据丢失并且无法恢复,特别是系统级别的数据,非常容易导致整个系统奔溃.
3)K V M存储池方式
K V M存储池是K V M虚拟化技术中的一种重要的存储方式,其主要是为了简化存储管理,通过在宿主机上创建相关的K V M存储池,实现预留空间的分配,这种方式经常应用在大型的虚拟机平台系统中,通过远端磁盘阵列来分配磁盘或者目录,在这种基于分布式方式的存储构建中,也面临着网络安全问题,其需要绕过操作系统层和文件管理层来实现访问和控制,这就非常容易受到网络安全攻击.
2.2 虚拟化环境中的安全问题分析
K V M虚拟化环境中的安全问题主要是指K V M虚拟化管理程序的安全性、K V M虚拟化机制的安全性和K V M远程管理的安全性三个方面,下文将对这三个方面的虚拟化安全问题进行详细分析。
1)虚拟化管理程序的安全问题
这方面主要是在虚拟化环境下的一些管理程序对主机的访问的限制,与一般的计算机环境相似,如果一些管理程序的操作不正确将直接破坏整个虚拟化网络环境,对其造成致命的破坏,尤其是引入到虚拟层的时候,虚拟化管理程序的安全问题更加凸显。
2)虚拟机的安全问题
虚拟机的安全问题主要是指运行在虚拟机上的操作系统的安全以及虚拟化管理程序的内部的虚拟化处理的安全,因为在虚拟化环境下通过本地存储和远程存储上的相关的虚拟化管理程序都可以实现对整个虚拟机的相关资源的访问和控制,这样虚拟机的安全性直接关系到整个虚拟平台的安全,提高虚拟机的安全性是提升虚拟化平台安全的前提。
3)远程管理的安全问题
在虚拟化环境下主要是通过网络远程管理方式对虚拟化环境下的各类计算机资源和虚拟资源进行管理,在管理过程中通常需要涉及到对K V M虚拟主机上的资源的远程访问,需要将虚拟环境管理的相关工作分配给虚拟环境中的其他用户,而这一系列的远程管理都将面临着网络安全问题。如何在远程管理中采用安全的通信手段是K V M虚拟化环境面临的一个重要安全问题.
2.3 提高虚拟化安全性的方法
通过前文分析,K V M面临的安全问题主要包括存储安全和环境安全,因此,提高虚拟化安全性的方法主要从存储安全和环境安全两个方面进行.
其中在存储安全问题上,通过前文分析,目前K V M采用的存储方式主要有基于文件系统、基于设备和基于存储池三种方式,这三种方式各有优点和缺点,同时也都面临着一系列的安全问题,如基于文件存储需要面临操作系统层带来的一些安全风险,在这方面我们可以通过增加负责运行文件系统的操作系统的安全性,通过配置i p tabes防火墙,根据需求设置其级别和安全访问控制方式,增强该操作系统的安全性,在基于设备存储方式上,可以通过为L V M构建存储副本来提高其存储安全性,在L V M被破坏后还可以通过从额外的副本中进行恢复,总的来讲,在解决K V M存储方式的安全问题上,我们可以先在宿主机上创建一个K V M存储池,然后利用创建的存储池提供L V M逻辑卷,实现L V M的备份和快照,同时通过设置O S的安全级别和加装相关的安全访问控制程序,以提高整个K V M存储的安全性.
在K V M环境安全方面通过前文分析,其主要存在虚拟化管理程序安全、虚拟机安全和远程管理安全三个方面的安全问题,其中针对虚拟化管理程序的安全,我们可以通过使用常用的安全控制工具来保护K V M的相关的宿主机的安全,与解决基于文件系统的K V M的安全存储问题一样通过i p tables和S E l inu x等来增强其安全性;在虚拟机安全问题上,我们可以通过构建虚拟存储镜像,保护一些敏感数据的安全性,避免一些管理程序破坏;在远程管理上我们可以通过virsh和vir t-manager等工具来实现远程管理的互动,同时借助于SS H安全通信通道和相关的鉴权机制以及设置安全层的方式来提升其安全性.
总之在构建K V M虚拟化平台的时候,需要充分考虑到各种K V M技术的优势和劣势以及面临的主要问题,同时综合运用多种K V M技术的优点进行整合提高整个K V M虚拟化平台的安全性.
4 结语
K V M作为一种重要的虚拟化技术,是未来云计算技术进一步发展的基础,基于K V M虚拟化技术构建高效安全的虚拟化平台是未来构建大型的云计算和网络系统的关键,本文从K V M虚拟化平台的构建出发,首先对目前K V M虚拟化技术研究现状进行分析,详细分析了目前K V M虚拟化平台构建存在的一些安全问题,从K V M存储安全和K V M虚拟环境安全两个方面探讨了目前K V M虚拟化平台构建过程中面临的主要安全问题,并针对这些安全问题提出了相应的解决措施和方法,对于提高K V M虚拟化平台安全性、促进K V M虚拟化技术发展具有非常重要意义.
[1]郑楠,陈立南,郑礼雄,等.基于C loud S tack和O p en S tack的K V M虚拟机跨平台迁移方法[J].通信学报, 2014(z1).
[2]Guo C,L i T,Gong Z,et al.A vir tual vulnerabi lity val idation p lat formbasedon K V M[C]//E lect ronics I nformation and E mergency C ommunication(ICEIEC), 2015 5th I nternational C onference on.IEEE,2015: 228-231
[3]N agao N.I nformation p rocessing a pp aratus,K V M s w itch,server,and com p uter readable medium:U.S. P atent 8,706,922[P].2014-4-22.
[4]秦学东,陈大庆,崔晓松.基于开源虚拟化的高可用服务器架构[J].现代图书情报技术,2011,(06):46-50.
[5]陈阳,怀进鹏,胡春明.基于内存混合复制方式的虚拟机在线迁移机制[J].计算机学报,2011,(12):2278-2291.
[6]丁圣阁,马汝辉,梁阿磊,管海兵.半虚拟化I/O模型的K V M虚拟机域间通信优化方法[J].计算机科学与探索, 2011,(12):1114-1120.
[7]侯建宁,董贵山,王银,申娅.基于虚拟化的系统安全增强及显卡透传研究[J].计算机工程,2012,(08):224-227+231.
[8]叶可江,吴朝晖,姜晓红,何钦铭.虚拟化云计算平台的能耗管理[J].计算机学报,2012,(06):1262-1285.
[9]汪大洋,贾平,江凇.基于I P-K V M的网管集中管理软平台的搭建与应用[J].电力信息与通信技术,2014,12 (4):61-65.
[10]李博,沃天宇,胡春明,李建欣,王颖,怀进鹏.基于V MM的操作系统隐藏对象关联检测技术[J].软件学报, 2013,(02):405-420.
[11]李阳阳.基于开源K V M的服务器虚拟机迁移方案研究[J].计算机安全,2013,(08):28-31.
[12]刘佳铭,吴定刚,谢红胜.基于K V M的作战系统仿真研究[J].舰船电子工程,2013,(11):71-73+85.
[13]L i J,Z hao J,L i Y,et al.i M I G:To w ard an A da p tive L ive M igration M ethod for K V M V irtual M achines[J]. The C om p uter J ournal,2014:b x u065.
[14]W A N G Z,S U N C,YU L.The A pp l iment of K V M V ir tual Technology on The S henWei P lat form[J].I nformation Technology and I nformati z ation,2014,(6):103.
[15]A l f ia Y,Wechsler M,B ergman S.F ast vir tual media kvm system:U.S.P atent A pp l ication 14/164,860 [P].2014-1-27.
[16]X UT,L I U S,H A N L.K V M-B ased Trusted V ir tuali z ation A rchitecture M odel[J].J ournal of J i lin University (S cience E dition),2014,(3):025.
责任编辑:张隆辉
TP391
A
1672-2094(2016)03-0155-05
2016-04-20
韩文智(1966-),男,云南施甸人,四川职业技术学院副教授,硕士.研究方向:计算机软件及网络.