什么是虚拟化?

article/2025/11/6 21:10:40

什么是虚拟化?

“虚拟化“这个词只要是接触过计算机和网络的,或多或少都有听过。什么虚拟机、存储虚拟化、网络虚拟化、网络功能虚拟化(NFV)、虚拟资源池……今天从什么是虚拟化讲起。

什么是虚拟化

由于虚拟化在各种企业的技术宣传中都被使用过,虚拟化(Virtualization)这个词比较难界定,按照虚拟的对象、抽象程度等也可以分成多种虚拟化,用维基百科中提到的不严格的定义来讲:

在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和资料存储。

Red Hat在官网也对虚拟化作出了通俗的描述。

以我的理解,虚拟化技术就是把真实存在的XXX以软件等形式,在原有XXX的基础上,实现多个虚拟XXX,或者把真实存在的多个XXX以某种方式使其透明地成为整个虚拟的XXX。比如你可以在你的主机上开多个虚拟机;又如把存储设备统一管理,对外是一整个存储设备。

看看各大企业是怎么解释的

IBM

维基百科上说IBM是虚拟化的鼻祖,看看它是咋说的:

虚拟化是让物理主机硬件资源得到更充分应用的过程,也是云计算的基础

虚拟化通过软件在计算机硬件之上构建一层抽象层,允许硬件的处理器、内存、存储硬盘等被划分成多个虚拟计算机,也就是俗称的Virtual Machine(VM),每个VM运行各自的操作系统,即便他们实际都是运行在底层计算机硬件上的一部分,各个VM也表现为互相独立的计算机。

由此可见,虚拟化能够更有效地利用计算机物理硬件资源,能够为一个机构在硬件上的投资带来更大的回报。

如今,虚拟化是企业在IT架构上的标准做法,同时也是云计算的主要驱动技术。虚拟化使得云提供商能够基于他们现有的计算机物理硬件,为用户提供更好的服务;云用户也能够按需购买所需的计算资源,并在工作负载增加时经济而高效的拓展计算资源。

Red Hat

红帽的图让人很喜欢。

虚拟化是一种技术,可以利用以往局限于硬件的资源来创建有用的 IT 服务。它让您能够将物理计算机的工作能力分配给多个用户或环境,从而充分利用计算机的所有能力。

举一个实际例子,假设您有 3 台物理服务器,分别用于不同的特定用途。 其中一台是邮件服务器,一台是 Web 服务器,最后一台则用于运行企业内部的传统应用。 每台服务器只使用了大约 30% 的计算容量,这仅是运行潜能的一小部分。但是,由于传统应用对内部运营非常重要,您必须将其连同所运行的第三台服务器予以保留,对吗?

Server usage

过去确实如此。相对简单和可靠的做法是在单独的服务器上运行单独的任务:1 台服务器, 1 个运行操作系统,1 个处理任务。我们很难让 1 台服务器有多个大脑。但是,借助虚拟化技术,您可以将邮件服务器分为 2 个能够处理独立任务的特殊服务器,从而实现传统应用的迁移。您仍然使用相同的硬件,但可以更加高效地利用这些资源。

Server usage: virtualization

考虑到安全问题,您可以再次划分第一台服务器,从而可以处理另一项任务,将其使用率从 30% 提高到 60%,甚至提高到 90%。这样,现在空闲的服务器可以用于其他任务或停用,以降低散热和维护成本。

VMware

像大多数组织一样,随着业务的发展和增长,你可能正面临新的IT挑战。在一个动态的环境中,你需要提高敏捷性以跟上快速变化的业务需求。你的员工、客户和业务伙伴都要求更多的响应服务和更复杂的应用程序。当你试图跟上新的要求和不断增长的需求时,你的IT基础设施正变得越来越大,越来越复杂,给你的IT设施带来了更大的压力。

虚拟化有助于解决你最紧迫的技术挑战:基础设施的无序扩张迫使IT部门将70%的预算用在维护上,并消耗了用于业务建设创新的资源。困难源于当今X86计算机的架构:它们被设计为一次只运行一个操作系统和应用程序。这意味着,即使是小型的数据中心也必须部署许多服务器–每台服务器只能以12%的容量运行。虚拟化软件通过使多个操作系统和应用程序在一台物理服务器(host)上运行来解决这个问题。

