云计算——虚拟化层架构

news2024/11/28 0:37:45

  • 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 

  •  座右铭:低头赶路,敬事如仪

  • 个人主页:网络豆的主页​​​​​

 前言

本章将会讲解云计算的虚拟化层架构,了解云计算虚拟化层都有哪些架构模式。


一.虚拟化层架构

  • 虚拟化层架构:全虚拟化,半虚拟化,硬件辅助虚拟化

  • KVM--------》全虚拟化
  • Xen----------》半虚拟化
  • CPU(AMD,Intel)-------------》硬件辅助虚拟化

架构一:全虚拟化

全虚拟化:即所抽象的vm具有完全的物理特性,虚拟化层负责捕获CPU指令,为指令访问硬件充当媒介。

它使用虚拟机协调客户操作系统和原始硬件。全虚拟化是通过客户机和宿主机之间一个虚拟化逻辑层Hypervisor来完全模拟底层硬件细节。全虚拟化表示的是整个虚拟化都是用软件实现的。

 典型的有:VMware,Virtyalbox,virtual PC, KVM-x86

 VirtualBox是一款开源的虚拟机软件,使用者可以在VirtualBox上安装并且执行SolarisWindows、DOS、Linux、OS/2Warp、BSD等系统作为客户端操作系统。

 KVM-x86是基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux的一个内核模块,该内核模块使得Linux变成了一个Hypervisor。它支持x86 (32 and 64 位), s390, Powerpc等CPU。

特点:

  • OS无需修改。
  • 速度和功能都非常不错,使用非常简单。
  • 移植性好。

全虚拟化:KVM

KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术,可以直接将Linux内核转化为Hypervisor。从而使得Linux内核能够直接管理虚拟机,直接调用Linux内核中的内存管理,进程管理子系统来管理虚拟机。

组成:由处于内核态的KVM模块(CPU虚拟化,内存虚拟化,接口)和用户态的QEMU两部分组成。

QWMU由KVM.ko所提供的接口完成其他的虚拟化(IO虚拟化,网络虚拟化)都是由QWMU组成。

  • 第一部分:内存,CPU,接口,虚拟化
  • 第二部分:其他虚拟化(IO等)

架构二:半虚拟化

半虚拟化:期初是为了解决全虚拟化效率不高的困难,它需要修改OS,工作效率相对于全虚拟化要高很多。Hypervisor直接安装在物理机上,多个虚拟机在Hypervisor上运行。Hypervisor实现方式一般是一个特殊定制的Linux系统。

典型的有xen,VMware ESXi,微软Hyper-V

Hyper-V 是 Microsoft 对虚拟机监控程序的实现。 Hyper-V 应用单个主计算机的资源,在同一物理硬件上运行的多个虚拟机 (VM ) 中分发该资源。 Hyper-V 为每个 VM 提供独立的空间来运行它自己的操作系统 (OS),它独立于主机 OS 和其他 VM。

特点:

  • 架构更精简
  • 在整体速度上有一点的优势
  • 需要对OS进行修改,在用户体验方面比较麻烦。

半虚拟化:Xen

Xen :直接把操作系统内核改了,把OS改成一个轻量级Hypervisor在里面运行了一个管理所有资源作资源调度的Domain0.

组成:由Xen Hypervisor(虚拟化层),Domin0(管理主机),Domin U(用户虚拟机)。

 


 架构三:硬件辅助虚拟化

  • 硬件辅助虚拟化:硬件辅助虚拟化是随着虚拟化技术的应用越来越广泛intel,AMD等硬件厂商通过对硬件的改造来支持虚拟化技术。

常用于优化全虚拟化和半虚拟化产品,像VMware Workstation,它虽然属于全虚拟化,但它在6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化。(VirtualBox,KVM,Xen等)


二.KVM架构与Xen架构对比

KVM(常用)

  • 支持全虚拟化
  • 内置在内核中
  • 便于版本安装,升级,维护
  • 性能高
  • 总结:KVM平台架构侧重性能

Xen

  • 支持全虚拟化,半虚拟化
  • 需要对内核修改
  • 跟新版本,Xen需要重新编译整个内核
  • 隔离性好
  • 总结:Xen平台架构侧重安全性


 创作不易,求关注,点赞,收藏,谢谢~ 

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

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

相关文章

23. 销售额完成任务指标的商品

文章目录 题目需求存在的疑问实现一题目来源 题目需求 商家要求每个商品每个月需要售卖出一定的销售总额 假设1号商品销售总额大于21000,2号商品销售总额大于10000,其余商品没有要求 请写出SQL从订单详情表中(order_detail)查询连…

多元分类预测 | Matlab基于深度置信网络DBN的分类预测,多特征输入模型,DBN分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述

MySQL的match函数在sp中使用的BUG解析

一、问题发现 在一次开发中在sp中使用MySQL PREPARE以后,使用match AGAINST语句作为prepare stmt的参数后,发现执行第二遍call会导致数据库crash,于是开始动手调查问题发生的原因。 注:本次使用的 MySQL 数据库版本为最新的debug…

文件改名神器!简体中文一键翻译为繁体中文并智能保存到指定文件夹!

在这个简繁转换教程中,您将学习如何使用简单的方法将简体中文文件快速翻译为繁体中文,并将其保存至指定的文件夹中。无需复杂的翻译软件或多步操作,只需跟随以下步骤,您就能实现简繁转换的便捷保存。 首先第一步,我们…

机器学习一:线性回归

