云计算的学习(二)

二、计算虚拟化

1.计算虚拟化的介绍

1.1虚拟化简介

a.什么是虚拟化

将物理设备逻辑化,转化成文件或者文件夹,这个文件或文件夹一定包含两个部分:一部分用于记录设备配置信息,另一部分记录用户数据。

虚拟机摆脱了服务器的禁锢,允许虚拟机在集群内迁移。

b.计算虚拟化发展史

在这里插入图片描述

c.计算虚拟化中的重要概念

在这里插入图片描述

Host Machine:物理机;一定需要转配操作系统(Host OS)

Hypervisor:虚拟化软件层/虚拟机监控机(Virtual Machine Monitor,VMM);虚拟化核心,负责监控虚拟机状态,给虚拟机分配CPU,以及IO虚拟化。

Guest Machine:虚拟出来的虚拟机。

Guest OS:虚拟机操作系统。

d.计算虚拟化的分类

①裸金属型虚拟化(Bare Metal Server,BMS,Ⅰ型模型)
在这里插入图片描述

Hypervisor可以直接调用硬件资源,不需要底层的Host OS,也可以理解为在Ⅰ型虚拟化中Hypervisor本身就是一个定制的Host OS,除了能够起到VMM的作用以外,一般不能在这个Host OS上安装其他的应用。

Hypervisor主要实现两个基本的功能,首先是识别、捕获、响应虚拟机所发出的CPU特权指令或保护指令,其次是负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。

Hypervisor将负责管理所有的资源和虚拟环境,VMM可以作为一个为虚拟化而生的完整的操作系统,掌控的所有资源(内存、CPU、IO设备等),还承担管理资源的重任,向上提供虚拟机用于运行Guest OS,向下负责与硬件的对接。

**主要产品:**VMware ESXI 、Proxmox VE、Microsoft Hyper-V、阿里云神龙、华为云BMS、腾讯云黑石

**优点:**虚拟机不依赖于操作系统;兼容性好,支持多种操作系统和应用;性能好,损耗低

**缺点:**虚拟化内核开发难度大

②宿主型虚拟化(Host-based Model,Ⅱ型模型)
在这里插入图片描述
此模型的物理资源由Host OS管理,虚拟化功能由VMM提供,VMM是底层操作系统(Host OS)上一个普通的应用程序,通过VMM创建相应的虚拟机共享底层的服务器资源,VMM通过调度Host OS的服务获取资源,实现内存、CPU、IO设备的虚拟化,VMM创建出的虚拟机通常作为Host OS的一个进程参与调度。

主要产品:VMware Workstation 、 VirtualBox、Parallels Desktop

优点:简单,易于实现

缺点:安装和应用依赖于组件的操作系统对设备的支持;管理开销大;性能损耗大

e.虚拟化的特点

image.png

分区:一台服务器可以分出很多虚拟机,每太虚拟机拥有自己的操作系统,它们互相间是不干扰的,每个操作系统只能看到它自己的被分配资源(CPU、内存、网卡等)。

隔离:一台服务器上运行了多个Guest OS,如一个Guest OS被攻击,其他Guest OS不受影响,可以正常运行。

封装:虚拟化本质就是将一台服务器逻辑划分成多个文件或文件夹,每个虚拟机都是一个文件夹,里面会分为很多个文件,这就是封装。封装完就可以将操作系统和硬件进行解耦,操作系统就可以跨硬件运行。

独立:当创建一个虚拟机,会产生一个文件夹,当把这个文件夹拷贝到另一台主机指定目录下,也可以正常运行。

1.2计算虚拟化的领域

a.CPU虚拟化

①CPU分级保护域
在这里插入图片描述
在CPU的分级保护域中,CPU被分成了4个环/权限, RING设计的初衷是将系统权限与程序分离出来,使之能够让OS更好的管理当前系统资源,也使得系统更加稳定。

在虚拟化中HostOS和GuestOS或者Hypervisor也是操作系统,应该都具有Ring 0权限,硬件不知道该听谁的指令,这时候引用一种全新指令——敏感指令,具有两种解决方案:全虚拟化和半虚拟化

②全虚拟化
在这里插入图片描述
Guest OS执行敏感指令时Hypervisor也会获取到消息,Hypervisor将指令翻译后再执行敏感指令的执行,调用硬件并将结果返回给Guest OS。

缺点:全虚拟化过程中Guest OS不知道自己时虚拟机执行了一次命令,Hypervisor也翻译并执行了命令,相当于执行了两次命令,所以有一定的性能消耗。

