APP下载

基于KVM的云桌面虚拟化实验设计

2016-08-29荷,

实验技术与管理 2016年5期
关键词:内核桌面命令

温 荷, 万 里

(1. 南京工业大学, 江苏 南京 211816; 2. 成都东软学院, 四川 成都 611844)



基于KVM的云桌面虚拟化实验设计

温荷1,2, 万里2

(1. 南京工业大学, 江苏 南京211816; 2. 成都东软学院, 四川 成都611844)

基于KVM的云桌面虚拟化技术包括KVM的架构分析、qemu-kvm和libvirt工具的功能模型。给出了基于KVM技术的云桌面虚拟化实验的环境、实现过程和具体方案,从云服务器部署、虚拟化软件使用、云桌面融合等方面提出了后续研究的实验内容及考核点,构成云桌面虚拟化实验的完整体系。

虚拟化实验; 云桌面; 实验教学;KVM

随着互联网+和大数据时代的到来,云计算[1-2]的概念应运而生。虚拟化作为云计算的关键技术,将物理计算设备分离成一个或多个虚拟设备[3-4],为应用提供了灵活多变、可扩展的服务平台。本文通过介绍KVM(kernel-basedvirtualmachine,基于内核的虚拟机)虚拟化技术实验,不仅为云计算虚拟化实验教学提供了明确的实验思路及步骤,也有利于解决高校实验教学机房软件系统庞大、机器使用频繁、设备故障及病毒入侵率高等问题,还为实现多台物理上独立部署研发平台提供了解决方案。

1 云桌面虚拟化

云桌面是云计算时代的典型应用,它主要通过虚拟化应用,将云端资源(如数据空间、管理服务等)通过桌面化的方式发布给各操作终端,真正实现了终端设备与桌面环境解耦合,用户的计算任务和数据存储全部在服务器端进行,终端只负责数据传输与桌面显示。

相对于传统桌面,云桌面有以下优势:

(1) 访问灵活——用户几乎可以在任何时间、任何地点,通过电脑、Pad、智能手机等多种终端使用属于自己的桌面环境;

(2) 资源集中——所有数据都存储在云平台,避免因资源分散、硬盘损坏等造成的数据丢失;

(3) 数据安全——云端服务器通过流转集中控制、权限集中管理、安全集中保障等方式保证用户数据的安全性与私密性;

(4) 维护方便——所有的应用程序和数据都在云平台,可以由维护人员统一安装、管理与维护,每个桌面只是一个包含了操作系统和应用程序的镜像文件;

(5) 成本低廉——云终端的配置要求不高,不但节省了PC终端的建设成本,而且硬件的使用寿命更长(可达8年以上)、功耗更低(仅为普通电脑的1/20)。

2 KVM虚拟化技术

目前虚拟化技术的解决方案主要有Vmware公司的VSphere、VmwareWorkstation[5],Microsoft公司的Hyper-V、VirtualPC以及Linux系统下的Xen和KVM。

2.1KVM架构

KVM是一个开源的系统虚拟化模块,是基于x86架构且硬件支持虚拟化技术的Linux全虚拟化解决方案[6],已成为学术界的主流VMM(virtualmachinemonitor)之一。KVM由两部分组成:一部分是KVMDriver[7],已经成为Linux内核的一个模块,负责虚拟机的创建、虚拟机内存的分配、虚拟CPU寄存器的读写以及CPU的运行等;另一部分是稍微修改过的QEMU[8],用于模拟PC硬件的用户空间组件,模拟I/O设备模型以及提供访问外设的途径。

KVM虚拟环境如图1所示。KVM是内核模块,被看作是一个标准的Linux字符集设备(/dev/kvm)。用户模式的Qemu利用LibKvm应用程序接口与KVM模块进行通信,并通过ioctl系统调用进入内核模式。运行在内核模式中的KVMDriver会为虚拟机创建虚拟内存和虚拟CPU,然后进入客户机模式,同时装载GuestOS执行具体客户机操作。

图1 KVM虚拟环境

