互联网十万个为什么之什么是虚拟化?

虚拟化是在一台物理计算机上同时运行多个虚拟操作系统实例的技术。虚拟操作系统上运行的这些实例被称为虚拟机(Virtual Machine)或者客户机(Guest Machine)。每个虚拟机都具备完整的硬件抽象,包括CPU、内存、网络适配器和磁盘等,它们可以独立运行在自己的操作系统和应用程序,互不干扰。

为什么需要虚拟化?

虚拟化技术提供了更灵活、高效和可管理的计算环境,适应了现代计算需求的变化和复杂性。其必要性体现在以下几个方面。

  • 提升资源利用率:虚拟化通过在一台物理计算机上同时运行多个虚拟机,每个虚拟机运行独立的应用负载,可以有效地提升硬件资源的利用率,进而降低成本。
  • 屏蔽硬件差异: 凭借虚拟化对底层硬件的抽象,使得虚拟机可以在不同的硬件平台上运行而无需修改,从而使得在不同环境中轻松部署和管理应用负载成为可能。
  • 提供资源隔离能力: 虚拟化技术确保每个虚拟机都被隔离开来,互不干扰。这种资源隔离性使得在同一台物理机上运行的不同应用或服务可以相互独立地操作,提高了系统的稳定性和安全性,在多个租户共享同一台物理机的情况下这个能力尤为重要。
  • 部署的灵活性:虚拟化允许快速创建、复制和部署虚拟机,大大减少了新系统或应用程序的部署时间。这对于应对业务需求的变化或快速扩展计算能力至关重要。

虚拟化和容器化的区别是什么?

从整体来看:

  • 虚拟化提供给客户的是一个完整的虚拟计算环境,客户指定虚拟机的规格和操作系统镜像,在此基础上部署自己的业务应用程序和模块。
  • 容器化是应用程序级别的虚拟化,通过将应用程序及其部署、运行所依赖的库、配置整体打包成容器镜像,可以实现应用程序的跨平台部署和运行。

从资源隔离的视角来看:

  • 虚拟化提供操作系统级别的硬件隔离,从CPU到内存再到操作系统,不同虚拟机之间完全隔离。
  • 容器化提供了进程级别的软件隔离,容器之间共享操作系统的内核和系统资源,通过命名空间和控制组实现了逻辑上的互相独立。

但在实际应用中,虚拟化和容器化可以互相为正交关系。即客户可以购买虚拟机并在虚拟机上部署自己的容器化业务,也可以直接购买弹性容器实例 ECI(Elastic Container Instance)等虚拟机容器实例(一台虚拟机上只运行一个容器),兼容容器化运维体验的同时拥有硬件级别隔离的安全能力。

虚拟化有哪些实际应用?

一个简单的场景,客户A需要一个g7i.2xlarge的suse系统来运行它的Java类在线应用,客户B需要一个g7i.4xlarge的Windows Server来运行Sqlserver,我们可以将这两个实例装箱到一台宿主机上运行,A和B客户因为运行了两套完全独立的操作系统和应用,他们之间的底层资源在硬件层面也是通过虚拟化达到完全隔离,所以两个业务不会互相干扰。另一方面,他们按需做了业务的部署和算力容量的分配,从而使得各自以及整体的资源利用率能够尽可能的最大化。

虚拟化的技术原理是什么?

