毕业论文基于KVM的虚拟化平台构建.docx
《毕业论文基于KVM的虚拟化平台构建.docx》由会员分享,可在线阅读,更多相关《毕业论文基于KVM的虚拟化平台构建.docx(43页珍藏版)》请在冰豆网上搜索。
毕业论文基于KVM的虚拟化平台构建
南京大学继续教育学院
本科毕业论文
论文题目
基于KVM的虚拟化平台构建
作者姓名
学科专业
计算机科学与技术
学号
指导教师
2014年09月18日
南京大学
本科毕业设计(论文)诚信承诺书
本人郑重声明:
所呈交的毕业设计(论文)(题目:
基于KTM的虚拟化平台构建)是本人在导师的指导下独立进行研究所取得的成果。
尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。
作者签名:
年月日
(学号):
基于KVM的虚拟化平台构建
摘要
在计算机科学中,虚拟化(Virtualization)是一个表现逻辑群组或电脑资源的子集的进程,用户可以用比原本的组态更好的方式来存取这些进程.这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制.一般所指的虚拟化资源包括计算能力和资料储存。
虚拟机(Virtualmachine或VM),可以像真实机器一样运行程序的计算机的软件实现。
本论文使用Linux系统中的Fedora下的KVM虚拟机来搭建多台虚拟机,并运行不同的操作系统,实现KVM虚拟化平台的搭建。
关键词:
数据安全,虚拟化平台,虚拟化
ABSTRACT
Incomputing,virtualization(orvirtualisation)isthecreationofavirtual(ratherthanactual)versionofsomething,suchasahardwareplatform,operatingsystem,storagedevice,ornetworkresources.Whileaphysicalcomputerintheclassicalsenseisclearlyacompleteandactualmachine,bothsubjectively(fromtheuser’spointofview)andobjectively(fromthehardwaresystemadministrator’spointofview),avirtualmachineissubjectivelyacompletemachine(orveryclose),butobjectivelymerelyasetoffilesandrunningprogramsonanactual,physicalmachine(whichtheuserneednotnecessarilybeawareof).
Inthispaper,weusetheKVMVirtualisationofLinuxOS——-FedoratocreateVirtualMachinesandrundifferentOperatingSystems.ThenbuildtheKVMVirtualisationPlatform。
Keywords:
Virtualisation;Fedora;KVMVirtualMachine;VirtualisationPlatform
第一章绪论
什么是虚拟化?
“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。
换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图.”——JonathanEunice,IlluminataInc
“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。
这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。
”——Wikipedia
“虚拟化:
对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。
”-—OpenGridServicesArchitectureGlossaryofTerms
1965年,IBM7044机器,虚拟机开端;
1967年,Djiskstra实现第一个虚拟系统;
2001年,AIX5Lv5.1发布,IBM首次在小型机上实现了逻辑分区。
2002年,AIX5Lv5。
2发布,IBM在小型机上实现了动态逻辑分区。
2004年,8月,AIX5Lv5.3实现了微分区技术,最小分区粒度为1/10个CPU,且最多支持254个虚拟I/O.
同年10月,Solaris10实现了SolarisContainer功能,支持应用层面的计算资源调配。
2005年,1月,HP-UX11iv2发布,实现了从硬分区、软分区到应用层分区,最小分区粒度为1/20颗CPU.
2005年10月,IBM发布虚拟I/O服务器,该服务器的一个组件IVM具备HMC的部分功能。
即在不配置HMC的低端p系列和i系列服务器上,也可配置多个分区和操作系统.
1。
1虚拟化技术概述
虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。
如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率.这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。
虚拟化技术可以扩大硬件的容量,简化软件的重新配置。
CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.
虚拟化技术与多任务以及超线程技术是完全不同的.多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作.
虚拟化技术的原理:
所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:
它们被设计用来完成一组特定的指令。
这些指令组成一个指令集。
对于虚拟技术而言,“虚拟”实际上就是指的虚拟这些指令集。
虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。
每个虚拟机都有一个用户可以访问的指令集。
虚拟机把这些虚拟指令“映射”到计算机的实际指令集。
硬分区、软分区、逻辑分区、SolarisContainer、VMware、Xen、微软VirtualServer2005这些虚拟技术都是运用的这个原理,只是虚拟指令集所处的层次位置不同。
虚拟化技术的类型:
虚拟化技术之所以会被广泛的采用,都有其应用背景,当前虚拟化技术大致看来主要有以下几种类型:
拆分、整合、迁移。
1、拆分:
某台计算机性能较高,而工作负荷小,资源没有得到充分利用.这种情况适用于拆分虚拟技术,可以将这台计算机拆分为逻辑上的多台计算机,同时供多个用户使用。
这样可以使此服务器的硬件资源得到充分的利用。
适用面:
性能较好的大型机、小型机或服务器。
目的:
提高计算机的资源利用率。
拆分形式的虚拟化示意图如下
2、整合:
当前有大量性能一般的计算机,但在气象预报、地质分析等领域,数据计算往往需要性能极高的计算机,此时可应用虚拟整合技术,将大量性能一般的计算机整合为一台计算机,以满足客户对整体性能的要求.
适用面:
性能一般的计算机
目的:
通过整合,获得高性能,满足特定数据计算要求。
整合形式的虚拟化示意图如下:
图1—1拆分形式的虚拟化
图1—2整合形式的虚拟化
3、迁移:
1、将一台逻辑服务器中的闲置的一部分资源动态的加入到另一台逻辑服务器中,提高另一方的性能.
2、通过网络将本地资源供远程计算机使用.Windows下的共享目录,Linux下的NFS等,还包括远程桌面等等。
目的:
实现资源共享,实现跨系统平台应用等.
迁移形式的虚拟化示意图如下:
图1-3迁移形式的虚拟化
虚拟化的实现形式:
1、硬件虚拟化:
不需要操作系统支持,可直接实现对硬件资源进行划分,任一分区内的操作系统和硬件故障不影响其他分区。
代表:
HPnPAR
2、逻辑虚拟化
不需要操作系统支持。
在系统硬件和操作系统之间以软件和固件的形式存在,任一分区的操作系统故障不影响其他分区.
代表:
IBMDLPARS、HPvPAR、VMwareESXServer、Xen。
相对硬件虚拟模式而言,逻辑虚拟模式会占用一定比例的系统资源。
目前大型主机的虚拟效率一般在95%以上,虚拟化损耗大约为2%~3%;AIX和HP-UX上的虚拟效率在90%以上,虚拟化损耗约为5%;而x86架构上的虚拟效率则在80%左右,虚拟化损耗大约为20%。
3、软件虚拟化
需要主操作系统支持。
在主操作系统上运行一个虚拟层软件,可以安装多种客户操作系统,任何一个客户系统的故障不影响其他用户的操作系统
代表:
VMwareGSXServer和微软VirtualServer2005
4、应用虚拟化
需要主操作系统支持。
在单一操作系统上使用,在操作系统和应用之间运行虚拟层,任何一个应用包的故障不影响其他软件包。
代表:
SolarisContainer和SWsoftVirtuozzo
虚拟化的实现形式对比:
表1-1虚拟化实现形式功能对比
功能特性
硬件虚拟
逻辑虚拟
软件虚拟
应用虚拟
文件系统
独立
独立
独立
不独立
网络地址
独立
独立
独立
不独立
OS数量
多个
多个
多个
单个
主OS
不需要
不需要
需要
需要
实施周期
慢
较慢
中等
快
应用隔离程度
完全
强
强
弱
硬件故障隔离
无
无
无
无
实施成本
高
较高
较低
低
1.2虚拟化技术的应用现状和发展趋势
实际应用上,除了金融业、制造业、政府部门和科研领域的用户,许多用户对服务器整合、虚拟技术并不十分清晰。
在当前国内服务器市场,虚拟化的技术趋势与实际应用还存在较大差距。
以下是对虚拟化技术应用较好的行业的简要分析.
1、银行类用户
在虚拟化技术应用上最为积极.银行是国内最早使用大型主机和小型机的行业,在应用上得到的技术支持最多,对于虚拟技术较为熟悉,期待程度和应用评价也最高。
特点在于对成本敏感度低,对虚拟技术的安全性和使用效率关注度高.
2、政府部门类用户
对虚拟技术的应用虽然不如银行用户那样熟悉,但通过技术人员的努力,仍能以最低的TCO(TotalCostofOwnership,总体拥有成本)获得最多的计算性能。
他们的特点是对预算较敏感,对系统效率提高感兴趣.
3、科研单位
随着数据计算量的加大,需要使用虚拟技术来提高系统使用效率.这类用户对预算敏感度高,对虚拟技术本身倒并不是特别了解。
4、计算中心
如国家气象中心,大多采用高性能计算机集群,对计算性能和系统稳定性要求很高,对系统管理控制方面要求较多,对预算敏感度低.
总体而言,与北美和欧洲相对广泛的虚拟技术应用状况相比,国内在虚拟技术应用水平上还存在较大差距.
服务器虚拟化的优势:
1、维护运行在早期操作系统上的业务应用
对于某些早期操作系统,发行厂商已经停止了系统的维护,不再支持新的硬件平台,而重写运行在这些系统上的业务应用又不现实.为此,可以将这些系统迁移到新硬件平台上运行的虚拟系统上,实现业务的延续.
2、提高服务器的利用率
《虚拟服务器环境》一书指出:
“多数用户承认,系统平均利用率只有25%~30%之间”。
这对服务器硬件资源是一种浪费。
将多种低消耗的业务利用整合到一台服务器上,可以充分发挥服务器的性能,从而提高整个系统的整体利用效率。
3、动态资源调配,提升业务应用整体的运行质量
可在一台计算机内部的虚拟机之间或是集群系统的各个业务之间进行动态的的资源调配,进而提升业务应用的整体运行质量。
在实际应用上,这一优势更偏重于集群系统。
4、提供相互隔离的,安全的应用执行环境
虚拟系统下的各个子系统相互独立,即使一个子系统遭受攻击而崩溃也不会对其他系统造成影响.而且在使用备份机制后,子系统可被快速的恢复。
5、提供软件调试环境,进行软件测试,保证软件质量
采用虚拟技术后,用户可以在一台计算机上模拟多个系统,多种不同操作系统,使调试环境搭建简单易行,大大提高工作效率,降低测试成本。
服务器虚拟化技术存在的问题:
1、虚拟技术的认知
用户对虚拟技术不了解,不明确虚拟技术在提升用户现有系统效率和降低总体运营成本上的优势,这是阻碍虚拟技术推广的最大障碍。
2、虚拟系统的可靠性
客户采用服务器,很大程度上是为了保障业务的稳定性。
如果用户在一台服务器上运行多个业务,类似于多个鸡蛋放在一只篮子,一旦出现重大硬件故障势必会影响到所有的应用,这种威胁很难消除。
而对于用户,这种潜在的业务危险往往也是不可接受的。
3、虚拟系统的运行效率
使用虚拟技术的目的在于提高用户服务器的整体利用效率,如果虚拟系统的运行效率太低,也就失去了它在服务器上应用的价值。
4、平台支持
硬件支持方面,需要虚拟系统能够不断更新,以兼容新的硬件平台。
操作系统支持,需要能够支持老操作系统.这样对于某些使用早期操作系统的客户才有意义.
对于这两方面,虚拟化平台都需要不断更新,这些都依赖虚拟化提供商的维护。
5、迁移能力
高端应用需要做到零宕机,迁移成本较高,且需要SAN集中存储设备的支持;
低端应用,虽然可以使用系统备份还原的迁移模式,以降低系统迁移成本,但迁移效率低。
6、部署效率和易用性
当前虚拟化标准尚不统一,移植和管理工具还不够成熟,这也影响到虚拟化的大面积普及。
特别是远程管理功能需要配合虚拟化标准工作大力发展,以使得不同的虚拟化平台可以通过网络进行统一管理。
虚拟化技术的发展趋势:
一、发展空间广阔
2011年虚拟化发展的最大特点是,虚拟化市场仍将快速增长。
虚拟化发展道路远未到穷途末路的地步——因为还有很多企业并没有享受到虚拟化带来的高效快捷低成本高环保的种种益处。
据英特尔集团作出的市场预测,在未来2011-2016年间,虚拟化行业全球市场累计达到2900亿美元市值,而云计算市场规模将为3000亿美元。
对于经济低迷的当前形势来说,这一预测无疑是个重大利好消息,它将有力推动虚拟化技术的更普遍应用,也有助于企业节省成本.
二、SMB普及迅速
一开始只在大企业开花结果的虚拟化应用,现在也将更多得出现在中小企业应用场景中。
专为SMB中小企业打造的虚拟化解决方案将有着巨大的市场前景,SMB也将成为虚拟化应用程度最活跃的重要角色。
近年来有越来越多的虚拟化服务提供商着眼于SMB,希望通过提供相应的虚拟化解决方案来吸引众多中小企业的兴趣。
例如,著名的微软Hyper—V一般被视为中小企业的一种虚拟化解决方案.根据国外的研究报告称,2011年将有35%的中小企业部署Hyper—V.
三、自动化呈上升趋势
随着虚拟机的不断增多,迫切需要实现对虚拟化高效和简化管理。
手动维护和管理成百上千台主机将是一件费时又费力的工作,在这种情况下,自然也就催生了企业对可靠自动化解决方案的需要。
未来一年虚拟化平台实现自动化可能不能实现质的飞跃,不过至少将会比今年有一个量的提升。
四、完善备份、恢复和实时迁移工具
管理虚拟化环境不仅仅限于自动化。
备份,恢复和实时迁移是管理员需要经常执行的任务,由于没有专为虚拟化环境开发出的一些特定工具,执行这些任务会成为一件并不容易的事情.虚拟化厂商自然也懂得这一点,让我们相信他们正在为简化虚拟化环境管理而推出一些优秀的工具。
五、桌面虚拟化将稳步发展
一开始桌面虚拟化并未引起人们的注意,不过这种情况将在2011年发生改变.虚拟化的桌面能为用户节省大量开支,你可以通过较少的硬件来运行同样数目的物理主机。
有越来越多的企业通过升级系统到Windows7来实现桌面虚拟化,从而降低成本.通过桌面虚拟化,用户无需单独添置最新硬件来运行Windows7系统。
另一方面,即使有一些新的强大硬件配置,仍然有一些旧的WindowsXP应用程序在使用。
正因为如此,在XP上运行桌面虚拟化并不切实际。
而让用户同时拥有两台物理主机——一台运行XP另一台运行Windows7,则不是个好方法,尤其是当你在一台主机上通过一个系统既担当主机又扮演虚拟化环境角色的情况下。
桌面虚拟化不仅能够带来管理的便捷,更能带来成本的大幅节约。
六、更多Macs成为虚拟机
桌面虚拟化不仅仅应用在Windows操作系统家族中。
有报告指出,2011年企业将有更多的主机运行Macs。
Macs对终端用户和设计人员都十分受用,不过作为企业级操作平台却并不是最好选择。
尽管如此,正是因为越来越多的人使用iPad和MacBookAir,将推动Mac操作系统在企业中的应用,从而有更多的Macs运行在虚拟主机上。
七、存储虚拟化进一步发展
一谈到虚拟化,我们通常指的是服务器虚拟化,不过存储虚拟化在整个虚拟化大潮中同样扮演着重要的角色。
在2011年,虽然不能与服务器虚拟化相提并论,但存储虚拟化仍将进一步发展。
存储虚拟化获得进一步发展,主要在于磁盘空间剧增而又没有强大处理能力和价格实惠的NAS产品支撑.
对于企业而言,存储虚拟化的好处显而易见:
首先,存储虚拟化能够为企业提供一个易于学习与使用的、简单的存储界面和管理模型,借此实现对不同品牌存储产品的管理;其次,存储虚拟化解决方案具备动态数据移植工具,这些工具能够保证数据在不离线的情况下,动态而透明地从一台设备移动到另一台设备,这样,IT管理人员就可以在不中断应用的同时重新分配和扩展存储容量
第二章KVM虚拟化概述
KVM是KernelVirtualModule的简写。
KVM是红帽5。
4发行版中推出的最新虚拟化技术。
KVM是进入Linux内核的虚拟化项目,它刚刚起步,还不为众人所熟知。
但随着RedHat下一步推广KVM力度的加大,相信不久的将来KVM会逐渐占据市场的主要位置。
现在所说的虚拟化,一般都是指在CPU硬件支持基础之上的虚拟化技术。
KVM也同hyper-V、Xen一样依赖此项技术。
没有CPU硬件虚拟化的支持,KVM是无法工作的。
准确来说,KVM是Linux的一个模块。
可以用modprobe去加载KVM模块。
加载了模块后,才能进一步通过其他工具创建虚拟机。
但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去作事情:
还必须有一个用户空间的工具才行。
这个用户空间的工具,开发者选择了已经成型的开源虚拟化软件QEMU。
说起来QEMU也是一个虚拟化软件。
它的特点是可虚拟不同的CPU。
比如说在x86的CPU上可虚拟一个Power的CPU,并可利用它编译出可运行在Power上的程序。
KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了.所以你会看到,官方提供的KVM下载有两大部分三个文件,分别是KVM模块、QEMU工具以及二者的合集。
也就是说,你可以只升级KVM模块,也可以只升级QEMU工具.这就是KVM和QEMU的关系。
至此,你已经可以使用QEMU工具创建虚拟机了.但我们会发现RedHat的虚拟化并非如此简单。
与之相关的还有libvirt、VMM等.原因就是因为QEMU工具效率不高,不易于使用。
libvirt是一套C语言的API,现在也有其他语言的了。
它负责将不同类型的虚拟化工具的差异完全屏蔽掉.例如Xen的管理命令是xm,而KVM则是qemu-kvm。
使用libvirt,你只需要通过libvirt提供的函数连接到Xen或者KVM宿主机,便可以用同样的命令指挥不同的虚拟机了。
libvirt不仅提供了API,还自带了一套管理虚拟机的命令——virsh。
你可以通过使用virsh命令来进一步了解libvirt。
但最终用户更渴望的是图形用户界面,这就是VMM的事情了。
VMM是一套用python写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。
VMM就是利用了libvirt的API参数实现的.
2.1Linux系统概述
2。
1。
1Linux系统简介
Linux是一种自由和开放源码的类Unix操作系统.目前存在着许多不同的Linux,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
Linux得名于计算机业余爱好者LinuxTorvalds.
Linux操作系统的诞生:
1981年IBM公司推出微型计算机IBMPC。
在1981-1991年间MS—DOS操作系统一直是微机上操作系统的主宰。
此时计算机硬件价格虽逐年下降,但软件价格仍居高不下。
当时Apple的MACos操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。
到1991年,GNU计划已经开发出了许多工具软件。
最受期盼的GnuC编译器已经出现,但还没有开发出免费的GNU操作系统。
即使是MINIX也开始有了版权,需要购买才能得到源代码。
而GNU的操作系统HURD一直在开发之中,但并不能在几年内完成。
对于Linux来说,已经不能等待了.从1991年4月份起,他开始酝酿并着手编制自己的操作系统.刚开始,他的目的很简单,只是为了学习Intel386体系结构保护模式运行方式下的编程技术。
但后来Linux的发展却完全改变了初衷。
1991年初,Linux开始在一台386sx兼容微机上学习minix操作系统.通过学习,他逐渐不能满足于minix系统的现有性能,并开始酝酿开发一个新的免费操作系统。
根据Linux在comp.os.minix新闻组上发布的消息,我们可以知道他逐步从学习minix系统到开发自己的Linux的过程。
从1991年的4月份开始,Linux几乎花了全部时间研究386—minix系统(hackthekernel),并且尝试着移植GNU的软件到该系统上(GNUgcc、bash、gdb等)。
并于4月13日在comp.os.minix上发布说自己已经成功地将bash移植到了minix上,而且已经爱不释手、不能离开这个shell软件了。
第一个与Linux有关的消息是在1991年7月3日在comp。
os。
minix上发布的(当然此时还不存在Linux这个名称,当时Linux的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等).其中透露了他正在进行Linux系统的开发,并且在Linux最初的时候已经想到要实现与POSIX(UNIX的国际标准)的兼容问题了。
在Linux的下一发布的消息中(1991年8月25日comp。
os。
minix),他向所有minix用户询问"Whatwouldyouliketoseeinminix?
"(”你最想在minix中见到什么?
”),