③半虚拟化
在这里插入图片描述

Guest OS发现是敏感指令后调用超级调用(Hypercall),将敏感指令下放给Hypervisor,Hypervisor执行敏感指令,调用硬件并将结果返回给Guest OS。

缺点:很多闭源的操作系统不支持半虚拟化(如:Windows)。

④硬件虚拟化

CPU不再将保护域分为Ring 0到Ring 3,而是分为root模式和非root模式,每个root模式都拥有Ring 0和Ring 3的权限,Guest OS运行在非root模式下的Ring 0上,Host OS运行在root模式下的Ring 0上。

b.内存虚拟化

物理内存面对主机上的多个虚拟机对内存的需求无法解决,因此出现了内存虚拟化。

物理主机分配内存的地址空间时要从0开始,并且内存地址空间是连续的,但是引入虚拟化后,无法满足所有虚拟机对内存使用都从物理地址的0开始的续期需求,也很难保证内存的连续性。

解决办法是进行地址的映射,做内存虚拟化时引入一个新的地址空间,让虚拟机误认为在这里插入图片描述
运行在真实的物理空间中,实际上它看到的是VMM映射给虚拟机的虚拟内存;每个虚拟机都感觉地址是连续的,其实在物理机侧是离散的,而这些都是通过VMM实现的。

c.IO虚拟化

IO虚拟化有三种类型:模拟、半虚拟化、IO透传

①模拟(完全虚拟):完全使用软件来模拟真实硬件,模拟通常硬件,例如鼠标键盘,通过焦点捕获,焦点被哪个主机捕获就被哪个主机使用,性能很差

②半虚拟化:对硬件驱动由前端(IO frontend)直接转到后端(IO backend)通用,通常仅使用于硬盘和网卡,性能高

③IO-through:IO透传,直接分配给虚拟机物理设备,例如直接分配一个硬盘或网卡给虚拟机,需要硬件具备IO透传技术,在xen下由Dom0分配,但是访问使用直接使用,不经过Dom0,需要硬件支持

1.3虚拟化与云计算的区别

虚拟化是为了提高硬件的利用率,将一台物理主机虚拟成多台逻辑主机,可以单独运行不同的应用,由于虚拟的主机逻辑被成一个文件或文件夹,打破了软硬件的强耦合,通过自动迁移文件或文件夹可以提高运行在虚拟机上的业务的。

在云计算中使用虚拟化来单纯地实现IaaS的云服务,一部分的IaaS和Paas是基于虚拟化来实现的,另一部分是基于物理硬件和分布式计算来实现的。

1.4主流计算虚拟化技术

在这里插入图片描述
在这里插入图片描述

KVM:全虚拟化,是Linux内核中的一个模块,用于实现CPU和内存的虚拟化,是Linux的一个进程,其他IO设备需要KVM来实现)。

Xen:全虚拟化/半虚拟化,直接运行在硬件上的,Xen中的虚拟机分为两类:Dom0与DomU;Dom0是一个特权虚拟机,具有直接访问硬件和管理其他DomU的权限,在其他虚拟机启动之前Dom0需要被提前启动;DomU是普通的虚拟机,不能直接访问硬件资源,所有的操作都需要前后端驱动的方式转发给Dom0,再由Dom0完成具体的操作后将结果返回给DomU。

2.KVM简介

2.1什么是KVM

在这里插入图片描述

KVM全称为Kernel-based Virtual Machine,是基于内核的虚拟机,是一种典型的Ⅱ型的全虚拟化,当一个普通的Linux安装了该模块后,会增加三种运行模式,分别是:虚拟模式、用户模式、内核模式。

虚拟模式:主要指虚拟机,包括虚拟机的CPU、内存、磁盘等虚拟设备,被置于一种受限的CPU的模式。

用户模式:主要运行KVM,为虚拟机模拟执行IO类的操作求。

内核模式:可以进行硬件操作,当Guest OS执行IO类操作或特权指令操作的时候,需要向用户模式提交请求,再由用户模式再次发起请求,发送给内核模式,从而进行真正的操作。

2.2KVM的体系

KVM通常被分为三部分:管理工具、KVM、QEMU

在这里插入图片描述
管理工具:用于管理虚拟机的硬件资源。

KVM:实现CPU虚拟化和内存虚拟化。

QEMU:实现IO虚拟化。

2.3Libvirt

在这里插入图片描述

