proj227-Lightweight-resource-isolation-technology-based-on-eBPF 题目 设计实现基于eBPF的轻量级资源隔离技术 学校:华中科技大学 队名:nopnop 队员:姜昊哲,朱晔,王与峥 指导教师:樊浩,邵志远 项目简介 我们设计实现了Esolation,这是一款serverless框架下,基于eBPF和wasm的轻量级、用户可定义的CPU、network、IO、Memory资源隔离机制和内存共享机制, 目标为降低serverless中函数运行容器的初始化开销,提高高并发下函数沙箱的启动速度。 赛题目标 · 目标一:实验测试现有cgroup、namespace机制的并发性能 · 目标二:基于eBPF实现对disk io、network io资源的约束 · 目标三:基于eBPF实现对CPU、Memory资源的约束 项目进度 · 已完成cgroup并发启动性能的测试和wasm启动性能的测试 · 设计并实现了基于eBPF对CPU、Memory资源的约束 · 设计和基本实现了基于eBPF的内存共享 · 设计了基于eBPF对IO、network资源约束的方案 项目贡献 我们基于wasm容器作为serverless沙箱搭建平台,利用eBPF技术,实现了名为 Esolation 的一种轻量级的、无侵入的、平台可定义的、满足无感知计算平台隔离需求的资源隔离机制。 Esolation利用wasm实例独立的线性内存,保证了内存的天然隔离,并显著降低了平台容器启动的时间开销;引入了新的eBPF程序类型与辅助函数,在Linux的调度器中设置了一系列覆盖 容器生命周期的eBPF挂载点以动态执行隔离策略,通过BPF程序中轻量的数据结构设计,在不改变原有调度逻辑的情况下,于内核调度器中完成了对cgroup机制的对标与优化;提出了利用 eBPF进行网络虫洞加速与穿越overlay网络的初步设计;验证了利用eBPF可以完成高效的容器内存共享以减少容器通信开销的方法;设计了利用eBPF在通用块设备层实现按比例分享和IO 带宽限制的方案。 代码文件说明 我们的代码仓库请访问Github链接:https://github.com/LancelottJ/proj227-nopnop-code-repository