package mirage-block-xen
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=42ee97e0604535baa4a7a1393b43cf06370bcefdb952b362c15da05835bbd851
sha512=8b19c175c5dd82f94b97a89446324ff54f2e6f5007d7a671c2ba6c474b1c66142ae26b08d4b74f062eb6bcb271338c5ee0b6ace5b3bfc27305098c138d512119
Description
This library allows a Mirage OCaml application to
- read and write blocks from any Xen "backend" (server)
- 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.
README
mirage-xen-block
This library allows a Mirage OCaml application to
read and write blocks from any Xen "backend" (server)
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 (12)
- xenstore
-
mirage-xen
>= "7.0.0"
-
io-page
>= "2.0.0"
-
mirage-block
>= "2.0.0"
- shared-memory-ring-lwt
- shared-memory-ring
-
ppx_cstruct
>= "3.6.0"
-
cstruct
>= "1.9.0" & < "6.1.0"
-
lwt
>= "2.4.3"
- logs
-
dune
>= "1.0"
-
ocaml
>= "4.08.0"
Dev Dependencies
None
Used by
None
Conflicts
None