Libvirt是一个强大的管理工具,可以管理虚拟平台,包括KVM、Xen、VMware、Hyper-V等。虚拟平台本身不支持多种语言的运行,Libvirt支持各种开发语言的接口,接通Libvirt便于各种开发语言的插件应用于虚拟平台上。

2.4KVM I/O操作流程-默认

image.png

  1. Guest OS发起一个操作请求发送给虚拟的设备驱动
  2. KVM模块里面有个I/O Trap code,它会捕获这个IO请求
  3. 捕获后KVM将IO请求放到I/O共享页中
  4. 同时KVM也会通知QEMU,QEMU会到I/O共享页中获取这个请求,并查看IO请求的具体需求
  5. QEMU根据IO请求进行模拟,向真实的设备驱动发一个请求
  6. 设备驱动收到QEMU的请求后,会交付给物理硬件处理这个请求
  7. 处理完成后,QEMU将处理结果放到I/O共享页中
  8. 同时通知KVM模块处理结果
  9. KVM模块从I/O共享页中取出结果,并发送给虚拟的设备驱动
  10. 虚拟的设备驱动根据结果进行模拟,并将模拟结果发送给Guest OS,这样整个IO请求就完成了

2.5KVM I/O操作流程-Virtio

让Guest OS与QUEM直接联络不经过KVM,可以简化请求步骤,提高性能。

在Virtio中,IO请求和QEMU返回不再经过KVM,而放在一个叫vring的空间中,这就是半虚拟化。

在这里插入图片描述

3.FusionCompute简介

3.1FusionCompute架构

image.png

FC架构和KVM架构很相似,都是管理工具来管理产品,FC的管理工具是VRM,VRM可以给管理员和用户提供web的图形化管理界面,在上面可以看到虚拟机的状态、虚拟资源池的状态、物理硬件的信息、虚拟机的信息等。

集群向上提供了计算资源、存储资源、网络资源

3.2FusionCompute优势

①可以对虚拟化和物理资源统一管理

②通过VRM可以快速发放虚拟机,复制、模板等

3.3FusionCompute组件

FC由两大组件构成,分别是VRM和CAN

组件功能
CNA①提供虚拟计算
②管理计算节点上的虚拟机
③关机计算节点上的计算、存储、网络资源
VRM①管理集群内的块存储资源
②管理集群内的网络资源(IP/vlan),为虚拟机分配地址
③管理集群内虚拟机的生命周期及虚拟机在计算节点上的分布与迁移
④管理集群内资源的动态调整
⑤通过对虚拟资源、用户数据的统一管理,对外提供弹性计算、存储、网络等服务
⑥通过提供统一的维护管理接口,操作维护人员通过web管理界面远程访问操作

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

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

相关文章

性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列) 配置 Jmeter 进行测试 发布/订阅 (Topic 队列) 配置发布 Publisher 配置订阅 Subscriber 总结 前言 JMeter是一个功能强大…

全方位对比 Postgres 和 MySQL (2023 版)

根据 2023 年 Stack Overflow 调研,Postgres 已经取代 MySQL 成为最受敬仰和渴望的数据库。 随着 Postgres 的发展势头愈发强劲,在 Postgres 和 MySQL 之间做选择变得更难了。 如果看安装数量,MySQL 可能仍是全球最大的开源数据库。 Postgre…

Windows环境下安装Nacos

文章目录 一、什么是Nacos1. 主要特点:1.1 服务发现和注册:1.2 配置管理:1.3 服务管理:1.4 多语言支持:1.5 高可用性和扩展性: 二、Windows下安装单机版Nacos1. 安装包下载:2. 目录文件说明&…

冒泡排序模拟实现qsort()函数

冒泡排序模拟实现qsort函数 前言1. 分析2. 解决一,如何接受不同数据3. 解决二,如何实现不同数据的比较4. 解决三,如何实现不同数据交换5. 模拟bubble_sort()函数排序整型所有代码实现6. 结构体排序实现7. 结尾 前言 要…

Android Studio无法打开问题解决记录

目录 1 问题起因2 发现问题3 解决问题 1 问题起因 问题的起因是我为了运行一个Kotlin项目,但是报了一个错误: Kotlin报错The binary version of its metadata is 1.5.1, expected version is 1.1.16 然后我就上百度去搜了以下,一篇博客让禁用…

http-server 的安装与使用

