虚拟化介绍

虚拟化理论介绍

什么是虚拟化:

虚拟化(Virtualization)技术最早出现在 20 世纪 60 年代的 IBM 大型机系统。

在70年代的 System 370 系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。

随着近年多核系统、集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了 IT 成本,而且还增强了系统安全性和可靠性。

常用的虚拟化产品:

1.Kvm(redhat)企业级

2.Vmware:

Vmware-workstation(windows和linux)桌面级

Vmware-fusion(mac)

Vmware-esxi(企业级别)本身就是一个操作系统

3.hyper-v(微软)

4.Ovm(oracle公司–Windows linux) virtulbox

5.Xen(rhel6之前所有版本默认用的虚拟化产品)

虚拟化技术的分类:

平台虚拟化(Platform Virtualization),针对计算机和操作系统的虚拟化//针对计算机操作系统。

资源虚拟化(Resource Virtualization),针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。

应用程序虚拟化(Application Virtualization),包括仿真、模拟、解释技术等,把硬件的东西变成了一个应用。

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor(虚拟监控器VMM) 或Hypervisor,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。

平台虚拟化类型:

操作系统虚拟化:有一个非常常见的操作系统叫openvz。特点是所有的虚拟机共享宿主机的内核。

全虚拟化(Full Virtualization):

全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统,或其它系统软件,完全不做任何修改就可以在虚拟机中运行。

现在的kvm与vmware都支持全虚拟化

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

半虚拟化(Para Virtualization):

半虚拟化(也叫超虚拟化)是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。因为操作系统自身能够与虚拟进程进行很好的协作。

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

硬件辅助虚拟化:

硬件辅助虚拟化是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。

企业级虚拟化与桌面级虚拟化的区别:

桌面级虚拟化:

App —在安装APP,通过App实现各种功能

guestos —客户机也叫客户操作系统

vmware-workstation(hypervisor(虚拟机管理程序)+图形管理工具)

os

硬件

企业级虚拟化:

App(图形管理工具)

guestos

os+hypervisor:在操作系统级别加上了虚拟机管理程序

硬件

KVM虚拟化技术简介

image-20240302153501027

KVM 针对运行在 x86 硬件上的、驻留在内核中的虚拟化基础结构。