本质上,虚拟化技术通过了硬件或者软件提供了资源模拟资源隔离两个最基础的能力,在此基础上可以构建丰富的功能,并不断优化性能与稳定性体验。

  • 资源模拟

    宿主机的某些硬件资源具有全局性和唯一性,因此虚拟机不能直接访问,否则会影响宿主机的稳定性。当虚拟机执行访问该资源的指令时,Hypervisor会通过截获模拟的方式完成虚拟机的指令执行。设备模拟的实现机制可以从两个维度分类。

    • 从实现主体来看,分为软件虚拟化和硬件辅助虚拟化。前者完全由软件模拟设备行为,存在一定的性能损耗,后者将功能部分卸载或者完全卸载到硬件,因此有更好的性能。
    • 从Guest是否感知的视角来看,分为全虚拟化和半虚拟化。前者无需客户感知底层是物理机和虚拟机,后者可以让Guest明确感知底层的虚拟化架构和能力,因此可以对设备模拟的实现进行优化或者模拟现实不存在的设备,带来更好的虚拟化性能。
  • 资源隔离

    资源隔离是云计算提供多租能力的基础,利用虚拟化技术可以提供CPU隔离、内存隔离、存储隔离和网络隔离的能力,确保客户的业务数据安全。

    • CPU和内存隔离一般基于CPU厂商提供的硬件辅助虚拟化能力来实现。以Intel平台为例,通过VT-x技术为每个vCPU构建独立的运行状态集,不同虚拟机之间无法获取对方的vCPU状态,也无法影响宿主机的运行。通过EPT(Extended Page Tables)技术为每个虚拟机构建两级页表翻译机制,第二级页表只能由Hypervisor来创建,确保不同虚拟机可以访问的物理内存被严格隔离。
    • 存储隔离和网络隔离有多种实现方式。阿里云基于CIPU芯片实现了云盘和弹性网卡的硬件卸载,通过IOMMU保证了云盘、网卡的IO请求只能访问所属虚拟机的内存。存储虚拟化系统提供虚拟机粒度的IO通道、存储协议栈、存储介质全链路的数据和QoS隔离能力。网络虚拟化系统支持虚拟机粒度的网络带宽、PPS(Packets Per Second)的QoS(Quality of Service)隔离。不同虚拟网络(VPC)内的虚拟机实例处于不同的路由平面无法直接进行通信,从而保证了VPC的隔离性。

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

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

相关文章

【408精华知识】时钟周期、机器周期、总线周期、指令周期、存取周期还傻傻分不清?

在做题时,我们经常能遇到关于“周期”的表述,比如时钟周期、机器周期、总线周期、指令周期、存取周期,类似的表述让我们很容易迷茫,那么接下来我们就看看它们到底是什么、有什么区别? 周期特点时钟周期也称为CPU时钟周…

图片数据增强-resize(不同插值)、各种模糊

各种不同的模糊处理 import os import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍历文件夹下的所有文件for filename in os.listdir(input_folder_path):# 检查文件类型是否为图片if filename.endswith(.jpg) or filename.endswith(.jpeg) or …

手算示例:在神经网络中进行后门攻击及验证

手算示例:在神经网络中进行后门攻击及验证 一、神经网络架构二、初始化参数三、数据集干净数据(原始数据)带后门数据(污染数据) 训练步骤四、示例前向传播(干净数据)计算损失(干净数…

每天五分钟深度学习框架pytorch:tensor张量的维度转换大全

本文重点 在深度学习中比较让人头疼的一点就是矩阵的维度,我们必须构建出符合神经网络维度的矩阵,只有将符合要求的矩阵放到神经网络中才可以运行神经网络,本节课程我们将学习以下tensor中维度的变化。 view和shape View和shape,这两个方法可以完成维度的变换操作,而且使…

【C语言实现TCP通信】

要在C语言中实现TCP通信,您可以遵循以下步骤: 创建Socket:使用socket()函数创建套接字,指定协议族为AF_INET(IPv4)或AF_INET6(IPv6),类型为SOCK_STREAM表示使用TCP协议。…

【相机标定系列】【相机模型】SLAM 中常用的相机模型畸变模型总结

Overview 鱼眼镜头的成像原理分类: Dioptric cameras,通过透镜来实现,主要是折射 Catadioptric cameras,使用一个标准相机加一个面镜(Shaped mirror) polydioptric camera,通过多个相机重叠视…

npm的基本命令和用法

1. 安装与初始化 安装npm 首先,确保你的系统中已安装了Node.js,因为npm随Node.js一同分发。访问Node.js官网下载并安装适合你操作系统的版本。安装完成后,在终端或命令提示符中输入以下命令来验证安装: 1$ node -v 2$ npm -v …

[STM32-HAL库]ADC采集-DMA中断采集-平均值滤波-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.Keil工程程序设计 三、结语 一、前言 本文通过STM32CUBEMX实现对ADC的数据采集和滤波操作,帮助各位开发者完成与模拟量输入的采集工作。 二、实现步骤 1.STM32CUBEMX配置 以STM32F103C8T6为例,打开S…

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理!

3D 生成重建015-nerf2mesh从神经辐射场中提取mesh和纹理! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 NeRF2Mesh 提出了一种从多视角 RGB 图像重建纹理表面网格的新方法。它克服了传统 NeRF 模型的局限性,由于其隐式表示,传统 NeRF 模…

高斯分步正态分布

高斯分布,也称为正态分布(Normal Distribution),是统计学和概率论中最重要的分布之一。它由德国数学家卡尔弗里德里希高斯(Carl Friedrich Gauss)首先系统研究并命名。以下是关于高斯分布的详细介绍&#x…

基于 Pre-commit 的 Python项目代码风格统一实践

背景信息 统一代码风格首先需要定义参照的规范,每个团队可能会有自己的规范,我们选择的规范是 yapf mypy isort,如果保证所有的研发人员都遵循相关规范呢? 鼓励 IDE 中对应的插件的安装,通过直接对应的插件&#x…

bootstrap实现天平效果

之前提到了,最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授15-20分钟的课程。作为一名程序员,实在没有能教的课程,只能做了一个小游戏,带着小朋友们熟悉数字。 在上一章博客中&#xff0c…

【读书】读书笔记——理科生的视角:底层逻辑+数学之美

1,底层逻辑1(看清这个世界的底牌) 刘润 著 0)什么是底层逻辑? 底层逻辑是:事物之间共同点、变化背后不变的东西事;看清事物的本质,才能在复杂变化中从根本上解决问题。 1&#x…

