【IT】虚拟化技术

发布时间:2023年12月22日

概述

虚拟化技术是一个广义的术语,对不同的行业或不同的人有着不字领域中,虚拟化技术章味着对计算机资源的抽象。虚拟化是通过虚拟化技术将一台计算机应拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显者提高计算机的工作效率。也就是说,虚拟化技术是模拟真正的(或者称物理的)计算机资源,例如CPU、内存、存储、网络等用户可见的物理的硬件资源。用户通过虚拟化技术在使用这兰资源时,除了不能物理接触以外,其他都与使用物理计算机没有任何区别。虚拟化技术可以实现大容量、高负载或者高流量设备的多用户共享,每个用户可以分配到一部分独立的、相互不受影响的资源。每个用户使用的资源是虚拟的,相互之间都是独立时,虽然这些数据有可能存放在同在一台物理设备中。

以虚拟硬盘来说,用户使用的是由虚拟化技术提供的虚拟硬盘,而这些虚拟硬盘对于用户来说就是真实可用的硬盘,这些虚拟硬盘在物理存储上可能就是两个不同的文件,但用户只能访问自己的硬盘,不能访问别人的硬盘,所以他的各自的数据是安全的,是相互不受影响的。甚至各个用户使用的网络接口都是不一样的,所使用的网络资源也是不一样的,使用的操作系统也不一样。

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

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

在这里插入图片描述

虚拟化技术的分类

从实现虚拟化的层次来分

虚拟化技术可以划分为:硬件虚拟化,操作系统虚拟化,应用程序虚拟化等。

硬件虚拟化,又叫做准虚拟化,就是用软件来虚拟一台标准电脑的硬件配置,如CPU、内存、硬盘、声显卡、光驱等,成为一台虚拟的裸机。

操作系统虚拟化,就是以原操作系统为母体样本,利用虚拟化软件克隆出多个新系统。

应用程序虚拟化,主要任务是虚拟操作系统,保证应用程序的正常运行虚拟系统的某些关键部分,如注册表等,轻量、小巧;还可以实现很多非绿色软件的移动使用,通过局域网方便快捷地分发到企业终端上,不用安装,直接使用,在应用范围和体验上超越绿色软件,大大降低了企业的IT成本。

以应用领域来划分

虚拟化技术可以划分为:服务器虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化、CPU虚拟化、文件虚拟化等。

服务器虚拟化,应用了硬件虚拟化和操作系统虚拟化技术,在一台服务器运行安装多个操作系统,并且可以同时运行,就相当于多台服务器同时运行了,利用率大大提高。

存储虚拟化,是将一堆独立分布的硬盘虚拟的整合成一块硬盘,存储虚拟化的目的是方便管理和有效利用存储空间。

网络虚拟化,一般是指VPN,它将两个异地的局域网,虚拟成一个局域网,这样一些企业的OA、B/S软件,就可以像真实局域网一样进行电脑互访了。

桌面虚拟化,是在服务器上部署好桌面环境,传输到客户端电脑上,而客户端只采用瘦客户机的应用模式,即只安装操作系统,接受服务器传输来的虚拟桌面,用户看到的就像本地真实环境一样,所有的使用其实是对服务器上的桌面进行操作。

CPU虚拟化,是对硬件虚拟化方案的优化和加强。以前是用虚拟化软件把一个CPU虚拟成多个CPU,而CPU虚拟化直接从硬件层面实现,这样大大提高的性能。

文件虚拟化,是将分布在多台电脑的文件数据虚拟成一台电脑上的,这样以前找文件要去不同的机器上查找,而现在则像在一台电脑上操作一样。

关键技术介绍

1)全虚拟化(Full Virtualization)

全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。

全虚拟化模型

全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源

2)半虚拟化(Para Virtualization)

半虚拟化是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。

半虚拟化模型

半虚拟化需要guest操作系统做一些修改,使guest操作系统意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作系统相近的性能

虚拟化技术的原理

到目前为止,虚拟化技术的各方面都有了进步,虚拟化也从纯软件的虚拟化逐深入到处理器级虚拟化,再到平台级虚拟化乃至输入/输出级虚拟化。对数据中心来说,虚拟化可以节约成本,最大化利用数据中心的容量和更好的保护数据。虚拟化技术已经成为私有云和混合云设计方案的基础。

虚拟化技术原理

虚拟机(Virtual Machine, VM) 是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。简单地说,虚拟机就是通过软件在宿主机上虚拟出一台计算机。虚拟机技术是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式、地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和数据存储。在实际的生产
环境中,虚拟机技术主要用来解决云数据中心和高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化地利用物理硬件。即将多个操作系统熟合到一台高性能服务器上,最大化利用硬件平台的所有资源,用更少的投入实现更多的应用,还可以简化IT 架构,降低管理资源的难度,避免IT架构的非必要扩张。而且虚拟机的真正硬件无关性还可以实现虚拟机运行时迁移,实现真正的不间断运行,从而最大化保持业务的持续性,不用为购买超高可用性平台而付出高昂的代价。

