Files
xen/docs
Christopher Clark 4048189d01 argo: implement the register op
The register op is used by a domain to register a region of memory for
receiving messages from either a specified other domain, or, if specifying a
wildcard, any domain.

This operation creates a mapping within Xen's private address space that
will remain resident for the lifetime of the ring. In subsequent commits,
the hypervisor will use this mapping to copy data from a sending domain into
this registered ring, making it accessible to the domain that registered the
ring to receive data.

Wildcard any-sender rings are default disabled and registration will be
refused with EPERM unless they have been specifically enabled with the
new mac-permissive flag that is added to the argo boot option here. The
reason why the default for wildcard rings is 'deny' is that there is
currently no means to protect the ring from DoS by a noisy domain
spamming the ring, affecting other domains ability to send to it. This
will be addressed with XSM policy controls in subsequent work.

Since denying access to any-sender rings is a significant functional
constraint, the new option "mac-permissive" for the argo bootparam
enables overriding this. eg: "argo=1,mac-permissive=1"

The p2m type of the memory supplied by the guest for the ring must be
p2m_ram_rw and the memory will be pinned as PGT_writable_page while the ring
is registered.

This hypercall op and its interface currently only supports 4K-sized pages.

Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
Tested-by: Chris Patterson <pattersonc@ainfosec.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
2019-02-07 14:22:52 +01:00
..
2019-01-25 17:09:04 +00:00
2019-02-07 14:22:52 +01:00
2018-11-14 19:25:11 +00:00
2016-04-01 11:07:28 +08:00

Remus provides fault tolerance for virtual machines by sending continuous
checkpoints to a backup, which will activate if the target VM fails.

See the website at http://wiki.xen.org/wiki/Remus for details.

Using Remus with libxl on Xen 4.5 and higher:
 To enable network buffering, you need libnl 3.2.8
 or higher along with the development headers and command line utilities.
 If your distro does not have the appropriate libnl3 version, you can find
 the latest source tarball of libnl3 at http://www.carisma.slowglass.com/~tgr/libnl/

Disk replication:
 VMs protected by Remus need to use DRBD based disk backends. Specifically, you
 need a compile and install a custom version of DRBD, that is available publicly
 at https://github.com/rshriram/remus-drbd
 This code is based on DRBD 8.3.11 and uses a new replication protocol (named
 protocol D) for asynchronous disk checkpoint replication. A protected VM's DRBD
 disks on the primary and backup hosts need to be configured to use protocol D
 as the replication protocol. An example resource configuration file can be found
 in the aforementioned github repository.