Planet Hypervisor

Building an ARMy of Xen unikernels

Mirage has just gained the ability to compile unikernels for the Xen/arm32 platform, allowing Mirage guests to run under the Xen hypervisor on ARM devices such as the Cubieboard 2 and CubieTruck. Introduction The ARMv7 architecture introduced the (optional) Virtualization Extensions, providing hardware support for running virtual machines on ARM devices, and Xen's ARM Hypervisor uses this to support hardware accelerated ARM guests. Mini-OS is a tiny OS kernel designed specifically for running under Xen. It provides code to initialise the CPU, display messages on the console, allocate memory (malloc), and not much else. It is used as the low-level core of Mirage's Xen implementation. Mirage...

sunxi-tools now available in Debian

I've recently packaged the sunxi tools for Debian. These are a set of tools produce by the Linux Sunxi project for working with the Allwinner "sunxi" family of processors. See the package page for details. Thanks to Steve McIntyre for sponsoring the initial upload. The most interesting component of the package are the tools for working with the Allwinner processors' FEL mode. This is a low-level processor mode which implements a simple USB protocol allowing for initial programming of the device and recovery which can be entered on boot (usually be pressing a special 'FEL button' somewhere on the device). It is thanks to FEL mode that most sunxi based devices are pretty much...

Using Irmin to add fault-tolerance to the Xenstore database

This is the second in a series of posts that introduces the Irmin distributed storage engine. You might like to begin with the introductory post. Xenstore is a critical service found on all hosts running Xen. Xenstore is necessary to configure all VM I/O devices such as disk controllers and network interface cards; share performance statistics and OS version information; and signal VMs during shutdown, suspend, resume, migrate etc. Xenstore must be reliable: if it fails then the host is unmanageable and must be rebooted. Xenstore must be secure: if it is compromised by a VM then that VM...

Running Scientific Linux Guest VMs on XenServer

What is Scientific Linux? In short, Scientific Linux is an customized RedHat/CentOS Linux distribution provided by CERN and Fermilab: popular in educational institutions as well as laboratory environments.  More can be read about Scientific Linux here: https://www.scientificlinux.org/ From my own long-term testing - before XenServer 6.2 and our pre-release/Alpha - Creedence - I have ran both Scientific Linux 5 and Scientific Linux 6 without issues.  This article's scope is to show how one can install Scientific Linux and, more specifically, ensure the XenTools Guest Additions for Linux are installed as these do not require any form of "Xen-ified" kernel. XenServer and Creedence The following...

Off to OSCON ....

This week is OSCON, and I'm looking forward to my first year there as the official community manager for XenServer. In fact, it was at OSCON 2013 that I tentatively accepted the position and transitioned from a purely commercial Citrix CloudPlatform and XenServer focus to one where the platform, users and install-base matter most. It's been an interesting year and while we've not accomplished everything I'd have liked, we've made some significant strides forward. The most significant of which has to be the platform refresh, performance improvements and the alpha program we're currently running. So whether you like XenServer, think...

Introducing Irmin: Git-like distributed, branchable storage

This is the first post in a series which will describe Irmin, the new Git-like storage layer for Mirage OS 2.0. This post gives a high-level description on Irmin and its overall architecture, and later posts will detail how to use Irmin in real systems. Irmin is a library to persist and synchronize distributed data structures both on-disk and in-memory. It enables a style of programming very similar to the Git workflow, where distributed nodes fork, fetch, merge and push data between each other. The general idea is that you want every active node to get a local (partial) copy...

Applying patches from mutt onto a git tree easily

This post is for project maintainers using git who wish to merge patches easily into a project directly from mutt. Projects using git vary in size and there many different ways to merge patches from contributors. What strategy you use can depend on whether or not you are expecting to merge hundreds of patches, or just a few. If you happen to be very unfortunate and are forced to use Gerrit a mechanism was chosen for you for review and how patches will get merged / pushed. If you're just using raw git directly you can do whatever you like....

Fitting the modular Mirage TCP/IP stack together

A critical part of any unikernel is its network stack -- it's difficult to think of a project that needs a cloud platform or runs on a set-top box with no network communications. Mirage provides a number of module types that abstract interfaces at different layers of the network stack, allowing unikernels to customise their own stack based on their deployment needs. Depending on the abstractions your unikernel uses, you can fulfill these abstract interfaces with implementations ranging from the venerable and much-imitated Unix sockets API to a clean-slate Mirage TCP/IP stack written from the ground up in pure OCaml! A Mirage unikernel will not use...

Vchan: Low-latency inter-VM communication channels

Today's post is an update to Vincent Bernardoff's introducing vchan blog post, updated to use the modern build scheme for Mirage. Unless you are familiar with Xen's source code, there is little chance that you've ever heard of the vchan library or protocol. Documentation about it is very scarce: a description can be found on vchan's public header file, that I quote here for convenience: Originally borrowed from the Qubes OS Project, this code (i.e. libvchan) has been substantially rewritten [...] This is a library for inter-domain communication. A standard Xen ring buffer is used, with a datagram-based interface built on top. The grant reference and...

XCP Wiki Pages Have Been Migrated to Wiki.XenServer.org

XCP is Dead; Long Live XenServer! Last year was a momentous year for all things related to the Xen Project.  2013 saw Xen Project become a Linux Foundation Collaborative Project.  It also saw the separate XenServer project become Open Source under the auspices of Citrix Systems.  And, as a result of that, the need for [...]