KVM 是第一个成为原生 Linux 内核(2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。

KVM 是作为内核模块实现的

KVM安装

KVM虚拟化技术简介

kvm架构图

image-20240302153532412

从rhel6开始使用 直接把kvm的模块做成了内核的一部分

xen用在rhel6之前的企业版中 默认内核不支持,需要重新安装带xen功能的内核

KVM 针对运行在 x86 硬件上的、驻留在内核中的虚拟化基础结构。KVM 是第一个成为原生 Linux 内核(2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。

这个 hypervisor 提供 x86 虚拟化,同时拥有到 PowerPC® 和 IA64 的通道。另外,KVM 最近还添加了对对称多处理(SMP)主机(和来宾)的支持,并且支持企业级特性,比如活动迁移(允许来宾操作系统在物理服务器之间迁移)。

KVM 是作为内核模块实现的,因此 Linux 只要加载该模块就会成为一个hypervisor。KVM 为支持 hypervisor 指令的硬件平台提供完整的虚拟化(比如 Intel® Virtualization Technology [Intel VT] 或 AMD Virtualization [AMD-V] 产品)。KVM 还支持准虚拟化来宾操作系统,包括 Linux 和 Windows®。

这种技术由两个组件实现。第一个是可加载的 KVM 模块,当在 Linux 内核安装该模块之后,它就可以管理虚拟化硬件,并通过 /proc 文件系统公开其功能。第二个组件用于 PC 平台模拟,它是由修改版 QEMU 提供的。QEMU 作为用户空间进程执行,并且在来宾操作系统请求方面与内核协调。

当新的操作系统在 KVM 上启动时(通过一个称为 kvm 的实用程序),它就成为宿主操作系统的一个进程,因此就可以像其他进程一样调度它。但与传统的 Linux 进程不一样,来宾操作系统被 hypervisor 标识为处于 “来宾” 模式(独立于内核和用户模式)。

每个来宾操作系统都是通过 /dev/kvm 设备映射的,它们拥有自己的虚拟地址空间,该空间映射到主机内核的物理地址空间。如前所述,KVM 使用底层硬件的虚拟化支持来提供完整的(原生)虚拟化。I/O 请求通过主机内核映射到在主机上(hypervisor)执行的 QEMU 进程。

KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统.

硬件的虚拟化支持来提供完整的(原生)虚拟化。I/O 请求通过主机内核映射到在主机上(hypervisor)执行的 QEMU 进程。

KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/423037.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络仿真(一)

网络仿真的意义 在网络规划和设计、网络设备研发、网络协议开发中,需要一种手段来反映和预测网络的性能 网络仿真可以提高网络规划设计的可靠性和准确性,明显降低网络投资风险,减少不必要的浪费 Ns-2 is a discrete event simulator Sched…

Page Object模式:为什么它是Web自动化测试的必备工具

为 UI 页面写测试用例时(比如 web 页面,移动端页面),测试用例会存在大量元素和操作细节。当 UI 变化时,测试用例也要跟着变化, PageObject 很好的解决了这个问题。 使用 UI 自动化测试工具时(包…

LabVIEW石油钻机提升系统数字孪生技术

LabVIEW石油钻机提升系统数字孪生技术 随着数字化、信息化、智能化的发展,石油钻采过程中的石油钻机数字化技术提升成为了提高钻井效率、降低生产成本的重要途径。基于中石油云平台提供的数据,采用数字孪生技术,对石油钻机提升系统进行数字化…

配置之道:深入研究Netty中的Option选项

欢迎来到我的博客,代码的世界里,每一行都是一个故事 配置之道:深入研究Netty中的Option选项 前言Option的基础概念ChannelOption与Bootstrap Option常见的ChannelOption类型ChannelConfig的使用Option的生命周期不同传输协议的Option 前言 在…

云时代【7】—— 存储卷

云时代【7】—— 存储卷 四、Docker(四)存储卷1. 存储卷(1)定义(2)分类 2. 相关指令(1)管理卷 VolumeA. 创建方式方式一:docker volume方式二:docker run -v …

美国教授查理曼说中国为何强大?中国人都不知道的民族特性

Title: 中国强大的秘密:查理曼教授的视角 在世界历史的长河中,中华民族以其辉煌灿烂的文化和举世瞩目的成就,书写了一篇篇传奇篇章。然而,对于中国人为什么能够取得如此卓越的成就,许多人却并不清楚。近日&#xff0c…

Linux搭建SFTP服务器

案例:搭建SFTP服务器 SFTP(SSH文件传输协议) SFTP(SSH文件传输协议)是一种安全的文件传输协议,用于在计算机之间传输文件。它基于SSH(安全外壳协议)的子系统,提供了加密的…

sqlserver保存微信Emoji表情

首先将数据库字段,设置类型为 nvarchar(200)一个emoji表情,占4字节就可以了,web前端展示不用改任何东西,直接提交数据保存;回显也会没有问题,C#代码不用做任何处理; 不哭不闹要睡觉&#x1f31…

若依框架使用mars3d的环境配置,地球构建

因项目需要,原本使用过的cesium依赖,现在想使用火星科技mars3d的一些功能,所以需要引入mars3d依赖,整个过程非常的坎坷,以至于我都不知道到底是哪些部分是标准的。。。先把我认为对的记录一下: 1.vue.conf…

【Java】SpringAOP —— AOP是什么? 代码实现了SpringAOP

文章目录 一、AOP是什么二、AOP的组成三、SpringAOP四、实现SpringAOP1.添加AOP框架支持2.定义切面切点3.定义相关通知 总结 一、AOP是什么 AOP(Aspect Oriented Programming):面向切面编程,它是⼀种思想,它是对某一类…

JVM 第四部分—垃圾回收相关概念 2

System.gc() 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 然而System.gc()调用附带一个免责声明,无法保证对垃…

基于Camunda实现bpmn 2.0各种类型的任务

基于Camunda实现bpmn中各种类型任务 ​ Camunda Modeler -为流程设置器(建模工具),用来构建我们的流程模型。Camunda Modeler流程绘图工具,支持三种协议类型流程文件分别为:BPMN、DMN、Form。 ​ Camunda Modeler下载…

【Python】进阶学习:pandas--isin()用法详解

【Python】进阶学习:pandas–isin()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅…

【java】20:枚举

枚举的二种实现方式 1) 自定义类实现枚举 2) 使用 enum 关键字实现枚举 自定义实现枚举: 1.不需要提供setXxx方法,因为枚举对象值通常为只读. 2.对枚举对象/属性使用final static共同修饰,实现底层优化. 3.枚举对象名通常使用全部大写&…

电子电气架构——汽车以太网诊断路由汇总

电子电气架构——汽车以太网诊断路由汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会将…

江科大stm32学习笔记——【4-1】OLED

一.原理 1.调试方式 串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息。 显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上。 Keil调试模式:借助Keil软件的调…

深入sizeof与strlen

一、sizeof与strlen的对比 sizeofstrlensizeof是单目操作符strlen是库函数,使用需要包含头文件string.hsizeof计算操作数所占用的内存,单位是字节strlen是求字符串长度,统计的是\0之前字符的个数不关注内存中存放什么数据 关注内存总是否有\0…

关于 HTTP 协议,你了解多少

HTTP协议 FastAPI 是建立在 HTTP 协议之上,所以为了更好的掌握 FastAPI。我们需要先简单的了解一下 HTTP协议 简介 HTTP(Hypertext Transfer Protocol)遵循经典的客户端-服务器模型,客户端打开连接以发出请求,然后等…

Linux内核队列queue.h

文章目录 一、简介二、SLIST单向无尾链表2.1 介绍2.2 操作2.3 例子 三、STAILQ单向有尾链表四、LIST双向无尾链表五、TAILQ双向有尾链表六、CIRCLEQ循环链表七、queue源码参考 一、简介 queue.h是一个非常经典的文件,定义了一系列宏的操作,它定义了一系…

复盘昨天的内容

vue调节css 后端做业务处理 1.分类管理 GetMapping("/queryCtc")public ApiResult queryCtc(){return ctcService.queryCtc();}/*** 修改类目信息* return*/PutMapping("/updateCtc")public ApiResult updateCtc(RequestBody ShopCtc shopCtc){return c…