虚拟化的基础知识

目录

虚拟化基础

虚拟化的概念

虚拟化的特征(本质)

虚拟机的两大派别

VMM讲解

虚拟化中的一些重要概念

VMM的功能以及分类

虚拟化的架构

寄居虚拟化

裸金属虚拟化

操作系统虚拟化

混合虚拟化

虚拟化的三个方向


虚拟化基础

虚拟化的概念

什么是虚拟化

虚拟化的本质是一种资源管理技术,将计算机的各种物理资源(如服务器、网络、内存存储等)抽象化后呈现出来,这些资源不受现有资源的架构方式、地域或物理设备所限制;然后将这些资源组合为一个或多个计算机的配置环境,打破了物理设备结构间不可切割的障碍

即:没有虚拟化前软硬件绑定,虚拟化后软硬件解耦(将软件和硬件模块分离,降低之间的依懒性)

虚拟化技术的实现就是在系统中加入一个虚拟化层,通过该层将下层的资源抽象为另一种形式的资源,提供给上层应用

云计算与虚拟化之间的关系

虚拟化是实现云计算的技术支撑手段之一,但并非云计算的核心关注点

虚拟化技术是云计算在Iass层具有商用价值的基础

虚拟化的优势

节省成本、更加有效的资源调配、提高了生产率、简化运维与管理、具有更高的灵活性与扩展性、应用程序的开发更容易与安全、业务故障恢复更容易

虚拟化的特征(本质)

分区

虚拟化层为多个虚拟机划分服务器资源,每个虚拟机可以同时运行一个单独的操作系统

对于虚拟机上的操作系统来说,都认为自己是运行在真实的物理机上的,因为它们能够检测到虚拟化层为其提供的”虚拟硬件”

隔离

一台虚拟机故障、中病毒都不会影响另一台虚拟机

封装(迁移所依赖的)

虚拟机的执行环境封装在独立文件中(例如虚拟机的内存、硬盘等都是以文件形式封装)

这样只需要对这些文件进行移动就可以移动虚拟机

相对于硬件独立(与硬件解耦)

由于虚拟机只能看到虚拟化层提供的“虚拟硬件”,而“虚拟硬件”不需要考虑物理服务器的情况,所以虚拟机就可以在任何的不同厂商服务器上运行(迁移需要保证使用的VMM虚拟化监视器是相同的)--不同架构服务器、不同操作系统下安装的VMM软件都是不同的,具体需要去相应的VMM软件官网查看(在下一节点讲解VMM)

虚拟机的两大派别

小聚大(计算能力融合)

将若干台服务器上的资源全部拿出来丢到一个资源池中,然后在该资源池上安装1个操作系统使用全部的资源;提升了服务器的整体性能

典型代表为Google

大聚小

将1个服务器分成若干个小的虚拟机;提高了资源利用率

典型代表为Amazon EC2


VMM讲解

虚拟化中的一些重要概念

Host Machine   物理机资源

Guest Machine  虚拟机资源

Host OS            物理机上运行的系统

Guest OS          虚拟机上运行的系统

Hypervisor        Hypervisor又称为虚拟机监控器(Vritual machine monitor缩写VMM)是一种运行在基础物理服务器和操作系统之间的中间软件层,能够允许多个操作系统和应用来共享同一硬件资源(即在虚拟化环境中管理各虚拟机的CPU、内存、I/O设备、指令集等);该软件层也被称为虚拟化层,是所有虚拟化技术的核心

VMM的功能以及分类

VMM的功能

虚拟资源

VMM通过底层硬件资源构建一个包含虚拟CPU、内存、硬盘、I/O等的虚拟环境

在该环境中的Guest OS认为自己运行在一台真的计算机上,并唯一拥有这台‘虚拟’机器上的所有资源

虚拟环境调度

VMM可以同时构建多个虚拟机,运行多个Guest OS并发执行,并通过策略来有效的调度资源

虚拟化环境的管理接口

VMM提供一组完备的管理接口来支持虚拟环境的创建、删除、暂停和迁移等功能

上层的管理通过调用VMM提供的管理接口,为用户提供管理界面

VMM的两种实现方式

Hypervisor VM——Ⅰ型虚拟化——裸机型虚拟化——无需操作系统

VMM直接运行在物理硬件上,聚焦虚拟I/0性能优化,主要用于服务器类的应用

运行效率高,VMM就作为主操作系统

例如:VMware ESX服务器版本、Xen 3.0及之后版本、Hyper-V都是该类型的VMM

不同的VMM软件类型及版本是运行在不同的架构服务器上(x86、RAM等架构)

Hosted VM ———Ⅱ型虚拟化——主机型虚拟化——需要操作系统

VMM运行在物理机的操作系统上,上层功能相对更加丰富,常用于桌面应用

