叶虹余 陈升义
摘要 随着互联网及云计算技术的不断发展,IT基础架构越来越复杂,如何降低IT资源投入和优化资源配置成了一大难题。虚拟化技术可以实现IT资源的动态分配、灵活调度、跨域共享,大大提高了IT资源利用率,简化了IT基础架构。KVM虚拟化技术是基于内核的虚拟机,是Linux系统的一个内核模块,具有高性能高扩展性使用方便等优点。通过在石油勘探研究应用环境部署实施KVM虚拟化技术,构建了高效实用的虚拟化应用平台,取得了很好的效果。
【关键词】虚拟化 KVM 虚拟机 石油勘探
1 引言
虚拟化技术最早在商业上利用是IBM公司在上世纪七十年代实现的,通过在一台主机上安装多个操作系统,使得用户能够充分利用昂贵的大型计算机资源。随后虚拟化技术一直只在大型机上使用,直到最近十多年来,才涌现出了一批专业的虚拟化技术公司,并推出了各自的虚拟化技术和产品,虚拟化技术才被更多的人熟知和利用,特别是在X86平台得到了广泛应用和发展。
2 KVM虚拟化技术
KVM全称是基于内核的虚拟机(Kemel-based Virtual Machine),其前身是QEMU,2008年被Red Hat公司收购并获得一项hypervisor技术,目前已被嵌入到RHEL5.4及以后的操作系统中。准确来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具来实现。
2.1 KVM系统架构
KVM是基于linux内核的虚拟化基础架构,通过KVM模块将linux系统内核转化为VMM(virtual machine monitor), 并在linux操作系统的用户模式和内核模式外,添加了第三种运行模式即客户模式(guest mode),VMM即运行在该运行模式下,其被视为一个常规的linux进程,接收linux本身调度程序的统一调度,从而KVM拥有linux内核所拥有的所有功能。因此,KVM模块负责虚拟机的创建、虚拟内存的分配,vCPU寄存器的读写和运行等,这只是虚拟化解决方案的第一步。第二步是利用QEMU模拟虚拟机的用户空间组件,提供I/O设备模型以及访问外设的途径。至此,一台完整可用的虚拟机才诞生,KVM整个虚拟化技术的架构如图1所示。
2.2 虚拟化管理工具libvirt
KVM作为linux内核的一个模块,能够实现C,PU和内存的虚拟化,而QEMU则实现了用户空间组件和I0设备的虚拟化,因此qemu-kvm也能创建和管理虚拟机,但由于QEMU工具系统复杂,使用效率低下,因此,Red Hat使用libvirt来创建和管理虚拟机。
libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用程序接口(API)。它是一套开源的支持linux下虚拟化工具的函数库,由三个部分组成:应用程序接口(API),用于为其他虚拟机管理工具提供程序库支持;一个守护进程libvirtd,用于管理所有域,在使用工具对虚拟机进行管理时,该守护进程需要打开;一个默认的命令行管理工具virsh,它是libvirt项目中默认的命令行管理工具,具有定义、启动、停止等管理功能。libvirt工作原理如图2所示。
2.3 KVM在虚拟化技术中的优势
KVM是一款免费开源软件,提供了完整的虚拟化解决方案,并提供了强大的命令行接口(virsh)以及图形化的管理工具(virt-manager),使用起来比较方便。此外,KVM对硬件的兼容性较好,能支持多种操作系统,具有良好的稳定性和适用性。
3 KVM虚拟化技术在石油勘探中的应用
石油勘探研究是一项高度依赖计算机的技术,不管是前期的地震资料处理,还是地震资料的解释,以及各种反演建模和油田开发方案设计等,都需要各种专业软件和高性能的计算机,因此,石油勘探是对IT资源和技术最依赖和最敏感的行业之一。
3.1 应用环境现状分析
笔者所在单位是石油勘探研究院所,拥有各式服务器近50台,用于石油勘探开发研究和信息系统的部署。如此众多的服务器,在日常运维管理中出现了一系列的问题:机器数量的增加导致硬件投入不断增加,同时设备维护成本也不断增长,包括设备电力消耗,机房空调制冷,机柜空间消耗等;服务器使用效率低下,某些服务器只提供单一服务,机器的CPU和内存使用率较低,造成硬件资源的极大浪费;服务器运维管理不便,每台服务器都是一台物理实体机,都需要逐一安装操作系统部署相关服务,日常运维管理效率较低;服务器安全冗余性较差,大多数服务器都是单一机器提供服务,出现故障时无法快速的迁移和恢复。
针对上述问题,虚拟化技术使这些问题迎刃而解,利用基于KVM的服务器虚拟化技术,通过一台物理机虚拟出多台虚机,在虚机上部署相关服务,只需要较少的机器就能满足应用需求。
3.2 KVM虚拟化技术部署及应用
要部署虚拟化技术,首先要安装宿主机,在硬件选取上,利用2台HPDL580 G9和3台IBM3850 M2作为KVM虚拟机的宿主机,其CPU总核数分别为80个和64个,内存分别为256G和128G,4个千兆以太网口,外加扩展FC HBA卡。机器安装操作系统为RHEL7.0,并在BIOS中打开虚拟化技术:VirtualizationTechnology设为Enable。
由于KVM已经作为一个模块嵌入到了RHEL的操作系统中,因此装好操作系统后就可以新建虚拟机了。Virt-manager是一个基于图形界面的虚拟机管理工具,利用它可以很方便的创建、配置和管理虚拟机。结合我院的应用环境,利用5台宿主机共创建了虚拟机20余台,分别作为应用软件服务器、软件许可服务器和信息系统服务器,其系统架构图如图3所示。
3.3 虚拟化技术应用优势
通过部署虚拟化技术,减少了物理服务器数量,有效整合了硬件资源,在使用中具有以下优势:降低了硬件成本和能源消耗,节省了机房空间以及电力、网络等IT资源;设备利用率大大提高,宿主机的优越性能得以充分利用,同时虚拟机的资源可以灵活动态调整,真正做到了按需分配系统运维更加方便快捷,利用管理工具,大大简化了服务器的部署、管理和维护工作;系统安全性更高,虚拟化技术支持虚拟机的快速复制、备份和迁移,当系统出现故障时能快速恢复和还原,大大提高了系统的可用性和冗余度。
4 結束语
KVM虚拟化技术作为一项性能和稳定性都比较高的虚拟化解决方案,其应用越来越广泛,特别是在复杂的IT应用环境中,利用KVM虚拟化技术,能简化系统架构,降低硬件和管理成本,提高系统安全性。随着互联网和云计算技术的不断发展,虚拟化技术也将是IT技术发展的必然选择,KVM虚拟化将在服务器虚拟化、桌面虚拟化和应用虚拟化等领域得到更多的应用。
参考文献
[1]吕斯特,虚拟化技术指南[M].北京:机械工业出版社,2011.
[2]马秀芳,李红岩,计算机虚拟化技术浅析[J].电脑知识与技术,2010,6(33): 9408- 9409.
[3]徐天琦,刘淑芬,韩璐.基于KVM的可信虚拟化架构模型[J].吉林大学学报(理学版),2014,52 (03): 531-534.
[4]赵妮.服务器虚拟化技术探析[J].信息通信,2014 (04):114-114.
[5]彭天炜.KVM虚拟化技术在云平台中的应用[J].电脑知识与技术,2015 (14): 28-30.
[6]温荷,万里.基于KVM的云桌面虚拟化实验设计[J].实验技术与管理,2016,5 (33):132-134.
[7]罗红梅,利用虚拟化技术提升地震解释软件应用能力[J].信息系统工程,2015 (12):90-91.