1. 背景、挑战与业界进展
1.1. 虚拟化技术背景
在云计算的浪潮中,虚拟化技术扮演着举足轻重的角色。它通过将物理机集群的资源进行抽象整合,构建出一个统一的虚拟资源池。在这个资源池中,每一台物理机上都会运行宿主机以及虚拟化的系统软件。这些系统软件负责为用户提供虚拟的计算环境,包括虚拟CPU、虚拟内存、虚拟网络等,都是由Hypervisor这一核心组件来实现的。Hypervisor不仅确保了虚拟机计算能力的平稳性和弹性,还为用户提供了灵活的资源调度和分配能力。
虚拟化技术在云数据中心、大数据处理、AI与机器学习等多个领域都得到了广泛的应用。通过虚拟化技术,企业可以更加高效地利用物理资源,实现资源的按需分配和弹性扩展,从而提高业务的灵活性和响应速度。
1.2. 虚拟化技术面临的问题与挑战
尽管虚拟化技术带来了诸多优势,但在实际应用中也面临着一些问题和挑战。
首先,虚拟化架构中的管理面会占用部分CPU和内存资源,从而降低了系统整体资源的利用率。系统服务systemd,或libvirtd等虚机管理程序的线程与vCPU线程之间存在资源争抢的问题,导致业务虚拟机的稳定性难以保证,进而影响客户业务的质量。
其次,虚拟机I/O处理线程会占用大量的CPU和内存资源。虚拟化通常使用virtio-blk,virito-net为虚机提供磁盘和网卡设备,为了获得更好的I/O性能,virtio-blk会采用iothread机制加速磁盘I/O的处理;而virtio-net则采用vhost-net的方案将网卡的I/O卸载到内核,通过减少用户态和内核态的切换来减速网卡的I/O的处理;不论是iothread还是vhost-net,都需要在Host上创建对应的线程来完成具体的I/O处理,当I/O负载高的时候,iothread和vhost-net的处理线程会占用大量的CPU和内存资源。
此外,虚拟化技术的安全性问题也不容忽视。当前主流虚拟化方案都是采用QEMU + KVM的形式,QEMU模拟了丰富的外设,由于编写模拟设备的人员众多,加上设备的接口大多数比较复杂,因此QEMU经常在处理这些读写请求的时候没有完整的对请求数据进行安全校验,导致产生了很多安全性问题。攻击者可能会利用虚拟化和Hypervisor的安全漏洞展开攻击,从而威胁到整个虚拟化环境的安全。
1.3. 头部云服务提供商的方案
针对虚拟化技术面临的问题和挑战,业界头部云服务提供商纷纷展开了探索和研发,并不约而同的提出了基于DPU的轻量虚拟化方案。
AWS研发了Nitro系统,通过Nitro卡将虚拟机的I/O卸载到硬件上,从而消除了I/O处理线程对VCPU的资源抢占。同时,Nitro hypervisor内置了虚拟机的管理能力,将管理组件卸载到Nitro SoC上。这种设计不仅提高了系统的资源利用率和稳定性,还大大增强了虚拟化的安全性。Host侧只运行Nitro hypervisor,不提供通用OS能力,没有用户态和文件系统,从而减少了潜在的攻击面。
VMware也提出了基于DPU的ESXi卸载方案。在该方案中,Host ESXi hypervisor负责虚拟化的核心逻辑,而DPU上的ESXi hypervisor则负责主