虚拟机技术实现了一台计算机同时运行多个操作系统,而且每个操作系统中都有多个程序运行,每个操作系统都运行在一个虚拟的CPU或虚拟主机上。虚拟机技术需要 CPU、主板芯片组、BIOS和软件的支持,如VMM软件或者某些操作系统本身。

虚拟机技术的核心是虚拟机监视器VMM (Virtual Machine Monitor) , VMM也称为
Hypervisor. VMM的作用是向底层分配访问宿主机的硬件资源,向上管理虚拟机的操作系统和应用程序。它是一个宿主程序,该程序是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机,实现一台计算机支持多个完全相同的执行环境。每个用户都会感觉到自己在一台独立的、与其他用户相隔离的计算机上进行操作,尽管事实上为每个用户提供服务的都是同一台机器。在此种情况下,一台虚拟机就是由一个潜在的控制程序管理的操作系统。VMM 为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器、内
存、I/O 设备等)。VMM采用某种调度算法在各个虚拟机之间共享 CPU, 如采用时间片轮转调度算法。

虚拟机系统与实际的计算机操作系统没有区别,也会感染病毒,但是由于虚拟机是封闭的虚拟环境,如果虚拟机不与宿主机连接,则不会受宿主机病毒的影响。

CPU虚拟化原理

cpu虚拟化
    1、模拟:纯软件方式实现,性能很差。虚拟机运行在模拟出来的cpu上。(模拟出环1,2,3,4)
    2、虚拟:
    
完全虚拟化:full-virtulization,不知道自己运行在虚拟环境中,需要调用特权命令时直接调用。虚拟出来的架构与地参架构要保持一致
    
BT技术:二进制翻译(软件),边翻译边执行。上层架构和底层架构要保持一致(即虚拟机系统架构和物理机的系统架构保持一致)。虚拟机用户空之间可直接运行在物理cpu的环3,只需要虚拟出ring0

HVM技术:硬件辅助虚拟化,此cpu为特制cpu,比普通cpu多了一个环(环-1,0,1,2,3),物理机的内核运行在环-1上,虚拟机的内核运行在环0上,用户空间都运行在环3上(性能优秀)半虚拟化:para-virtulization,知道自己运行在虚拟环境中,需要调用特权指令时,向物理机的内核发起请求,由物理内核进行调用(性能优秀,切需要对虚拟机的内核进行修改)。虚拟出来的架构与底层架构要保持一致。

内存虚拟
shadow page table技术(影子页表):需要经过两次的内存地址转换。cpu在不同虚拟机之间切换时,需要清空MMU中的缓存,所以TLB中的缓存很难命中,效率低下。
      虚拟机是进程,进程运行时需要申请内存,虚拟机把自己看作是运行在申请来的内存上(虚拟内存),实际上是运行在物理内存上。当虚拟机中的进程需要调用内存时,先将进程所需的线性地址空间地址发送给MMU,由MMU映射到虚拟机申请来的虚拟内存地址,在由shadow page table技术将虚拟内存地址转换到物理内存地址中。

硬件虚拟化
    MMU Virtulization:MMU虚拟化(硬件虚拟化,需要特定cpu支持)
    Intel:EPT,ExtendedPage Table
    AMD:NTP,Nested Page Table

TLB virtulization
      tagged TLB

I/O
外存:
硬盘、光盘、U盘
网络设备:
网卡
显示设备:
VGA:frame buffer机制
键盘鼠标:
ps/2,usb

I/O虚拟化的方式
    模拟(性能较差):完全使用软件来模拟真实硬件

半虚拟化(性能优秀):只能运用在网卡和硬盘设备上。如果虚拟机向外发一个包,直接由虚拟机中的IO前端驱动(IO frontend)直接转发到物理机中的IO站(IO stack),然后又由物理机的内核直接将IO站中的包通过IO后端驱动(IO backend)来驱动网卡将包发送出去。此方法与模拟的方法比较,减少了在虚拟机中通过软件模拟网卡,然后由虚拟机中的驱动来驱动网卡,再由模拟的网卡将包转发进物理机中的步骤,性能大大提升。

IO-through:IO透传
多个硬件设备,每台虚拟机通过物理机上内核中的IO管理器(IO Manager)调度到自己专属的硬件设备上。如:有五块硬盘,物理机使用了两块硬盘,剩下的三块硬盘分配到3台虚拟机上,每个虚拟机有自己的专属硬盘。

需要主板支持透传技术
      Intel:VT-d 在虚拟技术中,实现IO的可靠性,灵活性,和性能的提升。基于北桥的硬件辅助的虚拟化技术。

常见的虚拟化技术解决方案

OpenStack

