Community Research and Development Information Service - CORDIS


MIKELANGELO Report Summary

Project ID: 645402
Funded under: H2020-EU.

Periodic Reporting for period 2 - MIKELANGELO (MIcro KErneL virtualizAtioN for hiGh pErfOrmance cLOud and hpc systems)

Reporting period: 2016-01-01 to 2016-12-31

Summary of the context and overall objectives of the project

The current Cloud and HPC architectures are a trade-off between efficiency, stability and security. Legacy and compatibility requirements have through the years amassed a significant amount of layers, on top of which the actual application code runs. This complexity requires complex setup and management tools that have to follow the development of many pieces of code. Having so diverse and large infrastructure results in large security attack surface, reduced only with sophisticated networking security measures. Therein lie the reasons for inefficiency of the current Cloud and HPC architectures, which we try to reduce.
The goal of MIKELANGELO is to provide improved responsiveness, flexibility and security of virtual infrastructure. We are targeting unified architecture, with components supporting different variants of the HPC, Cloud and HPC-Cloud. MIKELANGELO relies on optimisation of guest, hypervisor and their joint collaboration. Unikernel OSv is used to reduce the size of guest virtual machine to a bare minimum, to reduce its complexity while offering the best support for legacy applications among the unikernels. For new applications, new APIs for highly-efficient asynchronous programming were implemented in the Seastar library. The KVM hypervisor was chosen due to its popularity among our target audiences.
To ensure longevity of the project, the developed components are open-source and targeting upstreaming (some already upstreamed). The software, interfaces and methodology are developed in standards-compliant way. MIKELANGELO software can thus be used and integrated in larger projects (e.g. integrated in OpenStack without any overhead).
Targets are applications in private Clouds and HPC centres, usually including simulations and modeling, but shifting towards Big Data and High Performance Data Analytics. They are addressed through use-cases, included in the project.
The use-cases are backed with the infrastructure providers, where the key HPC partner is also the leading EU HPC provider University of Stuttgart (more specifically, its branch HLRS), while the Cloud infrastructure provider is GWDG.
MIKELANGELO consists of XLAB, University of Stuttgart, IBM, INTEL, GWDG, PIPISTREL, SCYLLA, Ben-Gurion University and Huawei.

Work performed from the beginning of the project to the end of the period covered by the report and main results achieved so far

MIKELANGELO is continuously updating the requirements from all available sources: use-cases, market research, new components, etc. They are used in the development of the MIKELANGELO components, their integration and finally, as guidance for further research and development of the project. We position the project in the overlapping area of unikernels, KVM and OpenStack, however there is no requirement that all of these are present for a particular scenario. We can use MIKELANGELO without any relation to OpenStack or use OSv unikernel under a different hypervisor or even completely different cloud environment, such as Amazon Web Services or Google Compute Engine. This demonstrates the holistic approach taken by MIKELANGELO on one hand, and versatility of the same approach on the other.
We divide the work done into four categories, described below.
In the first category are contributions to the OSv. OSv improvements, stemming from MIKELANGELO, have all been accepted into its source - we focused on performance properties and discovered highly important bugs, which have now been mostly resolved. We further improved Seastar. It now has two additional components, both related to the IO improvement - IO autotune and scheduler (IO, CPU). The first one sets the parameters of the application, based on the infrastructure underneath, while the other two are responsible for efficient scheduling of IO and CPU. Finally, the OSv supporting software has been significantly improved. MIKELANGELO application management approach is based on the Capstan source, but significantly extended and modified. We also developed utilities for OSv management, which have been accepted into UniK project (
The second category is improved application compatibility and management. We improved the application compatibility in OSv with further implementation of operating system calls and bug fixing. We also added support for languages Go and Node.js, improved OSv's OpenFOAM and Open MPI compatibility and ported Apache Big Data components where possible (currently supporting Apache Hadoop Distributed File System, with others being evaluated). With improved Capstan, we enabled application composition and overall management of OSv. This approach makes working with OSv and its integration into different environments much easier.
Thirdly, we were adding contributions to the KVM IO management. We introduced IO workload monitor (IOcm) facilitating dynamic optimisation of CPU core allocation for IO intensive workloads. We are in the process of implementing ZeCoRX (Zero Copy RX) seeking to remove redundant data copies while travelling through the network stack - both are novel paravirtualized IO models for KVM. We developed SCAM, preventing side-channel attacks on KVM hypervisor. Finally, we have improved our vRDMA approach. We have guest and host implementations for, in the form of Virtio additions for KVM/OSv, as a patch.
The fourth category is compatibility with the Cloud and HPC management systems. We developed a component called vTorque, which enables virtual machine (OSv or others) deployment in HPC batch system Torque. As telemetry and performance monitoring are of utmost importance, we developed management and monitoring approaches, optimising virtual environments for optimal elasticity. Here, we used Snap and developed appropriate plugins for the MIKELANGELO components and environments. Finally, we have developed Scotty, a synthetic testbed for benchmarking of KVM and OSv in Openstack.
We presented MIKELANGELO on ISC-HPC and OpenStack Barcelona Summit.

Progress beyond the state of the art and expected potential impact (including the socio-economic impact and the wider societal implications of the project so far)

OSv has been significantly improved from the perspective of its performance, application compatibility (added Node.js and Go support) and application composition. The improvements cover additional system calls and C-lib functions, new build environments, a better NFS client, isolated threads, partial NUMA support, cloud-init support, improved DHCP, file system performance, Open MPI support etc.
Seastar has been improved from the management and performance perspectives. It is a state-of-the-art high-performance library for new software projects. Seastar improvements cover improved RPC, IO scheduling, IOtune, CPU scheduling, monitoring, ext4 support, a log-structured memory allocator, and DPDK support.
KVM was improved with two novel paravirtualized IO models - IOcm (fully developed) and ZeCoRX (in development) and vRDMA. IOcm is a dynamic IO core manager. It samples IO statistics, estimates the IO pressure, and allocates the right amount of IO cores. vRDMA offers the use of a verbs-based API in the front-end driver, improving the overall performance.
Security in hypervisor has been improved with SCAM module, preventing side-channel attacks - SCAM offers monitoring, profiling, and initial mitigation of attacks.
Extensions for Torque enable deployment of virtual machines in HPC batch system (vTorque). Current release offers transparent provisioning of Linux and OSv instances for virtual workloads on HPC.
Finally, newly developed collectors and approaches have been made for the telemetry and instrumentation system Snap.

Related information

Follow us on: RSS Facebook Twitter YouTube Managed by the EU Publications Office Top