运行效率低于Ⅰ型,不过VMM作为应用程序运行在主操作系统环境内,更加灵活

例如:VMware workstation、Xen 3.0以前版本、Oracle VMVirtualBox都是该类型的VMM

对于KVM属于1还是2型的VMM,目前存在争议,可作为混合型,暂且归为2型

以上Ⅱ型VMM既可以运行在Linux系统,也可以运行在Windows系统中


虚拟化的架构

即VMM的两种实现方式可以细分为以下四种实现方式;

Ⅱ型VMM可以细分为:寄居、混合、操作系统虚拟化,因为这三者都需要宿主机(即需要先安装一个操作系统)

Ⅰ型VMM分为:裸金属架构(不需要安装宿主操作系统)

寄居虚拟化

寄居虚拟化架构指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理;该虚拟化架构也称为Ⅱ型VMM

虚拟化层VMM可以看做一个软件,必须安装在操作系统之上才可以正常运行,兼容性高,易于实现;不过管理开销大,对性能的损耗大

例如:PC上使用的VMware Workstation,在硬件基础之上安装一个主操作系统也就是宿主操作系统,然后在操作系统上安装一个软件VMware Workstation来进行虚拟化,然后在软件上开启若干个虚拟机

厂商VMware Workstation、Hyper-V部分版本

裸金属虚拟化

裸金属虚拟化架构就是原生架构,直接将虚拟化VMM安装在硬盘上,接管服务器的所有资源;该虚拟化架构也称为Ⅰ型VMM

虚拟化层就作为主操作系统,仅仅负责和上层的虚拟机操作系统沟通以及资源协调,不用处理太复杂的事项,使得虚拟机性能和物理主机性能差不多;不过硬件的兼容性较差,虚拟层内核开发难度大

即:在物理服务器上直接安装虚拟化管理软件,然后在其上运行若干个虚拟机

厂商VMware EXS、Citrix Xen、FusionSphere、Hyper-V部分版本

操作系统虚拟化

划分一个宿主机操作系统的一部分,在该部分里面产生一个执行环境,然后在执行环境里面运行多个虚拟机(在操作系统上虚拟出一个个操作系统);大类上来说也属于Ⅱ型VMM

操作系统虚拟化架构就是把单个的操作系统划分为多个容器,使用容器管理器来进行管理

管理开销低;但是隔离性差,多容器共享同一操作系统

厂商Virtuozzo

混合虚拟化

将1个内核级的驱动插入到宿主操作系统的内核,这个驱动器作为虚拟硬件管理器来协调虚拟机和宿主操作系统之间的硬件访问,来实现虚拟化资源的调配;大类上来说也属于Ⅱ型VMM

混合虚拟化需要底层硬件支持虚拟化扩展功能

厂商Redhat KVM


虚拟化的三个方向

计算虚拟化

细分为CPU虚拟化、内存虚拟化、I/0虚拟化

CPU虚拟化:让虚拟机像物理机一样执行一些CPU指令(高危指令、用户指令)

内存虚拟化:内存虚拟化简单来说就是内存地址的管理

1/O虚拟化:将1个输入输出接口虚拟化为多个

存储虚拟化

细分为裸设备+逻辑卷、存储设备虚拟化、主机存储虚拟化+文件系统

网络虚拟化

细分为VMDQ、SSR-IOV等

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLO8实战:yolov8实现行人跟踪计数

本篇文章首先介绍YOLOV8实现人流量跟踪计数的原理,文末附代码 引言:行人跟踪统计是智能监控系统中的重要功能,可以广泛应用于人流控制、安全监控等领域。传统的行人跟踪算法往往受到光照、遮挡等因素的干扰,难以实现准确跟踪。随着深度学习技术的发展,目标检测模型逐渐成为…

Matlab2022b图文安装保姆级教程

注意:完成安装步骤1和步骤2之后,再去使用Matlab2022b 本次安装后的版本信息如下,64位软件,windows系统 Matlab2022a与2022b的比较 MATLAB主要用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险…

83. 删除排序链表中的重复元素、Leetcode的Python实现

博客主页:🏆看看是李XX还是李歘歘 🏆 🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今…

Python 中__name__ == ‘__main__‘使用说明

