diff --git a/SUMMARY.md b/SUMMARY.md index fc5173edede0568b5555f602781e87b04df08b62..cc757b350e0929f551f86b0a001a08a69247025c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -8,6 +8,7 @@ * [面向云原生生态的操作系统发行版 LifseaOS](./cloud_native/lifseaos.md) * [跨云-边-端的只读文件系统 EROFS](./cloud_native/erofs.md) * [敏捷开发场景下的调度器热升级SDK](./cloud_native/plugsched.md) + * [云原生场景下的计算核心RunD](./cloud_native/rund.md) * [容器镜像大规模分发技术Nydus](./cloud_native/nydus.md) * [一云多芯硬件生态](./multi_arch/README.md) * [Intel SPR平台支持](./multi_arch/intel_spr_support.md) diff --git a/cloud_native/rund.md b/cloud_native/rund.md new file mode 100644 index 0000000000000000000000000000000000000000..eea2e6788c02708ba0b5d68968a96ee39cf355ae --- /dev/null +++ b/cloud_native/rund.md @@ -0,0 +1,21 @@ +# 云原生场景下的计算核心RunD +tags: 云原生场景, Anolis8 + +## 技术介绍 + +1. 传统QEMU单实例的内存开销超过100MB,启动时间也达到了数秒; +2. 完整操作系统需要加载大量驱动来支持各类设备,同时systemd等重量级服务带来的资源和启动开销也很大。RunD为了解决上述问题进行了大量优化和改进(相较Kata Containers的改进如下图所示): +![](../materials/imgs/cloud_native/rund/rund_arch.png) + +用Rust实现VMM Dragonball:让原有VMM的内存资源开销从100+MB下降到3MB。即使是128M实例的开销也在可接受范围。同时支持设备直通、设备热插拔、NUMA等特性,让RunD能够适配各种复杂业务场景;多进程融合设计:使RunD在生产环境维护升级更加便捷,提升安全容器稳定性的同时也让进程间通信转换为进程内通信,降低通信开销,优化启动性能;精简操作系统相关组件:有效剥离非容器场景相关特性和组件,降低资源开销,精简组件和接口数量,减小沙箱受攻击风险;VMM 和Guest Kernel的融合设计是安全容器的独特之处。传统虚拟机Guest Kernel由用户提供,VMM要处理各类Guest Kernel,因此大量问题要在宿主机侧解决。但在安全容器场景,Guest Kernel和VMM的统一提供让两者可以深度融合。这一设计进一步提升了安全容器的启动速度,降低了安全容器的开销。 +通过上述技术突破,RunD目前已在生产环境部署并支持单节点4000安全容器、200/s并发、200ms启动。 + +## 技术应用场景 + +RunD技术解决了微服务和Serverless场景下细粒度资源安全隔离和按需供给问题,该技术适合以下三类场景: +1. 多租户容器场景,例如:公共云对外容器服务场景; +2. 可信&不可信容器混合部署,例如:大数据场景里面部分UDF程序的安全隔离; +3. 不同SLO业务混合部署,例如:离线和在线业务的混合部署。 + +## 技术影响力 +RunD经历过大规模生产环境的考验,相关成果也已汇总为学术论文发表在2022年USENIX ATC上。当前,RunD部分功能已经正式合并到Kata 3.0中,成为Kata 3.0架构的一部分。龙蜥社区的云原生SIG也在组内对Kata3.0架构做了重点介绍,并在社区构建了RunD预览版,为社区用户提供体验。 diff --git a/materials/imgs/cloud_native/rund/rund_arch.png b/materials/imgs/cloud_native/rund/rund_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d755f3968aa1c4a38a1ed6045697dcd9aaf672 Binary files /dev/null and b/materials/imgs/cloud_native/rund/rund_arch.png differ