Memory disaggregation has attracted great attention recently because of its benefits in efficient memory utilization and ease of management. So far, memory disaggregation research has all taken one of two approaches: building/emulating memory nodes using regular servers or building them using raw memory devices with no processing power. The former incurs higher monetary cost and faces tail latency and scalability limitations, while the latter introduces performance, security, and management problems. Server-based memory nodes and memory nodes with no processing power are two extreme approaches. We seek a sweet spot in the middle by proposing a hardware-based memory disaggregation solution that has the right amount of processing power at memory nodes. Furthermore, we take a clean-slate approach by starting from the requirements of memory disaggregation and designing a memory-disaggregation-native system. We built Clio, a disaggregated memory system that virtualizes, protects, and manages disaggregated memory at hardware-based memory nodes. The Clio hardware includes a new virtual memory system, a customized network system, and a framework for computation offloading. In building Clio, we not only co-design OS functionalities, hardware architecture, and the network system, but also co-design compute nodes and memory nodes. Our FPGA prototype of Clio demonstrates that each memory node can achieve 100 Gbps throughput and an end-to-end latency of 2.5 us at median and 3.2us at the 99th percentile. Clio also scales much better and has orders of magnitude lower tail latency than RDMA. It has 1.1x to 3.4x energy saving compared to CPU-based and SmartNIC-based disaggregated memory systems and is 2.7x faster than software-based SmartNIC solutions.
翻译:内存分解最近因其在有效记忆利用和易于管理方面的好处而引起极大关注。 到目前为止,内存分解研究已经采取了两种方法中的一个方法:使用正常服务器建造/模拟内存节点,或者使用没有处理功率的原始内存装置建造。前者产生较高的货币成本,并面临尾部延缓和缩放限制,而后者则带来性能、安全和管理问题。基于服务器的内存节点和没有处理功率的内存节点是两种极端的办法。我们通过提出基于硬件的内存分解解决方案,在中间寻找一个甜点。此外,我们采取清洁式方法,从对内存分解的要求出发,开始对内存节点进行内存节点模拟节点,或者设计一个没有处理功率的内存节点。我们建立了一个分解的内存系统,在基于硬件的内存节点中,保护和管理分解的内存是两种极端的方法。Clio硬件包括一个新的虚拟内存系统,一个基于内部网络的系统,以及一个用来计算内装的内存度框架。在Clio中,我们不仅共同设计OS功能、硬质智能分解智能分解智能分解的智能分解系统,而且每个内存分解的内存系统比C-内存分解的内存分解的内存分流系统更短。