在学习C语言的时候,程序的运行是从main函数开始的,因此,功能代码一般写到main函数中,子程序如果想要调用,也需要在main函数中进行调用。 然而,Python语言中,程序从第一行就开始执行(定义函数除外…

紧急:发现NGINX Ingress Controller for Kubernetes中的新安全漏洞

导语 大家好,今天我要向大家紧急报告一则消息:我们在NGINX Ingress Controller for Kubernetes中发现了三个新的安全漏洞!这些漏洞可能被黑客利用,从集群中窃取机密凭据。在本文中,我们将详细介绍这些漏洞的细节&#…

百度文心一言搞起来

要快速使用文心一言,可以按照以下步骤: 了解文心一言:首先,你需要了解文心一言的基本功能和特点,包括它的语言处理能力、应用场景和优势等。这样可以帮助你更好地理解如何使用它。注册和登录:在开始使用文…

Jetpack:024-Jetpack中的滚动事件

文章目录 1. 概念介绍2. 使用方法2.1 高级事件2.2 低级事件 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中事件相关的内容,本章回中主要 介绍事件中的滚动事件。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍 我们在…

ROS自学笔记二十: Gazebo里面仿真环境搭建

Gazebo 中创建仿真实现方式有两种:1直接添加内置组件创建仿真环境2: 手动绘制仿真环境 1.添加内置组件创建仿真环境 1.1启动 Gazebo 并添加组件 1.2保存仿真环境 添加完毕后,选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录),文…

什么是开放数据?与数据共享的区别?

​什么是开放? 开放数据是一类可以被任何人免费使用、再利用、再分发的数据——在其限制上,顶多是要求署名和使用类似的协议再分发。 开放数据具有以下特点: 1.可获取性和可访问性:作品应当能够被完整获取,并且所需…

【算法练习Day34】整数拆分不同的二叉搜索树

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 整数拆分不同的二叉搜索树总…

TypeScript -类 -类的基本定义

类的基本概念 类 就是对象的抽象,是对象的模板。 对象 就是类的一个具体实现。比如 【学生】是一个类,每个学生都有姓名、年龄两个属性,每个学生都有一个方法 sayHi()。【小明】是一个【学生】,也就是【学生】类的一个对象&#…

P2503 [HAOI2006] 均分数据

Portal. 考虑一种随机贪心做法。为了让方差尽可能小,要让每一组数的大小尽量接近。所以对于新的一个 a i a_i ai​,把它加入到当前的和最小的一组里。 为了提高正确性,让分组的可能性变多,我们随机 shuffle 这个序列&#xff0…

【httpd】 Apache http服务器目录显示不全解决

文章目录 1. 文件名过长问题1.1 在centos中文件所谓位置etc/httpd/conf.d/httpd-autoindex.conf1.2 在配置文件httpd-autoindex.conf中的修改:1.3 修改完成后重启Apache: 1. 文件名过长问题 1.1 在centos中文件所谓位置etc/httpd/conf.d/httpd-autoindex…

论坛搭建.

目录 一.配置软件仓库 二.安装http php miriadb 三.配置数据库 四.源码拖拽并解压 五.防火墙通过 六.浏览器安装测试 七.界面参数设置 一.配置软件仓库 1.进入仓库目录 cd /etc/yum.repos.d 2.创建仓库文件 vim local.repo 3.在 local.repo中写入:(粘贴的时候注意位…

C++递归实现验证⼆叉搜索树

C递归实现验证⼆叉搜索树 文章目录 C递归实现验证⼆叉搜索树题目链接题目描述解题思路C算法代码: 题目链接 98. 验证二叉搜索树 - 力扣(LeetCode) 题目描述 给你⼀个⼆叉树的根节点root,判断其是否是⼀个有效的⼆叉搜索树。 有效⼆…

吐血整理,Jmeter接口测试-项目案例场景,直接上高速...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 场景一&#xff1…

go 打包运行文件在windows,liunx运行

go 打包windows exe运行文件 1,如果设置过其他系统环境 就要重新设置设置系统环境$env:GOOS "windows"$env:GOARCH "amd64"2,在主函数同目录进行打包 指定main.go为入口主函数go build -o goweb.exe main.go比如src/main.go就在s…

如何优雅的开发?低代码搭建应用如此轻松

目录 一、前言 二、低代码平台体验简述 三、关于平台 四、场景及用户分析 五、产品分析 1、着重讲一下JNPF的编辑器 2、业务流程 六、最后,说些心里话 一、前言 低代码平台改变了应用交付和管理的模式,大幅缩减交付周期,最终帮助业务…

AcWing第 127 场周赛 - AcWing 5283. 牛棚入住+AcWing 5284. 构造矩阵 - 模拟+快速幂+数学

AcWing 5283. 牛棚入住 题目数据范围不大&#xff0c;直接暴力模拟即可 按照题目所说的意思即可。 #include <math.h> #include <stdio.h> #include <algorithm> #include <cstring> #include <iostream> using namespace std; const int N 1…

Docker底层原理:Cgroup V2的使用

文章目录 检查 cgroup2 文件系统是否已加载检查系统是否已挂载 cgroup2 文件系统创建 cgroup2 层次结构查看 cgroup2 开启的资源控制类型启用 cgroup2 资源控制设置 cgroup2 资源限制加入进程到 cgroup2 检查 cgroup2 文件系统是否已加载 cat /proc/filesystems | grep cgroup…