LegoOS (NSDI 2018) ☀

here for paper


摘要:

服务器是部署操作和故障单元的单片服务器模型,在面对最近的几个硬件和应用程序趋势时,正在趋于极限。为了提高数据中心的资源利用率,弹性,异构性和故障处理能力,我们认为数据中心应该将单片服务器分解为分散的,网络连接的硬件组件。尽管硬件资源分解带来了巨大的好处,但没有现有的操作系​​统或软件系统可以妥善管理它。我们提出了一个名为splitkernel的新操作系统模型管理分解系统。

Splitkernel将传统的OS功能传播到松散耦合的监视器中,每个监视器都运行并管理硬件组件。 splitkernel还执行分布式硬件组件集的资源分配和故障处理。使用Splitkernel模型,我们构建了LegoOS,这是一个专为硬件资源分解而设计的新操作系统。LegoOS对用户来说是一组分布式服务器。在内部,用户应用程序可以跨越多个处理器,内存和存储硬件组件。我们在x86-64上实现了LegoOS,并通过使用商用服务器模拟硬件组件来对其进行评估。我们的评估结果表明,LegoOS的性能可与单片Linux服务器相媲美,同时在很大程度上改善了资源打包并降低了单片集群的故障率。

  • 将OS功能拆分为监视器
  • 在硬件设备上运行每个监视器
  • 跨非连贯组件的网络消息传递
  • 全球资源管理和故障处理

引入:

多年来,数据中心的部署,操作和故障单元一直是单片服务器,包含运行用户程序所需的所有硬件资源(通常是处理器,某些主存,磁盘或磁盘)。但这存在了一些问题:

  1. 首先,数据中心面临着将应用程序安装到物理机器上的困难的装箱问题。
  2. 其次,在服务器中打包硬件设备后,很难在数据中心中添加,删除或更改硬件组件
  3. 最后,现代数据中心托管了越来越多的异构硬件但是,设计适合单片服务器并在数据中心部署它们的新硬件是一个痛苦且成本效率低的过程,往往会限制新硬件的采用速度。

CPU,DRAM和磁盘是独立的,故障隔离的,网络连接的组件。这种硬件资源分解架构是通过网络技术的最新进展实现的。硬件资源分解大大提高资源利用率,弹性,异质性和故障隔离。硬件资源分解完全改变了计算范式,并对系统构建者提出了一个关键挑战:如何管理和虚拟化分布式,分解的硬件组件。

但是,远程管理需要大量的网络流量,并且当处理器发生故障时,其他组件将无法使用。多内核操作系统在单片计算机中的每个处理器(或核心)上运行内核,并且这些每处理器内核通过消息传递相互通信。多内核仍假设对单片机中的硬件资源进行本地访问,并且它们的消息传递是通过本地总线而不是通用网络。虽然可以对现有操作系统进行改造以支持硬件资源分解,但是这种改进将对OS的中央子系统(例如存储器和I / O管理)具有侵入性。

因此这篇文章提出了splitkernel