Disaggregation

The rise of cloud computing has been enabled by the maturation of virtualization technologies, which allow the flexible allocation/deallocation of resources (in the form of Virtual Machines, “VMs”), and also enable increased server usage. Unfortunately, current virtualization techniques operate at machine granularity, which often leads to server fragmentation (i.e., the underutilization of some hardware resources on each of the physical machines of the data center) and results in considerable financial losses (i.e., losses of earnings) for cloud platforms. Although this problem has caught the attention of the industrial and academic research communities over the last 20 years, it remains a hot issue in current data centers. For example, Microsoft estimates that a 1% reduction in fragmentation within its Azure cloud platform would result in hundreds of millions of dollars in savings [Ambati2020].


Resource disaggregation (a.k.a, “disaggregation”) is an approach aimed at addressing server fragmentation by enabling a more flexible allocation of the hardware resources within a data center. There are two incarnations of this approach: software disaggregation (hereafter “soft disaggregation”) and hardware disaggregation (hereafter “hard disaggregation”). KrakOS pursues research regarding both of these incarnations, within two distinct and complementary work axes.


Soft disaggregation (velocity, flexibility, energy efficiency, and fault tolerance goals): This type of disaggregation retains the “server-centric” paradigm (i.e., in which the base structural unit is a traditional server machine) and essentially aims at modifying the software layers (esp. the hypervisors and operating systems) in order to allow a VM to simultaneously leverage the hardware resources from multiple physical servers within the same rack, and also to dynamically and finely manage how these resources (wrt. quantity and location) are allocated over time. An additional lever for this approach lies emerging interconnection technologies like CXL (Compute eXpress Link) [CXL2020, Li2023], which enables (1) more efficient interactions between the CPUs and the peripherals, and (2) the sharing of peripherals (network interfaces, hardware accelerators, storage devices) and/or (volatile or persistent) physical memory between physical machines.


Until now, the vast majority of works regarding soft disaggregation have targeted the disaggregation of main memory [Gu2017, Nitu2018, Amaro2020, Ruan2020]. In this context, KrakOS explores two main directions. First, we revisit the algorithms of operating systems (memory management, synchronization, checkpointing, etc.), which have been initially designed for NUMA multicore machines and traditional interconnects, in order to leverage the potential of newer topologies of memory hierarchies and interconnection technologies. Second, we study how the delegation of system services in user space (see the research agenda on “mutant kernels” described in Axis A2) can be useful for simplifying the implementation of soft disaggregation, improving its resilience and adapting the corresponding mechanisms and policies (by revisiting and extending the microkernel-based approaches used in 1980s and 1990s for the construction of distributed systems).