虚拟化详解

虚拟化

1、虚拟化发展过程

第一个阶段:物理服务器

一台业务独占一台物理服务器,一个项目买一个物理机,硬件整机单独跑一个系统,业务

存在的痛点:

  • 资源浪费及其的严重,服务器的cpu,内存,利用率只有5%~15%,大部分的性能空闲

  • 部署慢,采购硬件,上架,布线,装系统,几天甚至几周

  • 无法弹性扩容,高峰期只能重新购买机器,不能临时扩容

因此虚拟化技术诞生了

第二个阶段:服务器虚拟化(vmware,kvm时代)

为了解决物理机的资源浪费

核心思想:一台物理机,通过hypervisor虚拟化层,切分成多台虚拟机,每台虚拟机独立系统,独立隔离,互不影响,共享一台物理硬件

带来的好处

  • 一台物理机跑十几台虚拟机,硬件资源利用率从10%提升到了60%~80%

  • 不需要频繁的购买物理机,省钱,省机房空间,省电

  • 虚拟机快速克隆,快照,迁移,几分钟就能新建一台服务器

  • 隔离性好,一个虚拟机崩了,不影响其他

局限性

  • 虚拟化只是单机资源盘活,只能管理本地几台物理机

  • 没法大规模的,统一调度,按需自助使用,于是云计算的出现了

第三阶段:云计算(虚拟化规模化,服务化)

为什么会出现?

虚拟化只是单机小打小闹,企业想要的:

  • 不用自己管硬件

  • 随时开,随时关,想用多少付多少钱

  • 成千上万台机器统一管理,自动调度

本质:云计算=虚拟化技术 + 大规模的集群 + 自动化调度 + 网络存储整合 + 按需计费

将成千上万台物理服务器,虚拟化资源,整合成一个超级大的资源池
用户按需领用,云主机,云磁盘,云网络,数据库,阿里云这样的

核心特点

  • 资源池化,所有的cpu,内存,磁盘都汇成一个大池子

  • 弹性伸缩,业务涨了自动加机器,低估的话,自动的减

  • 按需付费,用多少付多少

  • 自助服务,网页点一下就能创建虚拟机,不用运维人工干预

局限

虚拟机还是太重了

  • 每台虚拟机都要装完整的操作系统

  • 启动慢,占用的资源大,打包迁移比较的慢,开机要几分钟等等

  • 开发环境和生产环境经常不一样,容器化诞生

第四阶段:容器化技术(docker + k8s)

为什么会出现了?

虚拟机太重了,启动慢,环境不一致,交付慢

核心思想:容器共享主机内核,不用每台装完整的操作系统,只打包:应用+依赖库+配置,秒级启动

和虚拟机的最大区别:

  • 虚拟机:硬件级虚拟,每台独立内核,笨重,隔离强

  • 容器:操作系统级虚拟化,共享内核,轻量级,启动快,交付一致

带来的价值

  • 秒级启动,虚拟机分钟级别

  • 占用资源极低,一台机器能够跑几百个容器

  • 一次打包,多次运行,开发,测试,生产环境一致

  • 配合k8s实现自动编排,自愈,扩容

总结

  • 物理服务器:一台业务一台机 → 资源极度浪费

  • 虚拟化:一台物理机切多台虚拟机 → 盘活硬件、提高利用率

  • 云计算:虚拟化集群化 + 自动化 → 资源池化、按需弹性、免管硬件

  • 容器化:解决虚拟机笨重、环境不一致 → 轻量、快速、标准化交付,进入云原生时代

2、虚拟化的几个概念

img

Host 宿主机,真实的物理机,真实的操作系统,承载虚拟机的底层机器

Guest 虚拟机, 跑在虚拟化软件里的系统,安装的linux,windows虚拟机

Hypervisor 虚拟机监控程序,虚拟化层的核心,负责接管硬件,创建管理虚拟机,负责虚拟机的生命周期

Hypervisor 2种类型

img

裸金属,华为的FC,将cna.iso直接安装在物理服务器上,就可以直接创建虚拟机了,这种就是hypervisor就是直接安装在操作系统上面的

宿主型 就是hypervisor装在操作系统的上层,而不是同一个层级,代表就是vmware workstation 就是直接安装在操作系统上面,然后在这个软件里面创建虚拟机,virtual box也属于这种

3、虚拟化的分类

1、完全虚拟化(基于软件的完全虚拟化)

  • 用软件完整的模拟一套硬件(cpu,主板,磁盘,网卡,内存) ,不需要改虚拟机的系统,可以随便装linux,windows系统都可以

  • 虚拟机不知道自己是虚拟机,以为自己跑在真实的物理机上

  • 在vmwaere上安装了一个windows系统,在这个系统上,创建文件,写内容,会有一个空间分配,vmware 会欺骗这个系统,捕获这个分配内存空间的请求,然后发送给宿主机,说可以分配的,然后vmware就告诉这个里面的虚拟机,还是一个连续的分配的空间的地址

  • 上面就是基于软件的完全虚拟化,但是会给这个处理器额外的开销,来回的翻译,传递这些

  • 虚拟机申请的磁盘,其实就是虚拟化出来的

  • vmware work station 这个软件就可以实现完全虚拟化,就是一个二进制翻译技术

2、半虚拟化

  • 就需要修改虚拟机的内核,用装专门的虚拟化驱动,虚拟机知道自己是虚拟机,直接和虚拟化层通信,性能更高

img

3、硬件辅助虚拟化

  • 基于cpu的,依赖cpu intel VT-x/AMD-V 硬件指令集,cpu硬件帮着做隔离,地址翻译,特权指令截获,替代纯软件模拟,性能接近物理机

  • kvm是基于linux 内核的硬件辅助完全虚拟化

  • kvm强依赖 intel VT-x/ AMD-V ,没有cpu硬件虚拟化就不能用kvm

  • vmware软件完全虚拟机,xen半虚拟化现在都依赖硬件辅助虚拟化,vmware因为有cpu硬件辅助虚拟化支持,性能会非常的好

posted @ 2026-05-08 14:57  乔的港口  阅读(54)  评论(0)    收藏  举报