半虚拟化如何提高服务器性能(虚拟化 半虚拟化)
mhr18 2025-07-17 22:22 2 浏览 0 评论
半虚拟化是一种重新编译客户机操作系统(OS)将其安装在虚拟机(VM)上的一种虚拟化类型,并在主机操作系统(OS)运行的管理程序上运行。与传统的完全虚拟化相比,半虚拟化可以减少开销,并提高系统性能。
虚拟化这一术语指的是创建资源的虚拟化而非实际(物理)版本,如操作系统(OS)、服务器、桌面、存储设备或网络。半虚拟化、完全虚拟化和部分虚拟化分别是三种类型的虚拟化。
虚拟化通过采用包括仿真、机器仿真、硬件和软件分区等技术将资源划分为多个执行环境。
在企业中,虚拟化通常用于以下目的:
o在计算机上同时运行多个操作系统(OS)。
o将大型系统分成更小的部分,以更有效地使用物理硬件。
o隔离在虚拟机(VM)中运行的程序,以使它们免受同一主机上另一虚拟机(VM)中发生进程的影响。例如,如果一个虚拟机(VM)发生故障,则其他虚拟机(VM)可以保持正常运行。
虚拟机(VM)等效于在另一个系统之上运行的计算机系统。虚拟机(VM)通过名为管理程序的软件程序创建和运行。
虚拟机监控程序分为两类:第一类是“裸机”虚拟机管理程序,其行为类似于操作系统(OS),并直接在系统的硬件上操作客户机虚拟机。第二类是“托管”虚拟机管理程序,其行为更像传统的软件应用程序。
什么是半虚拟化?
o通过允许操作系统识别虚拟机管理程序的存在,并直接与虚拟机管理程序通信,半虚拟化提供了比软件辅助的完全虚拟化更好的性能。半虚拟化还可以确保在将客户机操作系统(OS)安装到虚拟机中之前对其进行重新编译。但是一般来说,半虚拟化要求修改客户机操作系统(OS),以实现API,用于将虚拟机管理程序发送的命令交换到服务器。
oXen/Xenserver可能是最知名的半虚拟化管理程序软件之一。在3.0版本中,Xen还开始在启用的Intel和AMD处理器上支持硬件辅助的完全虚拟化,以实现与不可修改的操作系统(OS)(例如Windows)的可操作性。Xen在4.7版中引入了实时补丁。而在4.10版本中,Xen增加了对半虚拟化硬件(PVH)的初始支持,并在2018年年中发布的4.11更新中增加了对半虚拟化硬件(PVH)的支持。
o半虚拟化硬件(PVH)致力于将最佳的半虚拟化技术与硬件虚拟机(HVM)方法相结合。在半虚拟化硬件系统的某些元素(包括网络和磁盘接口)的情况下,原生/硬件虚拟机(HVM)虚拟化遵循不同的过程,并为虚拟化访问系统硬件接口提供有限形式的硬件仿真。硬件虚拟机(HVM)接口现在可用于大多数系统硬件。
o广泛的支持:IBM LPAR、用于SPARC的Oracle VM(LDOM)和用于X86的Oracle VM(ODM)支持半虚拟化。
半虚拟化接口
与完全虚拟化不同,半虚拟化不需要模拟虚拟机的硬件。与其相反,它提供了到虚拟机的接口,该接口有点类似于基础硬件。其中包括Linux和Windows在内的大多数现代操作系统(OS)都支持一个或多个半虚拟化接口。
VirtualBox半虚拟化接口
VirtualBox可以公开半虚拟化接口,以在虚拟机中更准确、更高效地执行软件。并提供了三个半虚拟化接口:
Minimal(对于运行Apple Mac OS X客户机是必需的)、KVM(建议用于Linux客户机)、Hyper-V(建议用于Windows客户机)。
什么是完全虚拟化?
完全虚拟化允许未经修改的客户机操作系统在驻留在服务器上的虚拟机内独立运行。客户机操作系统不知道已被虚拟化。完全虚拟化有两种类型:软件辅助虚拟化和硬件辅助虚拟化。
(1)软件辅助虚拟化
o软件辅助的完全虚拟化通常涉及耗时的过程,例如二进制翻译。实现二进制翻译虚拟化的一个经典方法是采用陷阱和仿真方法。在这种方法中,系统管理程序对CPU进行配置,以使所有潜在的不安全指令都将产生陷阱或特殊情况,从而将控制权转移回系统管理程序。系统管理程序收到陷阱后,它将检查指令,并以安全的方式对其进行仿真,然后继续执行指令。
o二进制翻译虚拟化可以与直接执行结合使用,其中大多数代码直接在CPU上执行,只有需要翻译的代码才被真正被翻译。二进制翻译虚拟化的替代方法包括二进制补丁和完整的系统仿真。
o在软件辅助的完全虚拟化中使用的管理程序软件包括VMware工作站(32位客户机),VMWare Server、Virtual PC和Oracle VM VirtualBox(32位客户机)。
o但是,“托管”虚拟机管理程序VirtualBox采用了自己的虚拟化方法。通过支持Ring-0的内核驱动程序启动虚拟机时,VirtualBox会将主机系统设置为本地运行大多数客户机代码。但是VirtualBox也可以在需要时(例如在执行特权指令时)承担控制权。发生陷阱时,VirtualBox通过将请求路由到虚拟设备或将处理委托给客户机操作系统(OS)或主机操作系统(OS)来管理情况。VirtualBox还提供半虚拟化接口。
(2)硬件辅助虚拟化
o硬件辅助的完全虚拟化消除了对二进制翻译虚拟化或其替代方法的需要。硬件辅助虚拟化是依靠硬件扩展,以帮助虚拟机管理程序在处理器级别管理复杂任务。这包括X86虚拟化技术,例如英特尔虚拟化技术和AMD虚拟化处理器命令集扩展。
o支持硬件辅助虚拟化的裸机虚拟机管理程序软件包括VMware ESXi/ESX、Hyper-V、KVM(Linux内核的一部分,可以直接运行虚拟机)和Xen/Xenserver。
o支持硬件辅助的完全虚拟化的托管虚拟机管理程序软件包括VMware Workstation(仅64位的客户机),VirtualBox(仅64位的客户机))和VMware Server(已停用)。
VMWorkstation/Server支持Linux和Windows。
什么是部分虚拟化?
在部分虚拟化中,某些应用程序(而不是整个操作系统)在虚拟机中运行。部分虚拟化只能涉及少数应用程序。顾名思义,部分虚拟化模拟系统的物理硬件,并且只是部分模拟。
优点和缺点:半虚拟化vs.完全虚拟化vs.部分虚拟化
o半虚拟化旨在增强系统性能并最大程度地减少开销,从而防止虚拟机的使用不足。它非常有效地扩展。半虚拟化还通过减少完成操作所需的时间来简化单个集合或硬件上不同操作系统的操作。但是,不利的一面是,像Windows这样的未经修改的操作系统将无法在Xen等超虚拟化的虚拟机管理程序上运行,除非可能带有该操作系统的超虚拟化驱动程序。此外,根据工作负载的类型,半虚拟化相对于完全虚拟化的性能优势可能会有很大差异。
o全面虚拟化,硬件辅助技术的发展已经改变了游戏规则。硬件辅助虚拟化通过卸载许多耗时的任务而从软件辅助的完整虚拟化向前迈出了一大步,否则这些任务将由虚拟机管理程序或虚拟机管理器(VMM)执行。但是,作为一个次要限制,硬件辅助的完全虚拟化不支持处理器不兼容的旧硬件。
o部分虚拟化比完全虚拟化容易实施,并且可以很好地在多个用户之间共享资源。但是,由于难以预测特定应用程序已经使用了哪些功能,因此在需要向后兼容性或可迁移性的情况下,不能使用部分虚拟化。
半虚拟化的理想用途
半虚拟化技术在高效的系统利用率和可扩展性、节能和易于备份方面表现突出。半虚拟化最普遍的用途之一是将环境从测试系统中分离出来。
然而,还有许多其他应用程序也在继续利用其功能,其中包括服务器整合、数据迁移、灾难恢复,以及容量管理。
相关推荐
- Java培训机构,你选对了吗?(java培训机构官网)
-
如今IT行业发展迅速,不仅是大学生,甚至有些在职的员工都想学习java开发,需求量的扩大,薪资必定增长,这也是更多人选择java开发的主要原因。不过对于没有基础的学员来说,java技术不是一两天就能...
- 产品经理MacBook软件清单-20个实用软件
-
三年前开始使用MacBookPro,从此再也不想用Windows电脑了,作为生产工具,MacBook可以说是非常胜任。作为产品经理,值得拥有一台MacBook。MacBook是工作平台,要发挥更大作...
- RAD Studio(Delphi) 本月隆重推出新的版本12.3
-
#在头条记录我的2025#自2024年9月,推出Delphi12.2版本后,本月隆重推出新的版本12.3,RADStudio12.3,包含了Delphi12.3和C++builder12.3最...
- 图解Java垃圾回收机制,写得非常好
-
什么是自动垃圾回收?自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用...
- Centos7 初始化硬盘分区、挂载(针对2T以上)添加磁盘到卷
-
1、通过命令fdisk-l查看硬盘信息:#fdisk-l,发现硬盘为/dev/sdb大小4T。2、如果此硬盘以前有过分区,则先对磁盘格式化。命令:mkfs.文件系统格式-f/dev/sdb...
- 半虚拟化如何提高服务器性能(虚拟化 半虚拟化)
-
半虚拟化是一种重新编译客户机操作系统(OS)将其安装在虚拟机(VM)上的一种虚拟化类型,并在主机操作系统(OS)运行的管理程序上运行。与传统的完全虚拟化相比,半虚拟化可以减少开销,并提高系统性能。虚...
- HashMap底层实现原理以及线程安全实现
-
HashMap底层实现原理数据结构:HashMap的底层实现原理主要依赖于数组+链表+红黑树的结构。1、数组:HashMap最底层是一个数组,称为table,它存放着键值对。2、链...
- long和double类型操作的非原子性探究
-
前言“深入java虚拟机”中提到,int等不大于32位的基本类型的操作都是原子操作,但是某些jvm对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。其实这里的某些jvm是指...
- 数据库DELETE 语句,还保存原有的磁盘空间
-
MySQL和Oracle的DELETE语句与数据存储MySQL的DELETE操作当你在MySQL中执行DELETE语句时:逻辑删除:数据从表中标记为删除,不再可见于查询结果物理...
- 线程池—ThreadPoolExecutor详解(线程池实战)
-
一、ThreadPoolExecutor简介在juc-executors框架概述的章节中,我们已经简要介绍过ThreadPoolExecutor了,通过Executors工厂,用户可以创建自己需要的执...
- navicat如何使用orcale(详细步骤)
-
前言:看过我昨天文章的同鞋都知道最近接手另一个国企项目,数据库用的是orcale。实话实说,也有快三年没用过orcale数据库了。这期间问题不断,因为orcale日渐消沉,网上资料也是真真假假,难辨虚...
- 你的程序是不是慢吞吞?GraalVM来帮你飞起来性能提升秘籍大公开
-
各位IT圈内外的朋友们,大家好!我是你们的老朋友,头条上的IT技术博主。不知道你们有没有这样的经历:打开一个软件,半天没反应;点开一个网站,图片刷不出来;或者玩个游戏,卡顿得想砸电脑?是不是特别上火?...
- 大数据正当时,理解这几个术语很重要
-
目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢?今天我们就来聊聊那些避不开的大数据技术术语,梳理并...
- 秒懂列式数据库和行式数据库(列式数据库的特点)
-
行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hb...
- AMD发布ROCm 6.4更新:带来了多项底层改进,但仍不支持RDNA 4
-
AMD宣布,对ROCm软件栈进行了更新,推出了新的迭代版本ROCm6.4。这一新版本里,AMD带来了多项底层改进,包括更新改进了ROCm的用户空间库和AMDKFD内核驱动程序之间的兼容性,使其更容易...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)