提到虚拟化技术,大多数人想起的都是VMware、Virtual Box等这些软件,以为虚拟化技术就是虚拟机。但实际上,这种想法是不太准确的,虚拟化技术是一个很宽泛的概念,VMware、Virtual Box只是基于其中的一种技术来实现的。今天,我们就来了解一下虚拟化技术。
一、简介
1、虚拟化的定义:指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化。
2、优势:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。IT 基础设施的总体管理可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。
二、虚拟化的类别
虚拟机技术是多种多样,而可以虚拟的层次或者可虚拟的方面也是遍布从硬件到应用层整个计算机系统。
(一)、硬件虚拟化与软件虚拟化
1、软件虚拟化:软件层面的虚拟化,往往是指在同一个操作系统实例的基础上提供多个隔离的虚拟运行环境,也常常被称为容器技术。LXC(Linux Container)则是采用了这种技术,它主要是采用了linux本身提供的技术,在一定程度上模拟虚拟化。
软件虚拟化也可以理解成进程级虚拟机,其他虚拟化成为系统级虚拟机。在进程级虚拟机中负责虚拟化的软件成为运行时软件,而系统级虚拟机中负责虚拟化的软件成为VMM(Virtual Machine Monitor)。
2、硬件虚拟化:硬件虚拟化基本上就是在一台宿主机上虚拟了整个系统,各台虚拟机之间相互不可见。这会很明显导致很多重复的线程和重复的内存页出现,性能上肯定会有影响。所以采用这种技术,一台宿主机上虚拟机的个数肯定会有一定限制。
(二)、平台虚拟化与软件虚拟化
(三)、虚拟化程度——完全虚拟、准虚拟、系统虚拟、桌面虚拟
1、完全虚拟
1.1 简介:最流行的虚拟化方法使用名为hypervisor的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。
1.2 应用:VMware和微软的VirtualPC是代表该方法的两个商用产品。
hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。
在完全虚拟化的环境下,hypervisor运行在裸硬件上,充当主机操作系统;而由hypervisor管理的虚拟服务器运行客户端操作系统(guest OS)。
1.3 缺点:hypervisor给处理器带来开销。
1.4 优点:
A、既能让客户端操作系统彼此完全隔离,还能让它们与主机操作系统完全隔离。它非常适用于软件质量保证及测试,另外还支持种类最广泛的客户端操作系统。
B、完全虚拟化解决方案提供了其他独特功能。譬如说,它们可以对虚拟服务器拍“快照(snapshot)”,保留状态、有助于灾难恢复。这种虚拟服务器映像可以用来迅速配置新的服务器实例。越来越多的软件公司甚至开始提供评测版产品,作为可下载、预包装的虚拟服务器映像。
2、准虚拟
2.1 简介:完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它知道自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫准虚拟化(para-virtualization)。
2.2 应用:Xen是开源准虚拟化技术的一个例子。操作系统作为虚拟服务器在Xen hypervisor上运行之前,它必须在核心层面进行某些改变。因此,Xen适用于BSD、Linux、Solaris及其他开源操作系统,但不适合对像Windows这些专有的操作系统进行虚拟化处理,因为它们无法改动。
2.3 优势:准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。
3、系统虚拟
3.1 简介:实现虚拟化还有一个方法,那就是在操作系统层面增添虚拟服务器功能。
3.2 应用:Solaris Container就是这方面的一个例子,Virtuozzo/OpenVZ是面向Linux的软件方案。
就操作系统层的虚拟化而言,没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)。
3.3 优缺点:虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。
4、桌面虚拟
4.1 简介:服务器虚拟化主要针对服务器而言,而虚拟化最接近用户的还是要算桌面虚拟化了。桌面虚拟化主要功能是将分散的桌面环境集中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。
4.2 优缺点:
A、管理简单:桌面虚拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。
B、安全性高:终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用,节省了license。
C、不足:桌面虚拟化依托于服务器虚拟化。没有服务器虚拟化,这个桌面虚拟化的优势将完全没有了。不仅如此,还浪费了许多管理资本。
本篇博客部分内容来自:https://blog.csdn.net/ma524654165/article/details/77864455