回到原本想回答的问题:

请介绍目前通用的虚拟化方案有哪些,其对应的优劣及应用场景分别是什么?

从两个角度来答:架构角度和企业侧角度。

架构角度

从实现架构上将虚拟化方案分类,也就是从虚拟化技术本身出发。现在网上资料众说纷纭,我在这里加上自己的理解做一个整合,起一个通识的作用:

虚拟化方案

  • 全虚拟化(Full Virtualization)

    全虚拟化是最早出现的虚拟化技术。顾名思义,全虚拟化中VM从头到脚都是虚拟化的,VM操作系统所发出的一切可能指令都由虚拟化层(即VM Manager, VMM或者Hyperviser)处理。

    全虚拟化最先完全由软件实现,典型的实现是将客户VM的二进制代码进行翻译。后来出现了硬件辅助的全虚拟化,典型的如Intel-VT和AMD-V。

    相对来说更加简单和易于实现,但由于有两层OS,管理开销更大,性能损耗大。

    很多个人或者小型的组织使用的VMware Workstation和VirtualBox就属于这种软件辅助的全虚拟化,还有KVM等

  • 半虚拟化(Para Virtualization)

    半虚拟化中客户VM知道其运行在虚拟平台上,并需要主动适应,这样的虚拟平台需要对所运行的客户机操作系统进行或多或少的修改使之适应虚拟环境。虚拟化层是直接安装在硬件设备上的,会接管虚机的指令。

    这种技术不依赖于操作系统,但需要对虚拟层的内核进行开发,开发难度更大。

    VMware ESX、Xen、华为的FusionSphere都是这种模式。

  • 混合虚拟化

    无需开发内核,可支持多种操作系统,但需要底层硬件的虚拟化支持。

    KVM就是这种模式

  • 操作系统级别虚拟化(Operating system–level virtualization)

    常说的容器化就是一种OS级别虚拟化,也有人不把容器算作虚拟化方式的,目的是与VM方式区分开。

    操作系统层上的虚拟化是指操作系统的内核可以提供多个互相隔离的用户态实例。这些用户态实例(经常被称为容器)对于它的用户来说就像是一台真实的计算机,有自己独立的文件系统、网络、系统设置和库函数等。

    由于是OS提供的,这种方式往往非常高效,最核心的优点,也是Docker最鼓吹的——占用资源更少、启动更快,因为容器不需要像虚机一样运行客户端OS,容器底层是主机OS,其上只需运行需要的应用,同样做到了相互隔离,这种启动速度也使得容器可以不需要时关闭,释放主机资源。此外模块化程度更高,体积小,应用可以通过微服务技术部署在多个容器。劣势来说,首先容器是基于Host OS的,不同系统OS的区别也就使得容器不能在各种系统环境混用;安全性相对更差,因为容器需要与底层操作系统或者其他容器通信。

    容器化的应用场景更多是在应用程序上,而不是隔离操作系统,可能这也是很多资料将其与其他虚拟化技术分隔开的原因。

企业侧角度

应该得更关心市面上有哪些通用的1虚拟化方案以及他们各自的优劣(包括价格),也许这个角度是本问题更关心的?

我们主要讲这几个主流方案:KVM、Hyper-V、VMware sPhere、Xen

1. KVM

KVM全称Kernel-based Virtual Machine,可将Linux内核转化为一个虚拟机监视器。需要硬件的支持,比如Intel-VT和AMD-V。属于全虚拟化技术。

应用场景:

用于支持虚拟化技术(Intel V或AMD-V)的x86架构硬件,的Linux的全虚拟化。

优势:

  • 首先从现有形势来看,国内的阿里云,华为云,国外的AWS 之类的云服务提供商从几年前开始就均将技术路线向KVM进行切换,性能和稳定性经历了考研。
  • 开源。不仅开源性能还比vmware、xen等老牌虚拟化服务好,费用基本可以无视,高度可定制。
  • 已写入Linux内核,可以利用内核的优化和改进,是Linux的一部分,Linux活着可以不用太担心KVM死掉。且KVM本身是内核模块,结构更精简,无需对内核进行修改。
  • 充分支持现有的硬件虚拟化功能,支持SR-IOV,

