主流虚拟化技术有哪些:四类技术对比选型
主流虚拟化技术有哪些,分为服务器虚拟化、容器虚拟化、桌面虚拟化、网络虚拟化四大类,服务器虚拟化侧重硬件资源切分,适合机房算力调度;容器虚拟化轻量化、启动速度快,适合微服务业务;桌面虚拟化集中托管系统镜像,适合办公终端统一管控;网络虚拟化剥离物理网卡与网络协议,适合云平台租户隔离,你可以根据业务是否需要完整操作系统内核、资源开销预算、启动时延、运维复杂度四个维度直接选型,单台物理机CPU内存资源充足、需要隔离不同操作系统版本时优先选服务器虚拟化,业务为无状态微服务、追求高密度部署优先选容器虚拟化。
服务器虚拟化技术
服务器虚拟化依靠Hypervisor(虚拟机监控程序)隔离硬件,在物理主机上生成独立虚拟机,每台虚拟机自带完整操作系统,可单独配置内核、驱动、文件系统。KVM属于开源实现,依托Linux内核,不需要额外独立Hypervisor层,适配绝大多数x86服务器,社区资源丰富,商用云平台大量采用;VMwareESXi是闭源成熟方案,配套管理组件完善,运维工具链完整,稳定性经过长期商用验证;Xen支持半虚拟化模式,早期在公有云场景使用较多,现在使用规模有所收缩。
隔离强度高,虚拟机之间内核相互独立,一个虚拟机故障一般不会直接影响同主机其他虚拟机,支持跨硬件平台迁移,适合混合操作系统部署、异构业务共存场景。
容器虚拟化技术
容器虚拟化共享宿主机内核,通过Namespace做资源隔离、Cgroups做资源配额限制,镜像只打包应用程序与依赖库,体积远小于虚拟机镜像,启动耗时通常在秒级。Docker是应用最广泛的容器运行时工具,侧重镜像打包与本地运行;containerd作为底层运行时,承接容器生命周期管理,是Kubernetes默认绑定的运行组件;Kubernetes不作为容器本身,是编排平台,负责批量调度多节点容器、自动扩缩容、故障自愈。
资源开销更低,单台服务器可以承载更多业务实例,但是容器依赖宿主机内核,不能直接运行和宿主机内核不兼容的操作系统,这个边界决定它不适合需要更换内核的业务。
桌面虚拟化技术
桌面虚拟化把桌面操作系统部署在远端服务器,终端只负责传输画面与键鼠信号,终端设备不需要高性能硬件。VMwareHorizon、CitrixVirtualAppsandDesktops、深信服桌面云是市面常见方案,支持统一下发桌面镜像、集中管控权限、数据全部留存服务器,终端本地不留存业务数据。
适合政企、生产车间、呼叫中心这类对数据防泄露、终端统一管理有要求的场景,对网络带宽有一定要求,画面传输质量会随网络抖动出现波动。
网络虚拟化技术
网络虚拟化将物理网络设备的控制平面与转发平面解耦,虚拟出独立虚拟交换机、虚拟路由器、虚拟子网,实现租户网络隔离、弹性网络配置。OVS(OpenvSwitch)是开源虚拟交换机,广泛和KVM、容器平台搭配;SR-IOV硬件虚拟化网卡,把一张物理网卡拆分成多个虚拟功能网卡,直通给虚拟机,降低虚拟化带来的转发损耗。
| 虚拟化类型 | 隔离等级 | 资源开销 | 典型适用场景 |
|---|---|---|---|
| 服务器虚拟化 | 高 | 较高 | 异构系统、独立业务隔离 |
| 容器虚拟化 | 中等 | 低 | 微服务、弹性扩缩业务 |
| 桌面虚拟化 | 中等 | 中等 | 集中办公、数据安全管控 |
| 网络虚拟化 | 网络层隔离 | 可低可高 | 云平台多租户网络划分 |
SR-IOV只对网卡硬件做虚拟拆分,不能单独完成整机系统虚拟化,需要搭配服务器虚拟化或者容器方案一起使用。
不要把容器当成虚拟机直接使用。
内核共享的特性,让容器无法修改内核参数,也不能直接运行Windows容器镜像在Linux宿主机上,想要跨内核运行,必须嵌套服务器虚拟化。
