Snapshot Replication

"Snapshot replication" refers to copying a snapshot from one host to another. Only snapshots can be replicated, not running application instances.

Snapshot replication enables you to:

  • Back up an application instance to fail over to another host to protect availability.
  • Migrate an application instance to temporarily or permanently redistribute workloads.
  • Duplicate an application instance to then clone and run in parallel on another host or virtual host.

You initiate replication from the host containing the snapshot that you want to replicate, hereafter called the source host. The host that you are replicating to is the target host. The replication service works as follows:

  1. Initiate replication with the mvmcli snapshot replicate command on the CLI of the source host. See Replicating a Snapshot. Specify the snapshot you want to replicate and the target host.
  2. A service on the target host, mvcsnapd, accepts the request, which includes the list of files and PMEM data that comprise the snapshot.
  3. The mvcsnapd service writes the file list and the metadata to the target host's storage.
  4. The mvcsnapd service then copies the PMEM data from the source host to the target host PMEM.
  5. The mvcsnapd service returns a success message to the mvmcli process on the source host.
  6. If the replication fails, the mvcsnapd service writes error messages to its log file, mvcsnapd.log.

Memory Machine does not prevent the replicated snapshot from being restored to a runnining state on the target host, even if the instance containing the original snapshot is still running on the source machine. However, MemVerge recommends having only one running instance across the copies, otherwise undefined behavior can occur due to identity and resource conflicts. If multiple running instances are desired, each additional instance should be a separate clone of the base instance so that they each have unique identities and resources. See Cloning an Instance with CLI.