劣势:

  • 需要支持虚拟化的处理器,如果CPU比较旧或者不支持虚拟化,KVM也就不能用了,因为KVM本身并不执行硬件模拟。
2. Hyper-V

微软家的,旧称Windows Server Virtualization。可以归属到半虚拟化

应用场景:

更适合小型的组织和企业

优势:

  • Hyper-V建立在微内核化设计之上,因此设备驱动程序在控制层中独立运行和操作,可以保持最少的设备驱动程序管理;
  • 初始化时间更短

劣势:

  • 使用Hyper-V之前必须安装主OS,且由于架构问题,父OS的崩溃会使得所有的VM崩溃。
3. VMware vSphere

应用场景:

更适合大型组织或企业。

优势:

  • 独立,无需像Hyper-V一样使用一个主OS控制所有的的虚拟化组件。

劣势:

  • 需要硬件的支持。
  • 由于设备驱动程序在体系结构的管理程序层中初始化,因此需要更多的初始化时间。该层中的任何损坏代码都可能导致初始化速度变慢,甚至导致服务器挂起或崩溃。
  • 贵。
4. Xen

Xen是开放源代码虚拟机监视器,由XenProject开发,能够在单个计算机运行多达128个有完全功能的操作系统。支持半虚拟化和全虚拟化。

优势:

  • 无需特殊硬件支持,就能达到高性能的虚拟化。即支持更广泛的CPU架构。

劣势:

  • 版本更新需要对内核重新打补丁,重新编译整个内核。

  1. 即不与软硬件绑定,可以部署在我自己的服务器上的。 ↩︎


http://chatgpt.dhexx.cn/article/jiBDRqYH.shtml

相关文章

虚拟化管理工具的安装与使用

虚拟化管理工具的安装与使用 Libvirt是一个软件的集合,包括API库,后台运行程序(Libvirtd)和命令行工具(virsh)。 Libvirt主要有下面3个功能: 1 虚拟机管理:以虚拟机为对象,Libvirt提供了定义,删除&#x…

开源虚拟化工具VirtualBox安装部署

什么是Virtualbox VirtualBox是一款由Oracle开发和维护的免费开源虚拟化软件,用于在一台计算机上创建和管理多个虚拟机。它允许用户在单个物理计算机上运行多个操作系统,例如Windows、Linux、macOS等。VirtualBox提供了一个虚拟化环境,使用户…

虚拟机的虚拟化如何开启?

大家可以在任务管理器-性能中,查看“虚拟化”是【已启用】还是【已禁用】。如果是禁用了,可以接着往下看我们如何开启虚拟化。 1、关闭电脑的快速启动 控制面板-电源选项-选择电源按钮的功能-更改当前不可用的设置;把关机设置中的【所有都取…

kvm虚拟化管理工具

kvm虚拟化管理工具 一、什么是云计算?二、云计算的基础KVM虚拟化三、安装kvm虚拟化管理工具四、virsh虚拟机的日常操作(开关,挂起虚拟机,导配置文件,磁盘增容,转化磁盘格式等)五、快照管理六、KVM虚拟机的克…

有哪些虚拟化和容器化工具推荐? - 易智编译EaseEditing

以下是几个常用的虚拟化和容器化工具推荐: VMware vSphere: VMware vSphere 是一套完整的虚拟化平台,包括虚拟化服务器、虚拟化存储和虚拟化网络。 它提供了高性能的虚拟机管理和资源调度功能,适用于企业级的虚拟化部署。 Docke…

KVM虚拟化工具简介及安装

文章目录 1. KVM简介2. 安装前提3. KVM安装4. KVM启用5. 虚拟机安装和设置 1. KVM简介 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理&#xff…

虚拟化工具介绍 (资源)

