基于DPDK的Virtio-Crypto运算资源虚拟化

为什么要Virtio-Crypto?

随着近年来互联网,特别是移动互联网的高速发展,用户对数据安全的要求也越来越高。越来越多的网络信息流都被做了加密处理,来防止诸如泄密,仿冒,和重播等类型的网络攻击。Google目前已实现全站HTTPS加密,并在其安全性报告中指出截止2018年7月,超过70%的Chrome数据都已实现加密。

而密保工作如IPSec则需要大量的计算机资源来进行。一个最基本的AES块加密工作也需数十个回合的查表,移位,线性变换等操作。当今的网络流吞吐量的急剧增加导致加密的工作密度呈几何数量级的增长,这个增长刺激了整个加密加速器技术的发展。Intel最新的采用 C620 系列芯片组 (Purley) 的至强处理器可使用其集成的Intel QuickAssit Technology (QAT)芯片实现超过130Gbps的IPSec数据面处理能力。

与此同时,云计算也有着飞速的增长。云用户对网络安全的需求也随之增加。为了让云用户能享受到加密加速技术,大部分市面上的加密加速器,包括QAT,都使用了Single-root Input/Output (SRIOV) Virtual Function (VF)技术,使得多台VM/容器能共享一个QAT资源,并几乎没有任何性能损失,如图1所示。

基于DPDK的Virtio-Crypto运算资源虚拟化_第1张图片

图1:QAT的SR-IOV在VM中的使用

但SR-IOV技术并非没有缺点

  • 首先,VM需要安装对应的VF驱动,与硬件有强耦合性。
  • 同时,一个PF的VF的数量并非无限,其最大数量限制了能共享该PF的VM/容器的数量。
  • 再次,一个PF的最大吞吐量即为一个VF的最大吞吐量,用户无法获得更高的性能。
  • 最后,VF目前并不具备限流功能,更没有QoS加持,而PF的最大吞吐量有限,其中某个VF的吞吐量加大则会制约其他VF,这个限制使得加密加速器的VF技术无法普及在公有云中。

所以云用户所需的加密加速器的虚拟化技术需要有和实机硬件无关,可拓展等特点。同时后端(物理机端)能实现聚合多个加速器资源和完成限流,QoS等工作。而这一切的答案是Virtio-Crypto。

什么是Virtio-Crypto?

Virtio-Crypto是Virtio标准所支持的虚拟设备之一,由前端驱动和后端设备组成。前端一般为虚拟机和容器可访问的Virtio-Crypto设备驱动,而后端则是由物理服务器上的程序如Qemu所模拟

你可能感兴趣的:(服务器,网络,运维,网络协议,linux)