文章目录 问题背景http-server简介安装nodejs安装http-server开启http服务http-server参数 问题背景 打开一个文档默认使用file协议打开,不能发送ajax请求,只能使用http协议才能请求资源,所以此时我们需要在本地建立一个http服务&#xff0c…

低代码在边缘计算工业软件中的应用

近年来,边缘计算给工业现场带来了许多新的变化。由于计算、储存能力的大幅提升,边缘计算时代的新设备往往能够胜任多个复杂任务。另外,随着网络能力的提升,边缘设备与设备之间、边缘设备与工业互联网云平台之间的通讯延迟与带宽都…

Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: 1、什么是插件化? 能运行的宿主APP去加载没有下载的APK文件…

SAP从放弃到入门系列之生产订单拆分

文章目录 一、概述二、订单拆分功能前世今生三、订单拆分不同版本的差异3.1 版本 603 以下的订单拆分3.2 自604 起版本的订单拆分 四、订单拆分实例4.1 数据准备4.2 拆分操作-到仓库的分解(SPLT_OS)4.2 拆分操作-到其他物料的分解(SPLT_DP&am…

【STM32MP135】修改10.1寸屏1280x800分辨率配置,解决fb_size过小导致运行崩溃

文件路径:u-boot-stm32mp-v2021.10-stm32mp1-r1/configs/stm32mp13_defconfig

基于深度学习的高精度工人安全帽检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度工人安全帽检测识别系统可用于日常生活中或野外来检测与定位工人安全帽目标,利用深度学习算法可实现图片、视频、摄像头等方式的工人安全帽目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用…

使用Dreambooth LoRA微调SDXL 0.9

本文将介绍如何通过LoRA对Stable Diffusion XL 0.9进行Dreambooth微调。DreamBooth是一种仅使用几张图像(大约3-5张)来个性化文本到图像模型的方法。 本教程基于通过LoRA进行Unet微调,而不是进行全部的训练。LoRA是在LoRA: Low-Rank Adaptation of Large Language …

2023届网络安全岗秋招面试题及面试经验分享

Hello,各位小伙伴,我作为一名网络安全工程师曾经在秋招中斩获🔟个offer🌼,并在国内知名互联网公司任职过的职场老油条,希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2023年秋招已经到了金…

Python应用实例(一)外星人入侵(八)

外星人入侵(八) 1.添加Play按钮1.1 创建Button类1.2 在屏幕上绘制按钮1.3 开始游戏1.4 重置游戏1.5 将play按钮切换到非活动状态1.6 隐藏鼠标光标 我们添加一个Play按钮,用于根据需要启动游戏以及在游戏结束后重启游戏,还会修改这…

剖析C语言字符串函数(超全)

目录 前言: 一、strlen函数 功能: 参数和返回值: 注意事项: 返回值是无符号的易错点: strlen函数的模拟实现 1、计数器算法 2、递归算法 3、指针减去指针 二、strcpy函数 功能: 参数和返回值 …

124、仿真-基于51单片机智能电表系统设计(Proteus仿真+程序+原理图+配套资料等)

方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节…

盖子的c++小课堂——第十八讲:栈

目录 前言 栈的定义 栈,是什么? 例1-弹夹 问题 例2-停车场 问题 栈的概念 空栈 进栈、出栈 特点 例题 车厢调度 如何操作 数组模拟栈 入栈 出栈 栈的基本操作 判断空栈 求栈的元素数量 读栈顶元素 总结 前言 OK呀,说到做…

银河麒麟服务器v10 sp1 部署 redis 及redis gui 客户端工具

上一篇:银河麒麟服务器v10 sp1 redis开机自动启动_csdn_aspnet的博客-CSDN博客 本文介绍另一种redis安装方式及客户端工具安装。 Redis 是一种内存数据模型存储,可用作数据库、缓冲区和消息传递中继。它是开源的(BSD 许可)。字符…

大模型基础:理论与技术的演进概述

大模型基础:理论与技术的演进概述 人工智能发展历程 人工智能发展历程可以概括为以下几个主要阶段: 起源阶段(1956-1980年代),这一时期被称为人工智能的“黄金时代”, 达特茅斯会议首次提出人工智能概念, 开发出传统人工智能系统, 如ELIZA、深蓝等。知…

Java设计模式之行为型-命令模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 1、基本实现 2、点餐案例 五、总结 一、基础概念 1、将一个请求封装为一个对象,使您可以用不同的请求对客户进行参数化。 2、对请求排队或记录请求日志,以及支持可撤销的操作。 3、…