Zombieland: Practical and Energy-efficientmemory disaggregation in a datacenter
1. 概要
zombieland 从硬件视角,实现了CPU&内存的池化
和传统的专门做内存池化的系统不太一样,zombieland 做到了把cpu和内存彻底的分离,甚至连供电都是分开的,它可以做到把cpu的电源关掉的情况下仍然可以让内存提供远程访问服务
(有点牛逼,这不得把主板设计都改了?)
通过这个设计,zombieland 实现了 86% 的能效提升
2. 设计实现
zombieland 的思路是实现服务器的 ”半关机“,增加了一个新的 ACPI 状态,叫 Sz,处于这种状态的服务器叫 zombie
这种 Sz 服务器,它的内存是可以被远程访问的,但是功耗只比 S3 状态增加了 15%,而且这种设计对硬件的改动很小
然后 zombieland 给 hypervisor 实现了2种远程内存扩展:RAM ext 和 Explicit swap device,允许 hypervisor 把虚机的冷内存卸载到远程内存上,或者用户可以显式的把内存swap到远端
2.1. 理论收益
和其他方案对比:
1)Server-centric architecture
能效:Total Energy Consumed = 2.1 × Emax.
2)Resource disaggregation(最理想的,理论设计)
能效:Total Energy Consumed = 1.15 × Emax.
3)zombieland 解决方案
能效:Total Energy Consumed = 1.2 × Emax
2.2. Sz 状态设计
ACPI 全称是 The Advanced Configuration and Power Interface,所以它是一个高级可编程接口
ACPI 原本是有5个状态的:
- S0 正常开机,S5彻底关闭
- S3 关闭CPU和其他设备(状态信息保存到内存),内存正常
新增的 Sz 状态和 S3 是非常像的,区别是2个:
- Sz的内存是完全active的,S3的内存是 low-power self refresh mode
- Sz的网络是active的(需要支持远程 rdma 访问),S3的网络默认是关闭的
2.3. 基于 Sz 状态的内存分离
zombieland 实现了2种远程内存能力:
- RAM ext,基于 hypervisor 实现的,把不常访问的内存卸载到远端
- Explicit swap device(简称 Explicit SD),和 Infiniswap 比较类似,实现一个高性能的 swap 设备
整体架构如下: