Skip to content

WABPF/project1-2-runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

project1-2-runtime

Project1:MITOSIS in eBPF and WASM

第一个 Project,主要是希望通过 eBPF 来复现 MITOSIS 这个系统的功能。MITOSIS 是上交魏星达老师的工作,通过远程 fork 的机制,使用 RDMA 加速服务器无感知计算(Serverless)容器启动,可以在一秒钟之内启动 10000+ 个容器。

第一个 Project 的目标是通过 eBPF 和用户态的控制机制,实现类似 MITOSIS 中的远程 fork 机制。原先的 MITOSIS 使用 Rust 编写内核模块的方式进行实现,有没有可能将其迁移到 eBPF 虚拟机中,在保证性能的同时获得更好的可移植性和实用性?整体项目需要实现 remote fork 的机制,大致需要包含以下两个部分:

  1. 使用 eBPF 获取运行时进程的所有状态信息;

  2. 使用 eBPF 和一些内核模块机制在远端恢复对应的进程状态,尽可能少或者不需要修改内核,并将尽可能多的用户态和内核态通信、数据处理机制放在 eBPF 虚拟机中完成。

    这部分工作主要在内核态完成,尽可能将 MITOSIS 中更多的模块在内核的 eBPF 虚拟机中通过可编程的方式实现,可以给 eBPF 虚拟机添加更多的 helpers,以及扩展 eBPF 虚拟机的能力。我们不要求说把所有的实现逻辑都放在 eBPF 中实现,但是可以把尽可能多的部分放在 eBPF 虚拟机中,以获得更好的可移植性和安全性。

需要有对应的性能分析结果。

Project2:RDMA and eBPF with WASM

第二个项目的目标是结合 WASM 和 RDMA,以及 eBPF,尝试扩展和加速基于 WASM 的 serverless 平台。RDMA 是远程直接内存访问,允许用户程序绕过操作系统内核(CPU),直接和网卡交互进行网络通信,从而提供高带宽和极小时延,加速对应的网络通信过程。 eBPF 中的一些类型的应用程序,例如 XDP, 也可以起到类似的加速效果,XDP是 Linux Kernel 中提供高性能、可编程的网络数据包处理框架,,能够动态挂载 eBPF 程序逻辑,使得 Kernel 能够在数据报文到达网卡驱动层时就对其进行针对性的高速处理,而无需再 “循规蹈矩” 地进入到 TCP/IP 协议栈。

我们希望有如下两个方面的尝试:

  1. 尝试使用类似 MITOSIS 的 RDMA 技术,进一步加速用户态 WASM 轻量级容器的调度和启动,以及加速 WASM FaaS 实例之间的通信和互相调用;
  2. 尝试通过 eBPF 和 XDP ,加速用户态的 WASM 轻量级容器/FaaS 函数实例之间的相互调用和通信流程;

在这个之后,可以比较 RDMA 实现机制和 XDP 实现机制,对于不同类型工作负载之间的的性能、易用性等方面差异,并且看看有没有可能把二者的优势结合起来。

这个部分可以选择一个 WASM 的 serverless 平台进行扩展(例如 faasm: https://github.com/faasm/faasm),这部分工作主要在用户态完成。需要有对应的性能分析。

About

Serverless runtime in eBPF and WASM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published