Xen因起步早,被众多高校选为云计算相关课程的实验。但由于Xen逐渐走向商业化模式,Redhat从RHEL6.0开始已经从内核中将Xen移除,全心投入开发免费的KVM。KVM结构精简,在可用资源、可管理性、可扩展性等方面均优于Xen[9-10],将会超越Xen而拥有更大的开源虚拟化市场。因此,本实验选用KVM技术构建云桌面虚拟化实验。

2.2qemu-kvm和libvirt

KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机需要一个用户空间的工具。KVM使用了QEMU的基于x86的部分,并稍加改造,形成了可控制KVM内核模块的用户空间工具qemu-kvm[11]。

尽管qemu-kvm工具可以创建和管理KVM虚拟机,但由于qemu工具效率不高,不易于使用,Redhat为KVM开发了更多的辅助工具。本实验选用的是libvirt。

libvirt[12]是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用程序接口(API)。它是一个免费的开源软件,不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。通过libvirt管理KVM虚拟机的流程如图2所示。

图2 libvirt管理KVM虚拟机示意图

libvirt的管理功能主要包括域的管理、远程节点的管理、存储管理以及网络管理,它对qemu-kvm的支持是非常成熟和稳定的。可以通过使用virsh命令来使用libvirt的全部功能,但如果用户不擅于用命令行操作,可以安装virt-manager,它是一套用python编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。

3 实验内容

本实验通过KVM技术完成云桌面的虚拟化实验,实验的主要目的是使学生对虚拟化的概念、KVM的技术架构有较深的理解,同时熟悉虚拟化平台的搭建流程,为云计算方向的课程研究、项目实践奠定基础。

实验环境为1台虚拟桌面服务器和1台终端显示PC机。服务器配置2颗Intel志强5620四核CPU2.4GHz;内存64GB,1333MHz,操作系统选用Ubuntu14.04。要求服务器上运行qemu-kvm软件以支持服务器虚拟化功能,并安装libvirt软件响应远程桌面的管理需求。

3.1安装操作系统及环境准备

Linux系统安装完成后,首先需要通过命令#modprobekvm启用KVM模块,然后通过kvm:~ #uname-a命令找到已安装的Linux内核,完成kvm和kvm-kmp-default包的安装。KVM安装通常包含2个组件:一个用于管理虚拟化硬件的设备驱动程序;一个用于模拟PC硬件的用户空间组件以及I/O模型。

接着需要查看系统是否支持硬件虚拟化。对于IntelCPU,输入命令:

grep″vmx″ /proc/cpuinfo

对于AMDCPU,输入命令:

grep″svm″ /proc/cpuinfo

3.2KVM组件安装

安装qemu-kvm的命令为:

apt-getinstallqimu-kvm

安装libvirt的命令为:

apt-getinstalllibvirt-bin

安装virt-install的命令是一个基于libvirt的命令,其设计宗旨是帮助从命令行创建虚拟机,命令为:

apt-getinstallvirtinst

3.3创建虚拟服务器

(1) 创建原始磁盘映像。通过qemu-img创建一个8GB的映像文件:

qemu-imgcreate-fqow2Ubuntu1204.img8G

(2) 在该映像上安装操作系统。要将操作系统安装在该映像上,使用以下命令:

qemu-system-x86_64 -enable-kvm-nameubuntutest-m2048 -hdaubuntutest.img-cdromubuntu-14.04-server-amd64.iso-bootd-vnc:19

(3) 启动虚拟服务器。在成功安装操作系统之后,可以通过以下命令启动虚拟服务器:

/usr/bin/qemu-kvm-hda/mnt/kvmtest.img-m1024

3.4实现远程桌面虚拟化

首先需要安装VNC,输入命令:

yuminstalltigervnctigervnc-server

使用以下命令编辑配置文件:

vi/etc/sysconfig/vncservers

添加如下内容作登录桌面配置:

VNCSERVRES=″1:root″

VNCSERVERARGS[1]= ″-geometry800x600-nolistentcp-localhost″

为VNC设置密码并启动VNC服务即可。

最后,需要在终端显示PC的Linux系统上安装vncviewer。输入Linux虚拟机IP地址,进入LinuxVNC远程桌面。

4 后续研究

完成基于KVM技术的虚拟化服务器的搭建后,即可从客户端通过云桌面进行访问,从多个角度对云计算的各项技术进行深入研究与实践。云计算实验设计如表1所示。