1 知识预警 1.1 线性代数 ( A T ) T A (A^\mathrm{T})^\mathrm{T}A (AT)TA$ ( A B ) T A T B T (AB)^\mathrm{T}A^\mathrm{T}B^\mathrm{T} (AB)TATBT ( λ A ) T λ A T (\lambda A)^\mathrm{T}\lambda A^\mathrm{T} (λA)TλAT ( A B ) T B T A T (AB)^\mathrm{T}B^…

C#加载 ToolBlock简单示例

可以用visionpro的VPPVersion.exe 工具查看文件格式。 在安装路径最后一个 官方示例文件路径 简单实例 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; …

Spark学习(二)---Spark运行架构和核心概念

1.Spark运行架构 Spark框架的核心是一个计算引擎,它采用了master-slave的结构。 图形中的 Driver 表示 master, 负责管理整个集群中的作业任务调度。图形中的 Executor 则是 slave,负责实际执行任务。 1.1 核心组件 由此可以得出&#xf…

接口(Interface)

接口 基本介绍 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。 class 类名 implements 接口{自己属性;自己方法;必须实现的接口的抽象方法; // 只需要重写抽象方法即可 }接口中的方法…

硬盘接口损坏换电路板

1.有一块西数1T的蓝盘,SATA接口L形塑料掰断了,顾换块板解决接触不良问题 2.买板子,看好板子上印刷的版号,2060-771829-005 REV A,tb上买一片通型号的,十几块 3.用烙铁焊下原来烂板的8个脚的BIOS芯片&…

java.lang.noclassdeffounderror: com/fasterxml/jackson/core/util/jacksonfeature

建议直接查看我的原博 1.问题 环境&#xff1a; springboot2.3.10.RELEASE jdk1.8 elasticsearch8.8.1 根据官网&#xff0c;使用es时pom文件需要引入json工具&#xff0c;这里使用了jackson-databind&#xff1a; <dependency><groupId>co.elastic.clients…

栈(单位数计算器)

方法&#xff1a; 判断优先级 判断字符还是数字 计算方法 查看栈顶元素 思路 个位数计算器的代码&#xff1a; package calculator;public class Calculator {public static void main(String[] args) {String exp "78*9-2";Stack num new Stack(10);Stack op…

【CSS】浮动

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;HTMLCSS &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 浮动浮动的规则浮动的案例浮动的清除 浮动 float属性可以指定一个元素应沿其容器的…

Linux中配置sudo用户访问权限

文章目录 一、如何在 Linux 中配置 sudo 的访问权限1.1、添加一个Linux普通用户有 sudo 权限1.2、测试普通用户的 sudo 权限1.3、添加多个Linux普通用户有 sudo 权限1.4、验证sudo 权限 一、如何在 Linux 中配置 sudo 的访问权限 1.1、添加一个Linux普通用户有 sudo 权限 [ro…

部分抓包测试

linux下使用tcpdump抓包&#xff0c;生成pcap格式文件&#xff0c;利用wireshark打开&#xff0c;进行数据包分析 tcpdump常用选项&#xff1a; -a&#xff1a;尝试将网络和广播地址转换成名称&#xff1b; -c<数据包数目>&#xff1a;收到指定的数据包数目后&#xff0…

又一款国产AI聊天工具360智脑

介绍 360智脑是一个基于深度学习技术的大型语言模型&#xff0c;能够进行自然语言理解和生成。它拥有海量的语料库和强大的计算能力&#xff0c;可以应用于智能客服、智能问答、机器翻译等多种场景&#xff0c;为用户提供高效准确的服务和支持。 功能测试 写代码 功能齐全 …

使用Flask Web创建一个调用ChatGPT API的网页--简单示例(Windows环境下)

前提&#xff1a;你应该要有一个能正常使用chatGPT的openAI账号&#xff1b;即你已经成功注册了chatGPT&#xff0c;并能正常使用。 文章目录 一、主要组成部分二、示例代码2.1 工程结构&#xff1a;2.2 说明2.3 依赖环境2.4 app.py代码2.5 index.html代码 三、搭建环境步骤 一…

Spark Sql 4/5

4. 用户自定义函数 通过spark.udf功能用户可以自定义函数。 4.1用户自定义UDF函数 Shellscala> val df spark.read.json("examples/src/main/resources/people.json")df: org.apache.spark.sql.DataFrame [age: bigint, name: string]​scala> df.show()--…

PSI算法经典论文算法概述

文章目录 什么是隐私求交PSIPSI协议分类PSI算法的分类基于哈希函数的PSI算法基于不经意传输&#xff08;OT&#xff09;的 PSI算法基于GC的PSI算法基于公钥加密的PSI算法基于DH的PSI算法基于RSA盲签名的PSI算法基于同态加密的PSI算法 基于差分隐私的PSI算法 总结参考文献 什么是…

wails+vue3实现一个简单Monitor

介绍 本来呢最近是在学Rust,顺便看看Tauri相关的内容.然后刷评论区突然看到有人提到go生态中也有类似的框架—Wails,所以下午花了点时间来动手玩一下. 首先看一下最终的运行效果,前端样式懒得调整所以界面很丑只是实现一下功能 开始 这次的目标就是做一个功能类似于nvidia-s…

C#基础学习_字段与属性的比较

C#基础学习_字段与属性的比较 字段: 字段主要是为类的内部做数据交互使用,字段一般是private修饰; 字段可以赋值也可以读取; 当需要为外部提供数据的时候,请将字段封装为属性,而不是使用公有字段,这是面对对象编程所提倡的。 //字段:学号private int studentID;属性: …