package mirage-block-xen

  1. Overview
  2. Docs
MirageOS block driver for Xen that implements the blkfront/back protocol

Install

Dune Dependency

Authors

Maintainers

Sources

mirage-block-xen-2.1.2.tbz
sha256=5f68d0d34c7a8e7b07034241e80b232cf9fec83f925e21e6365ded31a2dfbc70
sha512=784a36c8f17cd06f33d4c1435bef4868d1e2c473d7da102adaba566ec5904c27dad68884a19ede2bb599d975dcc3089858d7473ace0105f0d2e039791878d922

Description

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.

Tags

org:mirage org:xapi-project

Published: 16 Apr 2024

README

mirage-block-xen

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.

Dependencies (13)

  1. fmt >= "0.8.7"
  2. xenstore
  3. mirage-xen >= "7.0.0"
  4. io-page >= "2.0.0"
  5. mirage-block >= "2.0.0"
  6. shared-memory-ring-lwt
  7. shared-memory-ring
  8. ppx_cstruct >= "3.6.0"
  9. cstruct >= "6.0.0"
  10. lwt >= "2.4.3"
  11. logs
  12. dune >= "1.0"
  13. ocaml >= "4.08.0"

Dev Dependencies

None

Used by

None

Conflicts

None