当前位置: 首页 > news >正文

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

虚拟化是在一台物理计算机上同时运行多个虚拟操作系统实例的技术。虚拟操作系统上运行的这些实例被称为虚拟机(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的隔离性。

相关文章:

  • kubenetes中K8S的命名空间状态异常强制删除Terminating的ns
  • 架构师必考题--软件系统质量属性
  • 【蓝桥杯】国赛普及-
  • 变分自动编码器(VAE)深入理解与总结
  • ffplay 使用文档介绍
  • js 生成二维码
  • Spring Boot:SpringBoot 如何优雅地定制JSON响应数据返回
  • 民国漫画杂志《时代漫画》第16期.PDF
  • 虹科Pico汽车示波器 | 免拆诊断案例 | 2012 款雪佛兰科鲁兹车偶尔多个故障灯异常点亮
  • 27【Aseprite 作图】盆栽——拆解
  • 重学java 43.多线程 多等待多唤醒案例
  • 智能家居完结 -- 整体设计
  • 汽车以太网发展现状及挑战
  • 前台常见功能解决方案:下载+全屏+引导
  • kali基本扫描工具(自带)
  • 【Leetcode】101. 对称二叉树
  • JS 中的深拷贝与浅拷贝
  • [译]CSS 居中(Center)方法大合集
  • 【知识碎片】第三方登录弹窗效果
  • 11111111
  • 2017-08-04 前端日报
  • 2017前端实习生面试总结
  • CentOS 7 修改主机名
  • Django 博客开发教程 8 - 博客文章详情页
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java Agent 学习笔记
  • mongodb--安装和初步使用教程
  • python 学习笔记 - Queue Pipes,进程间通讯
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 简单数学运算程序(不定期更新)
  • 删除表内多余的重复数据
  • 王永庆:技术创新改变教育未来
  • 网络应用优化——时延与带宽
  • 一道闭包题引发的思考
  • 原生js练习题---第五课
  • zabbix3.2监控linux磁盘IO
  • ‌移动管家手机智能控制汽车系统
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)常见O(n^2)排序算法解析
  • (152)时序收敛--->(02)时序收敛二
  • (23)Linux的软硬连接
  • (39)STM32——FLASH闪存
  • (4.10~4.16)
  • (k8s)kubernetes集群基于Containerd部署
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (纯JS)图片裁剪
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (三十五)大数据实战——Superset可视化平台搭建
  • (算法)Game
  • (转)负载均衡,回话保持,cookie