服务器虚拟化技术有哪些:主流分四类
服务器虚拟化技术有哪些,主流分为全虚拟化、半虚拟化、操作系统级虚拟化、硬件辅助虚拟化四类,全虚拟化适配未修改的操作系统,适合多系统混合部署场景;半虚拟化需要修改虚拟机内核,IO性能更好;操作系统级虚拟化不隔离内核,密度更高,适合批量部署容器类业务;硬件辅助虚拟化依托CPU虚拟化指令集,可搭配前两种虚拟化使用,降低虚拟化层损耗,该分类体系适合运维人员选型、机房测试环境搭建,不适合单应用极致低延迟的工业实时控制业务。
服务器虚拟化技术:全虚拟化
全虚拟化是虚拟机监控器直接模拟完整硬件,客户操作系统无需改动就能直接运行,虚拟机感知不到底层是虚拟硬件,Windows、各类Linux发行版都可以直接安装使用。虚拟化层会捕获操作系统发出的硬件指令,翻译之后转发给物理服务器硬件,指令翻译过程会带来一定性能开销,在IO密集业务场景里性能衰减会更加明显。这种技术上手门槛低,异构系统可以同时跑在一台物理机上,机房里对外提供租用虚拟机的业务大多选用该方案。
服务器虚拟化技术:半虚拟化
半虚拟化要求修改客户操作系统内核,内置虚拟化驱动,操作系统清楚自身处于虚拟化环境,不再发出难以翻译的硬件特权指令,改用和虚拟化层约定的调用接口通信。省去指令翻译环节之后,磁盘读写、网络收发的性能相比全虚拟化有明显提升,它的短板是操作系统内核必须适配,无法直接运行未改造的闭源系统,早期Xen的经典版本就是采用这种实现方式。
适配系统有限。
服务器虚拟化技术:操作系统级虚拟化
操作系统级虚拟化,底层宿主机只运行一个内核,上层隔离出多个独立的文件系统、进程空间、用户权限环境,每个隔离实例就是容器,实例之间共享宿主机内核,不需要单独加载操作系统内核,启动速度通常在秒级以内,单台物理服务器可以部署几百个实例,资源利用率远高于虚拟机方案。隔离力度弱于虚拟机,所有实例共用同一个内核,内核出现漏洞时全部实例都会受到影响,适合微服务、流水线批量任务、开发测试环境,不适合需要独立内核安全隔离的业务。
服务器虚拟化技术:硬件辅助虚拟化
硬件辅助虚拟化依靠CPU内置的虚拟化扩展指令集,IntelVT-x和AMD-V都属于这类硬件能力,硬件直接提供特权指令隔离机制,把原本由软件虚拟化层承担的指令捕获、地址转换工作交给处理器硬件完成,减少CPU的上下文切换开销。它本身不是独立的虚拟化方案,一般配合全虚拟化或者半虚拟化一起使用,现代主流虚拟化平台默认开启硬件辅助虚拟化,关闭硬件虚拟化后,虚拟机的CPU性能会出现大幅下降。
| 虚拟化类型 | 系统是否修改 | 隔离强度 | 适合业务 |
|---|---|---|---|
| 全虚拟化 | 无需修改 | 较高 | 异构操作系统、对外云主机 |
| 半虚拟化 | 内核修改 | 较高 | 高性能Linux业务 |
| 操作系统级虚拟化 | 无需修改应用 | 中等 | 容器、微服务、批量任务 |
| 硬件辅助虚拟化 | 依赖硬件 | 依托上层方案 | 加速全虚拟化、半虚拟化 |
硬件辅助虚拟化不能脱离软件虚拟化层单独创建虚拟机,它只做性能加速,很多新手容易把它当成和容器、虚拟机并列的独立虚拟化方案,直接单独用来部署业务,最后发现无法创建实例。
选型时优先看业务对内核隔离、系统兼容性、部署密度的优先级,优先保证业务安全边界匹配,再对比性能和资源成本。
