虚拟化技术

前言

近年来,计算机硬件与软件的性能比以往有了极大的发展与进步,计算机硬件的发展为来人们提供了极其强大的计算能力和极其丰富的计算资源,如不加以有效利用将会造成资源浪费。同时,随着计算机软件的发展,用户使用计算机的场合越来越多,这又导致用户对计算机的需求与要求越来越多,网络安全、数据灾备、系统移植、系统升级、软硬件成本等都成了使用计算机过程中要考虑和解决的问题。而虚拟化技术的出现与应用,为用户提供了解决这些问题的完美方案。本章就将介绍云计算与大数据技术紧密相关的虚拟化技术。

一、虚拟化技术简介

什么是虚拟化?

云计算的核心技术之一就是虚拟化技术。所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化的核心软件VMM,是一种运行在物理服务器和操作系统之间的中间层软件。VMM是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括CPU、内存、磁盘、网卡在内的所有物理设备。VMM不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行VMM时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。

虚拟化方式

虚拟化技术有很多实现方式,比如根据虚拟化的程度和级别,有软件虚拟化和硬件虚拟化,全虚拟化和半虚拟化。

软件虚拟化:顾名思义,就是采用纯软件的方法在在现有的物理平台上实现物理平台访问的截获和模拟,该物理平台往往不支持硬件虚拟化。

硬件虚拟化:简单来说,就是物理平台本身提供了对特殊指令的截获和重定向的硬件支持,新的硬件会提供额外的资源来帮助软件实现对关键硬件资源的虚拟化,从而提升性能。

全虚拟化:完全虚拟化技术又叫硬件辅助虚拟化技术,最初所使用的虚拟化技术就是全虚拟化(Full Virtualization)技术,它在虚拟机(VM)和硬件之间加了一个软件层Hypervisor,或者叫做虚拟机管理程序或虚拟机监视器(VMM)。

半虚拟化:半虚拟化技术是后来才出现的技术,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要VMM耗费一定的资源进行翻译操作。

二、虚拟化技术原理

虚拟化概念很早就已出现。简bai单来说,虚拟化就是使用某些程序,并使其看起来类似于其他程序的过程。
将这个概念应用到计算机系统中可以让不同用户看到不同的单个系统(例如,一台计算机可以同时运行Linux 和 Microsoft? Windows?)。这通常称为全虚拟化(full virtualization)。
虚拟化也可以使用更加复杂的格式,其中单个计算机看上去具有多个架构(对于一个用户来说,它是一个标准的 x86 平台;对于另外一个用户来说,它是 IBM Power PC? 平台)。这种虚拟化形式通常被称为 硬件仿真。
最后,更加简单的一种虚拟化是操作系统虚拟化,其中一台计算机可以运行相同类型的多个操作系统。这种虚拟化可以将一个操作系统的多个服务器隔离开来(这意味着全都必须使用相同类型和版本的操作系统)。
虚拟化技术的工作原理:
虚拟化解决方案的底部是要进行虚拟化的机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化;那么就需要系统管理程序 层的支持。系统管理程序,或称为 VMM,可以看作是平台硬件和操作系统的抽象化。在某些情况中,这个系统管理程序就是一个操作系统;此时,它就称为主机操作系统.
系统管理程序之上是客户机操作系统,也称为虚拟机(VM)。这些 VM 都是一些相互隔离的操作系统,将底层硬件平台视为自己所有。但是实际上,是系统管理程序为它们制造了这种假象。
目前使用虚拟化解决方案的问题是,并非所有硬件都可以很好地支持虚拟化。较老的 x86 处理器根据执行范围对特定指令会产生不同结果。这就产生了一个问题,因为系统管理程序应该只能在一个最受保护的范围中执行。由于这个原因,诸如 VMWare 之类的虚拟化解决方案会提前扫描要执行的代码,从而将这些指令替换为一些陷阱指令(trap instruction),这样系统管理程序就可以正确地处理它们。Xen 可以支持一种协作的虚拟化方法,它不需要任何修改,因为客户机知道自己正在进行虚拟化,并已经进行了修改。KVM 会简单地忽略这个问题,如果您希望进行虚拟化,就强制必须在更新的硬件上运行。
一、 虚拟化技术
虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)
1、虚拟化技术的分类:
(1) 模拟:Emulation
Qemu, PearPC, Bochs, …

(2) 完全虚拟化:Full Virtualization,Native Virtualization
完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。
VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高
半虚拟化系统性能可以接近在裸机上的性能。
VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)

(3) 半虚拟化:Para-Virutalization
半虚拟化需要对运行在虚拟机上的客户机操作系统
进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。

特点:GuestOS明确知道自己运行虚拟机之上;
xen, UML(user-mode linux)

(4) 容器级虚拟化:
LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, …

(5) 库级别虚拟化:
wine

(6) 程序级虚拟化
jvm, pvm, …

2、主机虚拟化:Emulation, Full Virtualization, Para-Virutalization
Type-I:Hypervisor直接运行于硬件;
Type-II:Hypervisor运行主机OS之上;

3、云栈的类别:
IaaS(Infrastructure-as-a-Service)基础设施服务
PaaS(Platform-as-a-Service)系统平台服务
SaaS(Software-as-a-Service)软件服务
FWaaS(FireWall as a Service)防火墙服务
DBaaS(DataBase-as-a-Service)数据库服务
LBaas (load-balancer-as-a-service)负载均衡服务
二、主机虚拟化:
1、cpu的虚拟化:
模拟类型:emulation,虚拟机的arch与物理平台的arch可以不同;qemu
虚拟类型:virtualization
完全虚拟化(full-virt)

  • BT:通过软件二进制转换
  • HVM:硬件辅助的虚拟化
    半虚拟化: (pare-virt)
  • GuestOS明确知道自己运行于虚拟技术中
    硬件级物理cup虚拟化技术
    英特尔硬件虚拟化技术interl-VT
    AMD硬件虚拟化技术AMD-V
    2、内存虚拟化管理
    早期,虚拟机中的内存到物理内存地址机制,用软件实现, shadowmmu很低效
    硬件内存中添加了,标识虚拟机标签机制tagged TLB。

MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。

硬件级内存虚拟化:
硬件级物理内存映射到虚拟机

英特尔硬件虚拟化技术EPT,Extended Page Table
AMD硬件虚拟化技术NTP,Nested Page Table
3、硬盘的虚拟化:
虚拟机如何使用硬盘的空间:虚拟机在物理硬盘上划分一个文件来使用,此文件也是靠宿主机通过文件系统将磁盘分区后,并创建文件系统后,分给虚拟机一个文件的大小的空间。在宿主机上表现的就是一个文件,而在虚拟机上表现的就是一块硬盘。所以还需要用软件的方式模拟一个适配器,将此文件,

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值