2019独角兽企业重金招聘Python工程师标准>>> 常见的虚拟化产品:docker、Hyper-V、VMware、VirtualBox、XenServer、Kvm、Qemu、OpenVZ、Xen、CloudStack、Openstack、云计算、云其他。 常见的虚拟化 技术 :ESXI、XEN、KVM、HP-V、Docker、Virtual-BOX, 使用最广泛…

AppScan 10中文版

教程: 1、下载解压缩,得到获得AppScan10中文版原程序; 2、首先双击“AppScan_Setup_10.0.0.exe”开始安装,选择简体中文; 3、勾选“我接受许可协议中的全部条款”,然后继续安装; 4、选择软件安…

安全测试工具APPScan下载安装及简单使用

一、安装 百度随便找了个网址下的,解压后如图:AppScan_Std_9.0.3.7_Eval_Win.exe是安装程序,LicenseProvider.dll是替换文件。安装包600多MB建议硬盘留存避免重复下载。 安装简单,注意修改下安装路径,另外会弹出提示是…

AppScan

AppScan是用于web项目的安全测试工具,扫描网站所有url(自动手动),自动测试是否存在各种类型的漏洞。 使用步骤 选择记录 就会弹出appscan自带的浏览器,在其中输入账号密码,appscan就会自动记录 点击下一步…

Appscan测试工具简介

具用途? IBM公司的web扫描工具,对网站等WEB应用进行自动化的应用安全扫描和测试。 如何工作? 探索(Explore):在探索阶段,Appscan试图遍历网站中所有可用的链接,并建立一个层次结构。它发出请求,并根据响…

AppScan9.0

IBM近日发布了最新的Web 安全扫描器Appscan 9.0 ,个人认为是目前商业扫描器中做的最好的,新的版本中增加了许多有用有的新特性,包括如下: .NET 服务器的 glass box 扫描 除了 Java 服务器之外,现在还可以在 .NET 服务…

appscan如何扫描移动应用APP

众所周知,appscan是一款企业级应用安全漏洞扫描神器,appscan怎么扫描移动应用(也就是我们常说的APP)。在此记录一下 Appscan扫描web应用时一般采用自动探索扫描和手动探索扫描两种方式,具体操作可以详见我CSDN另外一篇…

AppScan安装和扫描

AppScan安装步骤: **工作原理:**AppScan 是对网站等 Web 应用进行安全攻击来检查网站是否存在安全漏洞,根据起始页爬取要测的网站下的所有页面,随后利用SQL注入原理进行进行测试是否注入点以及跨站脚本攻击的可能,可能…

AppScan的用法

一、AppScan的工作原理 对一个综合性的大型网站来说,可能存在成千上万的页面。以登录界面为例,至少要输入用户名和密码,即该页面存在两个字段,当提交了用户名和密码等登录信息,网站需要检查是否正确,这就可…

AppScan扫描报告

系列文章 AppScan介绍和安装 AppScan 扫描web应用程序 AppScan被动手动探索扫描 AppScan绕过登录验证码深入扫描 AppScan自定义扫描策略,扫描针对性漏洞 第六节-AppScan扫描报告 1.加载扫描结果 1.点击【打开】 2.选择之前保存过的扫描结果 3.等待加载完成 …

Appscan工具的使用

一,appscan扫描 1,白盒扫描静态扫描,扫描源代码。 2,动态扫描黑盒扫描,用工具来模拟黑客的攻击,查看应用层的响应。产品内部会有大量受攻击的库,当我们把一个模拟攻击发给我们的应用的时候&am…

APPSCAN安装使用

appscan简介 AppScan简介 AppScan是IBM的一款web安全扫描工具,可以利用爬虫技术进行网站安全渗透测试,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等。 AppScan有自己的用例库,版本越新用例库越全…

AppScan下载安装教程

下载地址 网盘链接:https://pan.baidu.com/s/1dLdFvmtTDQdm_6q9-2Koyw 提取码:2l4f 安装 双击下载下来的AppScan_Std_9.0.3.6_Eval_Win.exe 程序 选择安装语言: 准备安装 点击我接受 选择安装路径 安装完成 破解,用下载好…

AppScan使用教程

一、安装 IBM AppScan 该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界。Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-i…