- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
吴超-Upcall_ Dragonball沙箱融合设计通信机制解读
展开查看详情
1 .Upcall: Dragonball沙箱融合设计通信机制解读 演讲人:吴超 龙蜥社区云原生 SIG 成员 Kata 社区 maintainer 2023/03/26
2 .Let’s talk from Dragonball Dragonball是专注于云原生安全容器场景的VMM解决方案 🌟 Kata3.0 架构图 当我们设计一个针对安全容器场景的VMM,我们在思考什么? 容器 上下游优化 至快、至轻 安全容器可配自定义Guest Kernel “够”用 即拥有容器运行的OS定义权
3 .How to build a Dragonball CPU拓扑 ACPI 内存弹性 . CPU弹性 . . VFIO直通 VFIO直通 ACPI类能力 PCI 是否可以实现 PCI snapshot snapshot Virtio-balloon 能力更多 体积不变? Virtio-balloon Virtio-blk Virtio-blk Virtio-net Virtio-net Legacy devices Legacy devices vsock vsock NEMU VMM Core VMM Core Dragonball旨在针对安全容器做审慎的加减法
4 .Vsock - VM Socket Dragonball采用hybrid vsock的设计 赋予了Host与Guest沟通的渠道
5 .ACPI CPU热插链路 ACPI CPU热插有着十分复杂的链路且与ACPI相关逻辑强耦合
6 .让我们看看一个CPU的一生 CPU四种状态: Possible、Present、Online、Active 五种行为 未热插 热插中 热插结束 热拔中 热拔结束 Possible ✅ Possible ✅ Possible ✅ Possible ✅ Possible ✅ Present ❌ Present ✅ Present ✅ Present ✅ Present ❌ Online ❌ Online ❌ Online ✅ Online ❌ Online ❌ Active ❌ Active ❌ Active ✅ Active ❌ Active ❌ 请求热插 注册CPU Online CPU generic_processor_info() 热插请求触发 cpu_up() / add_cpu() arch_register_cpu() 热拔请求触发 arch_unregister_cpu( cpu_down()/cpu_remove ) () 请求热拔 清除CPU注册 Offline CPU
7 .ACPI CPU热插链路 识别出CPU热插主要链路,其余均为ACPI相关设置逻辑
8 .Upcall 由此诞生 vsock + 内核驱动 Guest OS Containers 重塑传统内核功能链路 namespace+cgroup Host与Guest自定义通信成为可能 vsock runtime-rs Dragonball Kata-agent Syscall upcall Guest Kernel host KVM 沙箱边界融合,重思考传统虚拟化功能路径
9 .Upcall 设计概要 Upcall是一个建立在vsock上构建VMM和Guest直接通信的通道。服务端是Guest Kernel内的一个驱动(需要一 系列kernel patches),该驱动会在内核启动后服务来自客户端的请求。 客户端则在VMM内,其是一个通过uds 和vsock通信的线程。
10 .Upcall CPU热插工作路径 1⃣️ 2⃣️ Containers 3⃣️ namespace+cgroup 1⃣️ 2⃣️ 3⃣️ 4⃣️ vsock runtime-rs Dragonball Kata-agent Syscall 5⃣️ 4⃣️ 4⃣️ upcall Upcall Driver 6⃣️ Guest OS 7⃣️ 5⃣️ host KVM 6⃣️ 7⃣️
11 .Upcall 开源现状 1. Upcall相关的patch已完全在Kata Container社区开源。 路径:kata-containers/tools/packaging/kernel/patches/5.10.x/dragonball-experimental/ 2. 目前社区Dragonball链路用的Guest Kernel自带upcall kernel,给到用户更完整的Dragonball安全容器体验。 3. Dragonball代码同时有upcall弹性链路与ACPI弹性链路(待支持),供用户根据实际情况选择。
12 .Upcall 未来 Keep Innovation Upstream rethink Upcall打开了沙箱融合的想象空间 Upcall源于云原生安全容器场景 我们希望和upstream共同打磨 如何利用这条路径安全、可靠地 适合云原生的虚拟化解决方案 引入更多创新能力,减少沙箱损耗 是我们和社区共同的命题。
13 .与我们链接 欢迎加入到龙蜥云原生SIG与我们进行更多有关Kata的讨论。