mirage/mirage-block-xen

Name: mirage-block-xen

Owner: MirageOS

Description: Client and server implementations of the xen paravirtualised block driver protocol

Created: 2013-07-17 09:35:51.0

Updated: 2016-03-13 15:44:40.0

Pushed: 2018-03-03 00:16:29.0

Homepage: null

Size: 370

Language: OCaml

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

mirage-xen-block

This library allows a Mirage OCaml application to

  1. read and write blocks from any Xen “backend” (server)
  2. service block requests from any Xen “frontend” (client)

This library can be used in both kernelspace (on Xen) or in userspace (using libraries that come with Xen).

This library depends on the shared-memory-ring library which enables high-throughput, low-latency data transfers over shared memory on both x86 and ARM architectures, using the standard Xen RPC and event channel semantics.

Example: in Mirage unikernels on xen

The block_perf example shows how a Mirage application can use this library to access a virtual disk with very little overhead.

For performance results and discussion, see Unikernels: Library Operating Systems for the Cloud

Example: prototyping new storage for Virtual Machines

The xen-disk application runs in userspace and attaches a virtual disk to an existing xen VM. The disk read and write requests are served in userspace through one of a set of 'backends' which are selectable on the commandline.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.