OpenStack (https: //www.openstack.org/) 是由 NASA (美国国家航空航天局)和 Rackspace 合作研发并发起的、以Apache许可证授权的自由软件和开放源代码项目,OpenStack 是一款开源的云平台,通过相应的API与驱动对虚拟
机进行管理,它几乎支持市面所有类型的虚拟化环境。OpenStack 本身不提供虚拟化功能,虚拟化由VMM提供,Openstack则是根据相应的 API 对VMM 进行管理。Openstack 负责平台的搭建与周边功能的完善。OpenStack 设计的初衷就是适应分布式应用的架构,应用的组件在该平台中可以跨越多个物理设备或虚拟设备。这些类型的应用也被设计成随着规模的增加,可以通过添加应用实例或者重新平衡应用实例间的负载。它要实现的目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。

从逻辑上来看,OpenStack 由三个部分组成:控制模块,网络模块及计算模块。控制模块主要运行一些API接口服务、消息队列、数据库管理模块及Web的接口等;网络模块主要提供为各个虚拟机提供网络服务;计算模块则主要负责处理消息、控制虚拟机等操作。

从OpenStack的组成来看,它包含了众多的模块,并且这些模块都可以分布式部署。主要包含以下几个重要模块:Nova、Keystone、Ceilometer、Horizon、Glance、Neutron、 Cinder 及Swift 等。Nova 主要提供计算功能;Keystone 负责认证与授权:Ceilometer 用于资源与系统运行情况的监控;Horizon 为用户提供了方便管理的Web平台;Neutron 负责网络环境的搭建与虚拟化;Glance 用于镜像文件的管理;Cinder 负责块存储,可以为用户提供 SaaS (Storage as a Service, 存储即服务)服务:Swift 同样负责存储,但它主要负责数据对象、镜像、数据备份等平台所用的数据存储,同样也可以对Cinder的数据进行备份存储。

KVM

基于内核的虚拟机(Kernel-based Virtual Machine, KVM) 是开源软件,其Logo 其官网地址为:https: //www.linux-kvm.org/page/Main Page.KVM是一款基于X86架构,硬件支持虚拟化技术的Linux 全虚拟化解决方案。硬件支持虚拟化技术由 CPU 厂商提供,目前市面上有两种技术方案,Intel-VT与 AMD-V.KVM 首次被并入Linux 的内核版本为2. 6. 20, 在RHEL 5. 4中推出,并于2007年2月5日正式发布。只要硬件支持 Intel- VT或AMD-V就可以使用KVM.可以通过命令grep-E“vmx|svm”/proc/cpuinfo来确定当前硬件平台的支持情况.

如果系统已经支持了 VMX (Virtual Machine Extension, 由Intel 提供)或者SVM (Secur Virtual Machine, 由AMD提供), 则可以加载 Linux 底层相应的驱动以使用 KVM, 如果是Intel平台,则加载kvm-intel.ko; 如果是AMD平台,则加载kvm-amd.ko.

微软Hyper-V

Hyper-V 设计的目的是为广大的用户提供更为熟悉以及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。Hyper-V 采用微内核的架构,兼顾了安全性和性能的要求。由于 Hyper-V 底层的 Hypervisor 代码量很小,不包含任何第三方的驱动,非常精简,安全可靠、执行效率高,能充分利用硬件资源,使虚拟机系统性能更接近真实系统性能。Hyper-V 采用基于 VMBUS (Virtual Machine Bus) 的高速内存总线架构,所有来自虚拟机的硬件请求,不论是显卡、鼠标、键盘或者其他设备,都可以直接经虚拟化服务客户机(Virtualization Service Consumer, VSC) , 通过
VMBUS 总线发送到根分区的虚拟化服务提供者(Virtualization Service Provider, VSP) , VSP 则调用对应的设备驱动直接访问硬件,中间不再需要通过Hypervisor的管理。这种方式下,每个虚拟机的硬件请求,不再需要经过用户模式、内核模式的多次上下文切换转移,从而极大地提高了运行效率。

如果想要在 Hyper-V 中运行 Linux 操作系统也是没有问题的,只需要安装与 Linux 相关的组件即可。这些组件可以是支持Xen的 Linux 内核,也可以是专门为 Linux 设计的集成组件。当然,这些组件本身就已经集成了相关的驱动,所以用户不再需要关心在 Hyper-V中的驱动相关的问题。在安装完成这些组件后,Hyper-V可以很完美地支持Linux.

Hyper-V可以采用半虚拟化和全虚拟化两种模拟方式创建虚拟机。半虚拟化方式要求虚拟机与物理主机的操作系统(通常是版本相同的 Windows) 相同,以使虚拟机具备高性能;全虚拟化方式要求CPU支持全虚拟化功能,如Inter-VT或AMD-V, 以便能够创建使用不同的操作系统的虚拟机,如Linux或者Mac OS.

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

思杰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–企业能够以高性能安全地通过任何用户设备交付虚拟桌面

来源

虚拟化技术
“IT百科”进阶学习之“虚拟化技术全攻略”
【HCIA】虚拟化技术介绍

文章来源:https://blog.csdn.net/weixin_44231544/article/details/134509807
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。