【Java继承】(超级详细!!!)

【Java继承】(超级详细!!!) 1、 继承的概念2 、继承的语法3、 父类成员访问3.1 子类中访问父类的成员变量3.2 子类中访问父类的成员方法 4、 super关键字5 、子类的构造方法6、 继承关系上的执行顺序7、protected 关键…

ubuntu20.04安装后配置:wifi、屏幕亮度、Nvidia驱动等

文章目录 一、安装时最好用英语,否则Downloads等home下文件夹是中文二、安装后开机无法进入系统图形界面三、清理不必要软件,更新系统四、屏幕亮度、Nvidia驱动五、wifi 一、安装时最好用英语,否则Downloads等home下文件夹是中文 安装完再在…

error: ‘address‘ in ‘class school‘ does not name a type school:: address = “

错误代码 class school{ public:string name;static string address; public:static string getAddress(){return address;} };school::address "南京路";原因 school::address “南京路”;前面未加类型,导致编译错误 解决 class school{ public:stri…

选项卡式小部件QTabWidget

文章目录 1. 详细介绍2. 常用属性3. 信号4. 常用函数5. 官方示例Tab Dialog QTabWidget提供一堆选项卡式小部件。 1. 详细介绍 选项卡式部件提供一个选项卡栏和一个用于显示与每个选项卡相关的页面的页面区域。 默认情况下,选项卡栏显示在页面区域上方,…

Vue.js - 计算属性与侦听器 【0基础向 Vue 基础学习】

文章目录 计算属性 computedcomputed 的使用方法computed 与 method 的区别计算属性完整写法 watch 侦听器(监视器)简单写法 → 简单类型数据,直接监视完整写法 → 添加额外配置项 计算属性 computed computed 的使用方法 **概念&#xff1…

web题解,基础知识巩固(qsnctf)

1.文章管理系统 1)打开题目,把它页面翻完了,没看懂它有啥用 2)看了看源码,也是一样的,没找到有用的东西 3)想着可能还是在隐藏文件里找,那我就直接用dirsearch扫扫看 4)…

初识C++ · 模拟实现vector

目录 前言: 1 部分简单函数的实现 2 push_back和pop_back 3 reserve和resize 4 Print_vector 5 insert和erase 6 拷贝构造 7 构造 8 赋值 9 memcpy的问题 10 迭代器失效 前言: 继上文模拟实现了string之后,接着就模拟实现vector&…