表1 云计算实验设计

5 结语

近年来,随着云计算概念的兴起,云桌面这一新型办公设备形式也逐渐进入人们的视野。作为虚拟化技术的延伸,云桌面依赖于服务器端的计算,安全度高、管理方便。KVM技术是虚拟化技术演变过程中的最新发展,具有其他虚拟化解决方案所不及的独特优势。笔者结合云桌面、虚拟化技术,得到以下成果:

(1) 设计并实现了基于KVM的虚拟化平台的搭建,并通过客户端的云桌面成功访问;

(2) 提出了从多个角度对云桌面虚拟化实验进一步研究的思路。

References)

[1]HassanQF.DemystifyingCloudComputing[J].TheJournalofDefenseSoftwareEngineering,2011(1):16-21.

[2]ArmbrustM,FoxA,GriffithR,etal.AViewofCloudComputing[EB/OL].http://cacm.acm.org/magazines/2010/4/81493-a-view-of-cloud-computing/fulltext.

[3]KhanA,ZugenmaierA,JurcaD,etal.NetworkVirtualization:AHypervisorfortheInternet?[J].IEEECommunicationsMagazine.2012, 50(1):136-143.

[4]Wikipedia.Softwareasaservice[EB/OL].http://en.wikipedia.org/wiki/Cloud_computing.

[5]VMWare.VMotion[EB/OL].http://www.vmware.com/products/vsphere/features-vmotion.

[6]Wikipedia.Kernel-basedVirtualMachine[EB/OL].http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine.

[7]JinHai,LiaoXiaofei.VirtualizationTechnologyforComputingSystem[J].ChinaBasicScience,2008,10(6):12.

[8]BartholomewD.Qemu:amultihost,multitargetmulator[J].LinuxJournal,2006(145):68-71.

[9]CharlesDavidGraziano.AperformanceanalysisofXenandKVMhypervisorsforhostingtheXenWorldsProject[D].USA:IowaStateUniversity,2011.

[10]DeshaneT,ShepherdZ,MatthewsNJ,etal.QuantitativecomparisonofXenandKVM[C]//XenSummit.Boston,2008.

[11] 王森,朱常鹏,韩博.一种基于qemu的动态迁移模型[J].计算机科学,2015,42(增刊1):337-340.

[12]Libvirt.TheVirtualizationAPI[EB/OL].[2015-10-15].http://libvirt.org.

[13] 孟永伟,黄建强,曹腾飞,等.Hadoop集群部署实验的设计与实现[J].实验技术与管理,2015,32(1):145-149.

DesignofclouddesktopvirtualizationExperimentbasedonKVM

WenHe1,2,WanLi2

(1.NanjingTechUniversity,Nanjing211816,China;2.ChengduNeusoftUniversity,Chengdu611844,China)

Onthebasisoftheresearchofclouddesktopandvirtualization,KVMvirtualizationtechnologyisintroduced,includingKVM'sframeworkanalysis,qemu-kvmandlibvirttools.AdetailedplanoftheclouddesktopvirtualizationexperimentbasedonKVMtechnologyisgiven,includingthepurpose,environment,andprocessoftheexperiment.Finally,thisarticleputsforwardtheexperimentalcontentandassessmentpointsfromthecloudserverdeployment,theuseofvirtualizationsoftware,clouddesktopintegrationandotheraspects,whichformacompletesystemofclouddesktopvirtualizationexperiments.

virtualizationexperiment;clouddesktop;experimentalteaching;KVM

DOI:10.16791/j.cnki.sjg.2016.05.034

2015- 10- 20

国家自然科学基金青年基金项目(51208251);江苏省高校自然科学基金重大项目(15KJA560001)

温荷(1982—),女,四川成都,硕士,副教授,计算机科学与技术系副主任,主要研究领域为计算机软件技术.

TP391.9

A

1002-4956(2016)5- 0132- 03

猜你喜欢

内核桌面命令
只听主人的命令
强化『高新』内核 打造农业『硅谷』
基于APP在线控制双挤出头FDM桌面3D打印机的研制
桌面云技术在铁路行业中的应用
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
移防命令下达后
桌面装忙
微生物内核 生态型农资
这是人民的命令