A Multiserver User-space Unikernel for a Distributed Virtualization System

  • Pablo Pessolani Universidad Tecnológica Nacional


Nowadays, most Cloud applications are developed using Service Oriented Architecture (SOA) or MicroService Architecture (MSA). The scalability and performance of them is achieved by executing multiple instances of its components in different nodes of a virtualization cluster. Initially, they were deployed in Virtual Machines (VMs) but, they required enough computational, memory, network and storage resources to hold an Operating System (OS), a set of utilities, libraries, and the application component. By deploying hundreds of these application components, the resource requirements increase a lot. To minimize them, usually small footprint OS are used. Later, as management tools were improved, the application components began to be deployed in Containers which require even less resources than VMs. Another way to reduce the resource requirements is integrating the application components in a Unikernel. This article proposes a Unikernel called MUK, based on a multiserver OS, to be used as a tool to integrate Cloud application components. MUK was built to run in user-space inside a Container of a Distributed Virtualization System. Both technologies facilitate the scattering of application components in a virtualization cluster keeping the isolation properties and minimal attack surface of a Unikernel.


N. Bieberstein et al., "Service-Oriented Architecture Compass", Pearson, ISBN 0-13-187002-5, 2006.

C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. Josuttis, "Microservices in Practice, Part 1: Reality Check and Service Design", IEEE Softw. 34, pp 91-98, Jan. 2017, 2017.

SOAP, https://www.w3.org/TR/?title=soap, last access at January 2019.

J. Turnbull, “The Docker Book”, 2014, Available online at: https://www.dockerbook.com/, last access at January 2019.

N. Poulton, “The Kubernetes Book”, ISBN-13: 978-1521823637, ISBN-10: 1521823634 ,2017.

B. Hindman, et al., “Mesos: a platform for fine-grained resource sharing in the data center”, Proc. of the 8th USENIX conference on Networked systems design and implementation (NSDI'11), Berkeley, CA, USA, 2011.

P. Kamp, R. N. M. Watson, "Jails: Confining the omnipotent root", in Proc. 2nd Intl. SANE Conference, 2000.

D. Price, A. Tucker, "Solaris Zones: Operating System Support for Consolidating Commercial Workloads", in 18th Large Installation System Administration Conference,2004.

W. Felter, et al., “An Updated Performance Comparison of Virtual Machines and Linux Containers”, IBM Research Report, 2014.

A. Madhavapeddy, et al., “Unikernels: library operating systems for the cloud”, Proc. of the eighteenth international conference on Architectural support for programming languages and operating systems (ASPLOS '13), 2013.

Anil Madhavapeddy and David J. Scott. 2013. “Unikernels: Rise of the Virtual Library Operating System”, Queue 11, (Dec.2013).

Unikernel.org; http://Unikernel.org/ last access at January 2019.

P. Pessolani, O. Jara, "Minix over Linux: A User-Space Multiserver Operating System", in Proc. Brazilian Symposium on Computing System Engineering, Florianopolis, 2011.

P. Pessolani, F. G. Tinetti, T. Cortés, and S. Gonnet, “An Architecture Model for a Distributed Virtualization System“, Proceedings of the Ninth International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2018), págs. 1-11, 2018.

Oikawa, M. Sugaya, M. Iwasaki and T. Nakajima, "Using virtualized operating systems as a ubiquitous computing infrastructure", Second IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems, Vienna, 2004.

OpenSSI (Single System Image) Clusters for Linux, http://www.openssi.org/cgi-bin/view?page=openssi.html, last access at January 2019.

P. Pessolani, T. Cortes, F. G. Tinetti, and S. Gonnet, “An IPC Software Layer for Building a Distributed Virtualization System”, in CACIC 2017, La Plata, Argentina, October 9-13, 2017.

D. R. Engler, M. F. Kaashoek, J. O’Toole Jr., “Exokernel: an operating system architecture for application-level resource management”, in Proc. 15th ACM SOSP, Copper Mountain, 1995.

Rumpkernel, http://rumpkernel.org/, last access at January 2019.

IncludeOS, https://www.includeos.org/, last access at January 2019.

Mirage, https://mirage.io/, last access at January 2019.

D. Padula, M. Alemandi, P. Pessolani, S. Gonnet, T. Cortes, F. Tinetti, “A User-space Virtualization-aware Filesystem”, in CoNaIISI 2015, Buenos Aires, 2015.

M. Alemandi, O. Jara, “Un driver de disco tolerante a fallos”, (in Spanish) Jornada de Jóvenes Investigadores Tecnológicos (JIT 2015), Rosario, 2015.

J. P. Maloy, "TIPC: Providing Communication for Linux Clusters", Proceedings of the Linux Symposium, 2004.

A. Tanenbaum, “An Open Letter to Intel”, https://www.cs.vu.nl/~ast/intel/, last access at January 2019.

Libtask: a Coroutine Library for C and Unix. https://swtch.com/libtask/, last access at January 2019.

J. Dike, "A user-mode port of the Linux kernel", USENIX Association. Proceedings of the 4th Annual Linux Showcase & Conference, Atlanta Oct 10-14, 2000.
PESSOLANI, Pablo. A Multiserver User-space Unikernel for a Distributed Virtualization System. In: TRABALHOS EM ANDAMENTO - SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SISTEMAS COMPUTACIONAIS (SBESC), 9. , 2019, Natal. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 107-112. ISSN 2763-9002. DOI: https://doi.org/10.5753/sbesc_estendido.2019.8644.