"虚拟化技术"针对从事IT技术的相关工作人员应该都有听说或者应用过,而对于多数网友朋友们可能没有听说过,但是我相信多数人都听说过"云计算"、"云服务"、"虚拟机"这几个概念名词吧!而这几个概念主要应用的技术就是"神奇"的"虚拟化技术"!
"虚拟化技术"这些年随着信息化的深入发展,政府、运营商、医疗、金融、教育、能源、制造业、中大型企业等各大行业都在应用这项技术。很多IT运维管理人员也都在学习这项技术。很多国内外的网络、应用、安全厂商也在大量研发生产相关产品和解决方案。
虚拟化技术为什么这么火?它的技术价值是什么?技术原理是什么?在实际场景中是如何应用的?
今天我们就以本篇文章内容给大家介绍虚拟化技术的概念、分类、应用,希望对大家有所帮助。
一、 历史由来
虚拟化并不是什么新主题;实际上,它的存在已经超过 40 年了。虚拟化技术最早的一些用法包括 IBM® 7044、麻省理工学院(MIT)在 IBM 704 上开发的 CTSS(Compatible Time Sharing System)以及曼彻斯特大学的 Atlas 项目(世界上最早的超级计算机之一),这些都是请求页面调度和监管进程调用的先驱。
硬件虚拟化
早在 20 世纪 60 年代,IBM开发 System/360™ Model 67 大型机时就认识到了虚拟化的重要性。Model 67 通过 VMM(Virtual Machine Monitor)对所有的硬件接口都进行了虚拟化。在早期计算中,操作系统被称为 supervisor。能够在其他操作系统上运行的操作系统被称为 hypervisor(这个术语是在 20 世纪 70 年代出现的)。
VMM 可以直接在底层硬件上运行,允许运行多个虚拟机(VM)。每个 VM 都可以运行一个自己私有操作系统的实例 —— 在早些时候,这称为 CMS(或 Conversational Monitor System)。之后 VM 继续发展,现在您可以在 System z9™ 大型机上发现 VM。这提供了很好的向后兼容性,甚至是对 System/360 产品线的兼容性。
处理器虚拟化
虚拟化早期的另外一种用法(在本例中是对处理器的仿真)是 P-code(或伪码)机。P-code 是一种机器语言,运行于虚拟机而不是实际硬件。P-code 早在 20 世纪 70 年代就已在加州大学圣地亚哥分校(UCSD)Pascal 系统上颇有名气了,它将 Pascal 程序编译成 P-code,然后在一个 P-code 虚拟机上运行。这就使 P-code 程序具有了高度的可移植性,而且,只要有可用的 P-code 虚拟机,P-code 程序就可以运行。
20 世纪 60 年代对 BCPL(Basic Combined Programming Language)的设计中也采用了相同的概念,C 语言即由 BCPL 发展而来。在这种用法中,编译器会将 BCPL 代码编译成称为 O-code 的中间机器代码。接下来的第二个步骤是将 O-code 编译成目标机器的原始语言。现代编译器所使用的这种模型为将编译器移植到新目标体系结构上提供了很大的灵活性(通过一种中间语言将前端和后端分隔开来)。
指令集虚拟化
虚拟化新的发展称为指令集虚拟化,或者二进制转换。在这种模型中,虚拟指令集被转换成底层硬件的物理指令集,这个过程通常都是动态的。当代码执行时,就会对代码的某个段进行转换。如果出现分支情况,就会导入新代码集并进行转换。这使它与缓存操作非常类似,后者是将指令块从内存移动到本地快速缓存中执行。
这种模型最近在 Transmeta 设计的 Crusoe 中央处理单元(CPU)中得到了使用。二进制转换由 Code Morphing 的专利技术实现。类似的一个例子是完全虚拟化解决方案通过运行时代码扫描来查找和重定向特权指令(用来解决特定处理器指令集的一些问题)。
二、 基本简介
1、 什么是虚拟化
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资源存储。
虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时一起运行,虚拟化而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而更好的利用物理硬件。
2、 虚拟化的技术分类
1)、从实现虚拟化的层次来分,虚拟化技术可以划分为:硬件虚拟化,操作系统虚拟化,应用程序虚拟化等。
硬件虚拟化,又叫做准虚拟化,就是用软件来虚拟一台标准电脑的硬件配置,如CPU、内存、硬盘、声显卡、光驱等,成为一台虚拟的裸机。
操作系统虚拟化,就是以原操作系统为母体样本,利用虚拟化软件克隆出多个新系统。
应用程序虚拟化,主要任务是虚拟操作系统,保证应用程序的正常运行虚拟系统的某些关键部分,如注册表等,轻量、小巧;还可以实现很多非绿色软件的移动使用,通过局域网方便快捷地分发到企业终端上,不用安装,直接使用,在应用范围和体验上超越绿色软件,大大降低了企业的IT成本。
2)、以应用领域来划分,虚拟化技术可以划分为:虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化、CPU虚拟化、文件虚拟化等。
服务器虚拟化,应用了硬件虚拟化和操作系统虚拟化技术,在一台服务器运行安装多个操作系统,并且可以同时运行,就相当于多台服务器同时运行了,利用率大大提高。
存储虚拟化,是将一堆独立分布的硬盘虚拟的整合成一块硬盘,存储虚拟化的目的是方便管理和有效利用存储空间。
网络虚拟化,它将两个异地的局域网,虚拟成一个局域网,这样一些企业的OA、B/S软件,就可以像真实局域网一样进行电脑互访了。
桌面虚拟化,是在服务器上部署好桌面环境,传输到客户端电脑上,而客户端只采用瘦客户机的应用模式,即只安装操作系统,接受服务器传输来的虚拟桌面,用户看到的就像本地真实环境一样,所有的使用其实是对服务器上的桌面进行操作。
CPU虚拟化,是对硬件虚拟化方案的优化和加强。以前是用虚拟化软件把一个CPU虚拟成多个CPU,而CPU虚拟化直接从硬件层面实现,这样大大提高的性能。
文件虚拟化,是将分布在多台电脑的文件数据虚拟成一台电脑上的,这样以前找文件要去不同的机器上查找,而现在则像在一台电脑上操作一样。
3、 关键技术介绍
1)全虚拟化(Full Virtualization)
全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。
全虚拟化模型
全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源
2)半虚拟化(Para Virtualization)
半虚拟化是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
半虚拟化模型
半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能
三、 虚拟化应用的目的
虚拟化的起因很简单,就是因为硬件资源的浪费,主要针对的问题就是硬件资源效率的低落。在计算机CPU和内存的效能和数量以穆尔定律倍数成长的同时,CPU和内存在操作系统中的使用效率低落的情况反而加重。所谓的效率低落,就是无法完全发挥CPU的完整性能。虽然软件和操作系统的专家不断改良效率,但速度远远比不上CPU和内存发展的速度,因此让单个硬件平台运行多个操作系统的观念,成为解决这个问题的答案。当前大部分服务器的CPU使用率常在5%以下,内存更在30%以下,因此把多个操作系统放在一台机器中,多少可以让CPU的利用率高一些。
前面提到将多台OS放到一个服务器上可以加强硬件资源的使用率,因此服务器合并是最常见的虚拟化企业应用。既然可以合并服务器,那是否能合并桌上计算机呢?因此服务器合并和虚拟桌面架构(Virtual Desktop Infrastructure)是当前企业虚拟化的两大热点,而随着这两大热点所生成的,就是云计算了。
虚拟化应用的目的:
1、 服务器合并减少了IT成本支出
不管是在企业内部还是提供主机托管的数据中心,当前已经很少有单个主机使用单个OS了。大部分的服务器早已合并,使用的就是虚拟化技术。服务器合并最明显的优点就是可减少IT初期成本的支出以及电费冷却的运营支出。这还只是其中一部分。
2、 降低IT管理成本
当前虚拟机在这方面的应用上,就是将客户端的桌面操作系统全部移到服务器上的虚拟机。每一个桌面用户都连入自身的虚拟机。这么做的好处除了可以省下一大笔升级硬件的预算,更可以将所有的桌面操作系统集中管理,不管是升级、安装应用程序、用户权力管理,都可以大量简化IT的管理成本。
3、 提高硬件资源效率
随着网络环境的过度膨胀,加上服务器的空间、耗电、散热成本不断提高,CPU等资源利用率过低,使得虚拟机厂家开始将目标放在"单个物理服务器上运行多个操作系统环境"。这样可以让每一个系统服务(如数据库、网页服务器)在单个的操作系统上运行,而多个操作系统可以在同一台物理服务器上并行运行,不但保持了服务间隔,更让前面的问题迎刃而解。
4、 提高管理效率
虚拟化提供的功能可以将IT管理人员再度合并。一个人管理上前台服务器不再是梦想,不但可以让机器有高效性,公司的人事也可以有高效性,当然完善的管理功能必须创建在良好的架构之上。
5、高可用性
在服务器合并之后,大家发现虚拟机的功能不仅于此。由于虚拟机的硬件在抽象化之后,比物理机的应用更有弹性。再加上特殊的硬件和设计之后,企业最在乎的高可用性(High Availability)。冗余、负载均衡、副本等从前必须靠复杂技术或是昂贵设备的问题,使用虚拟化竟然可以一并解决。
此外,虚拟化更可以解决当前设备无法解决的问题,包括动态主机迁移、快捷删除数据、统一桌面管理,甚至是创建永远不会蓝屏的企业集成环境。
四、 虚拟化主流厂商产品介绍
现在主流的虚拟化主要分为以下几类:服务器虚拟化、桌面虚拟化、存储虚拟化、网络虚拟化和应用虚拟化,每一类虚拟化都有各自的特点和侧重点。
其中主要厂商:vmware(侧重于服务器虚拟化)、思杰Citrix(侧重于桌面虚拟化)、IBM(VMControl)、微软的Hyper-V。
1、VMware
VMware是全世界第三大软件公司,Fortune 100的企业中100%都使用VMware产品,而Fortune 500大企业有98%都使用VMware,可见其影响力。VSphere号称是一个云端操作系统。
VMware有一套完整的产品线,可以实现虚拟化及云计算平台。
vSphere 虚拟化平台,以原生架构的ESX/ESXi Server为基础,让多台ESX Server能并发负担多个虚拟机。
VMware vSphere
Vmware vSphere Hypervisor(ESXi)
Vcenter Server 基础架构和运营管理。
VMware vCenter Server
VMware vCenter Server Heartbeat
VMware vCenter Operations
VMware vCenter Orchestrator
VMware vCenter Capacity IQ
VMware vCenter Site Recovery Manager 灾难恢复
VMware vCenter Lab Manager
VMware vCenter Configuration Manager
VMware vCenter Converter
VMware vCenter Chargeback 用户资源、费用管理
VMware vCenter Application Discovery Manager 应用程序管理
vCloud 系列
VMware vCloud Director将数据中心内的虚拟基础架构资源整合成池,并以基于目录的服务形式将它们提供给用户。
VMware vCloud Express将按需、按服务付费的基础架构作为一项服务交付。它提供可靠的按需基础架构,并确保与内部 VMware 环境和 VMware Virtualized™ 服务兼容
VMware vCloud API
vShileld 集中管理虚拟化安全性。
VMware vShield App 保护虚拟数据中的应用程序免受网络威胁的侵扰
VMware vShield Edge 增强对虚拟数据中心外围的保护
VMware vShield Endpoint 病毒防护
桌面和终端用户计算
Vmware View
VMware ThinApp
VMware ACE
Vmware Workstation
VMware Player
Zimbra 邮件系统
其他
VMware Data Recovery 虚拟机备份与恢复
VMware VMmark
VMware Capacity Planner
2、 Citrix
在桌面虚拟架构的领域中,最有名的就是Citrix。思杰创建于1989年,是应用交付基础架构解决方案提供商。Citrix Delivery Center(交付中心)产品系列包括以下产品线:
Citrix XenServer——企业级服务器虚拟化解决方案;
XenServer是基于开源Xen系统管理程序创建的,它充分利用Intel VT平台和AMD虚拟化(AMD-V)平台进行虚拟化,提供更快速、更高效的虚拟化计算能力。
Citrix NetScaler——Web应用交付解决方案;
Citrix XenDesktop——虚拟桌面基础架构;
Citrix XenDesktop可提供一种端到端的桌面虚拟化。XenDesktop可动态按需产生虚拟桌面,用户每次登录时都能获得一个全新桌面,而确保性能不会下降。此外,XenDesktop采用的高速交付协议还可在任何网络条件下提供快速的响应速度。
Citrix XenApp——Windows应用的事实标准;
Citrix XenApp 基础版是为中小企业提供的简洁、高效的远程接入方案。它可帮助企业的远程用户随时随地,安全的远程接入企业windows 应用以及文件系统。采用Windows Essential Business Server(EBS),可以通过EBS控制台实现集中化管理,简化对远程用户的应用发布。
XenClient – 虚拟化客户端
Citrix Receiver--企业能够以高性能安全地通过任何用户设备交付虚拟桌面
3、微软Hyper-V
Windows Server 2008 R2 Hyper-V。作为云计算基础架构的一部分,Windows Server 2008 R2 以 Windows Server 2008为基础,加入Hyper-V角色。引导后的Windows Server 2008 R2 就不再是一个独立的操作系统,而是在Hyper-V R2上的一个客户端操作系统,但资源的分配还是可以由该操作系统来统一。
Microsoft System Center
System Center Virtual Machine Manager
System Center Operations Manager
System Center Configuration Manager
System Center Data Protection Manager
System Center Opalis
System Center Service Manager
SQL Server 2008 R2
是微软的数据管理与分析平台,帮助您随时随地管理任何数据。在云计算基础架构中,SQL Server 2008 R2用于存储及管理数据。
微软云计算架构
基于以上架构,微软能为企业提供两种云计算部署类型,即公共云和私有云。
公共云:由微软自己运营,为客户提供部署和应用服务。在公共云中,Windows Azure Platform是一个高度可扩展的服务平台,提供基于微软数据中心随用随付费的灵活的服务模式。
私有云:部署在客户的数据中心内部,基于客户个性化的性能和成本要求、面向服务的内部应用环境。这个云平台基于成熟的Windows Server和System Center等系列产品,并且能够与现有应用程序兼容。
五、 虚拟化的场景应用
以高校信息化应用场景为例
高校信息化建设从20世纪90年代,已经经历了单机环境、C/S架构、B/S架构、SOA等多个发展阶段。目前,高校信息化建设已经涉及到高校的教学、科研、管理、生活、服务等相关领域,所需要的计算机平台、存储环境和网络环境多种多样,随之也带来了IT基础设施的资源利用率低和管理成本高等问题。将虚拟化技术应用到高校信息化建设中,既能提高高校信息基础设施的效率,也能提升信息化基础平台的可靠性和可维护性,降低IT相关管理成本。
1、存储虚拟化应用
使用存储虚拟化技术,将高校信息化基础设施中的所有存储资源整合为一个大的存储系统,通过统一存储数据和管理存储空间对外以透明的方式提供存储服务,根据应用系统对存储速率和访问要求的不同,提供不同的存取方式。
通过对存储资源的统一整合,将FC SAN、IP SAN和NAS等产品从逻辑上整合起来,构建由集中存储引擎和存储池两部分构成的统一存储资源,同时支持NFS、CIFS、FC、iSCSI等协议,具备强大的动态扩展能力。当业务以及I/O带宽需求增加时,用户可以通过动态增加统一存储引擎节点及存储单元设备,以获得更高的聚合带宽和更大的存储容量。
如高性能计算机平台、高校网络计费系统、校园邮件系统等应用系统对存储资源的访问速率较高,需要较高的传输速率,可以采用FC SAN架构来存储。
对校园FTP、VOD等业务系统可以采用NAS架构存储,采用NFS、HTTP、CIFS等文件共享协议,简单易用,共享方便,也适合于多个业务系统访问共享资源的情况。
对一般的业务系统,可采用IP SAN架构访问统一整合之后的存储环境。IP SAN使用iSCSI协议,将SCSI块数据转换为网络封包进行传输,对已有的网络架构变动最小,不需要额外投资购买光纤交换机,主机可以仅安装iSCSI Initiator驱动程序即可,可以很方便地集成很多松散的小型应用的存储,尤其是适合那些以随机数据访问为主,且对访问性能要求不高的应用系统。
2、服务器虚拟化应用
使用服务器虚拟化技术,将高校中的PC服务器统一虚拟整合为一个服务资源池,根据各个业务系统的需求,为其分配适合的CPU、内存和存储资源。
目前,VMware、Citrix、IBM和Microsoft都能提供完整的服务器虚拟解决方案,通过安装部署,可以整合所有的PC服务器,然后根据业务系统的需求,安装相应的操作系统环境。这些虚拟解决方案都可使人们在一台物理机器上,安装多个不同版本、不同类型的操作系统,独立地对外提供服务。
3、Web虚拟主机
网站的运行平台和开发技术有很多的共性,而高校二级部门所建立的各类服务网站大部分形式简单,功能单一,不需要较高的服务资源。针对这种情况,可以提供相应平台的Web虚拟主机环境,将这些网站整合在一起,提高资源的利用率和安全性。这样如果一个部门需要开设新的Web网站,可以根据其使用的技术平台,分配相应的Web服务器空间和数据库服务器。通过以上服务器虚拟化技术,可以对校园网站整个系统的资源进行动态优化。
4、网络虚拟化应用
随着高校信息化的不断深入,校园网络上承载的应用越来越多,通过网络虚拟化技术可以实现不同应用的相互隔离,而同一类应用却可在全网范围内访问,实现将物理网络的逻辑纵向划分。
应用VLAN等技术,将网络划分为多个网段,提高了各类网络应用的安全性。如通过技术,用户可以在任意地方访问校内资源,校内图书馆,也可以为校内网络办公系统提供方便通道。同时可以使用隧道技术,实现使用IPv4网络访问IPv6网络相关资源的能力。
在某些对网络流量有特别需求的地方,可以通过端口聚合的模式,使物理上多个端口互连成逻辑上的一个端口,提高并发I/O吞吐率,并且在某一个物理网络端口出现故障时,可以保证网络服务的通畅。
通过网络虚拟化技术,可以为高校信息化的网络基础设施建设提供一个新标准,定义新一代网络架构,使得各种基础网络都能使用这种灵活的架构,使高校在构建连续和高度可用的网络服务的同时,优化网络资源的使用效率。