虚拟化的基础知识

目录

虚拟化基础

虚拟化的概念

虚拟化的特征(本质)

虚拟机的两大派别

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.rhkb.cn/news/176475.html

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

相关文章

RecyclerView自定义LayoutManager从0到1实践

此前大部分涉及到 RecyclerView 页面的 LayoutManager基本上用系统提供的 LinearLayoutManager 、GridLayoutManager 就能解决,但在一些特殊场景上还是需要我们自定义 LayoutManager。之前基本上没有自己写过,在网上看各种源码各种文章,刚开始…

ps磨皮插件放在哪个文件夹,ps的磨皮插件在哪打开

s磨皮插件一般是第三方软件,通过安装的方式放在ps的相关文件夹中。但也有一些插件是放置在系统软件目录的,不与ps文件放在一起。本文会给大家具体介绍以上两种不同的情况,方便大家了解ps磨皮插件放在哪个文件夹,ps的磨皮插件在哪打…

Java日志组件之三Log4j2漏洞剖析及重现

一、前言 这一篇我们来介绍一下史上第二严重的安全漏洞是个什么情况,原理是什么,如何重现。 二、Log4j2 Lookup机制 Log4j2 Lookup机制最重要的功能就是提供一个可扩展的方式让你可以添加某些特殊的值到日志中。你调用logger.info(name);这样的语句&a…

Java集合操作集锦

原文链接 Java集合操作集锦 集合是最为常见的容器,在日常工作之中经常用到,一些集合的常规操作以及不同的集合之间的转换,虽然看似是基础中的基础,但实践中会发现并不是那么显而易见的,特别是涉及boxing的时候&#x…

B-5:网络安全事件响应

B-5:网络安全事件响应 任务环境说明: 服务器场景:Server2216(开放链接) 用户名:root密码:123456 1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交; 通过nmap扫描我们发现开启了22端口,…

Android底层摸索改BUG(二):Android系统移除预置APP

首先我先提供以下博主博文,对相关知识点可以提供理解、解决、思考的 Android 系统如何预装第三方应用以及常见问题汇集android Android.mk属性说明及预置系统app操作说明系Android 中去除系统原生apk的方法 取消预置APK方法一: 其实就是上面的链接3&a…

1-1 prometheus 概述

一、概述 二、特点 三、核心组件 四、基础架构 4.1 Prometheus 的主要模块包含 4.2 运行逻辑 五、Prometheus 与 Zabbix 的对比 六、总结 一、概述 1. 什么是prometheus? 开源系统监控 和 警报工具包受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Br…

Webpack打包图片-js-vue

文章目录 一、Webpack打包图片1.加载图片资源的准备2.认识asset module type3.asset module type的使用4.url-loader的limit效果 二、babel1.为什么需要babel2.babel命令行的使用3.babel插件的使用4.babel的预设preset5.babel-loader6.babel-preset 三、加载Vue文件1.编写App.v…

PHP连接SQLServer echo输出中文汉字显示乱码解决方法

1、查询结果有中文会显示乱码。 解决方法一&#xff08;较简单&#xff0c;建议使用&#xff09;&#xff1a; 在php文件最开头写上&#xff1a; header(Content-type: text/html; charsetUTF8); // UTF8不行改成GBK试试&#xff0c;与你保存的格式匹配 <?php header(&q…

回归算法|长短期记忆网络LSTM及其优化实现

本期文章将介绍LSTM的原理及其优化实现 序列数据有一个特点&#xff0c;即“没有曾经的过去则不存在当前的现状”&#xff0c;这类数据以时间为纽带&#xff0c;将无数个历史事件串联&#xff0c;构成了当前状态&#xff0c;这种时间构筑起来的事件前后依赖关系称其为时间依赖&…

正则表达式的使用实例

正则表达式的使用实例 1- 表示2- 实例 1- 表示 1, [:digit:] 表示0-9全部十个数字 //等价于 0123456789&#xff0c; 而不等价于[0123456789] 2, [[:digit:]] 表示任意一个数字 \{m,n\} 表示其前面的字符出现最少m次&#xff0c;最多n次的情况 \{3,\} 其前面的字符出…

泛积木-低代码 使用攻略

文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式&#xff08;总体把握&#xff09;讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限&#xff0c;在 系统设置 / 权限设置 菜单内&#xff0c;我们可以新增调整项目内的权限&#xff0c;默认拥有管理员和成员两…

前后端配合实现按钮级操作权限控制

背景 公司项目需要做到按钮级权限限制&#xff0c;至此有了该文&#xff0c;如有错误&#xff0c;请联系博主指出&#xff0c;多多感谢。 角色配置前后端操作 首先最基本的角色配置&#xff0c;配置该类角色有哪些菜单以及那些菜单的哪些按钮权限 菜单及菜单按钮由前端维护&a…

企业 Tomcat 运维 部署tomcat反向代理集群

一、Tomcat 简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c; Tomcat和Nginx、Apache(httpd)、Web服务器一样&#xff0c;具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器 一个tomcat默认并…

Docker之docker-compose(介绍,安装及入门示例)

文章目录 一、docker-compose介绍Compose 中有两个重要的概念&#xff1a; 二、docker-compose安装三、docker-compose简单示例参考网址&#xff1a; 一、docker-compose介绍 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。 Compo…

前度开发面试题

面试题总结 vue页面跳转会经过两个钩子函数beforeEach、afterEach 组见守卫 beforeRouteEnter前置组见守卫 *beforeRouteUpdate更新之前 watch和computed区别 数据没有改变&#xff0c;则 computed 不会重新计算&#xff09;。若没改变&#xff0c;计算属性会立即返回之前缓…

网际协议IP

网际协议IP 一、IP地址 1、分类的IP地址 IP地址::{<网络号>,<主机号>} 2、无分类编址CIDR IP地址::{<网络前缀>,<主机号>} &#xff08;1&#xff09;网络前缀 ​ 与分类IP最大的区别就是网络前缀的位数n是不固定的&#xff0c;可以是0~32位。 ​ …

月入8K, 计算机专业应届女孩转行5G网络优化工程师,她说:这行请慎入

小C说&#xff0c;如果要用两个字描述23年计算机专业的就业心情&#xff0c;那就是“焦虑”&#xff1b;用三个字描述23年计算机专业的就业环境&#xff0c;那就是“卷麻了”。 得益于张雪峰老师的就业推荐计算机专业需求的日益减少&#xff0c;2023年&#xff0c;计算机专业成…

三、 链表

一、链表的定义 链表是一种动态数据结果&#xff0c;内存分配不是在创建链表时一次性完成的&#xff0c;每添加一个节点&#xff0c;分配一次内存&#xff0c;由于没有闲置的内存&#xff0c;链表的空间效率高于数组 二、定义单向链表 struct ListNode {int m_nValue;ListNo…

DevChat:VSCode中基于大模型的AI智能编程助手

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 1. 前言2. 安装2.1 注册新用户2.2 在VSCode中安装DevChat插件2.3 设置Access Key 3. 实战使用4. 总结 1. 前言 DevChat是由Merico公司精心打造的AI智能编程助手。它利用了最先进的大语言模型技术&#xff0c;像人类…