:pve-toplevel:
endif::manvolnum[]
-The `pvesr` command line tool manages the {PVE} storage replication
+The `pvesr` command-line tool manages the {PVE} storage replication
framework. Storage replication brings redundancy for guests using
local storage and reduces migration time.
Each replications bandwidth can be limited, to avoid overloading a storage
or server.
-Guests with replication enabled can currently only be migrated offline.
Only changes since the last replication (so-called `deltas`) need to be
transferred if the guest is migrated to a node to which it already is
replicated. This reduces the time needed significantly. The replication
[IMPORTANT]
====
-High-Availability is allowed in combination with storage replication, but it
-has the following implications:
-
-* as live-migrations are currently not possible, redistributing services after
- a more preferred node comes online does not work. Keep that in mind when
- configuring your HA groups and their priorities for replicated guests.
-
-* recovery works, but there may be some data loss between the last synced
- time and the time a node failed.
+High-Availability is allowed in combination with storage replication, but there
+may be some data loss between the last synced time and the time a node failed.
====
Supported Storage Types
.Storage Types
[width="100%",options="header"]
-|============================================
-|Description |PVE type |Snapshots|Stable
+|=============================================
+|Description |Plugin type |Snapshots|Stable
|ZFS (local) |zfspool |yes |yes
-|============================================
+|=============================================
[[pvesr_schedule_time_format]]
Schedule Format
---------------
-
-{pve} has a very flexible replication scheduler. It is based on the systemd
-time calendar event format.footnote:[see `man 7 systemd.time` for more information]
-Calendar events may be used to refer to one or more points in time in a
-single expression.
-
-Such a calendar event uses the following format:
-
-----
-[day(s)] [[start-time(s)][/repetition-time(s)]]
-----
-
-This format allows you to configure a set of days on which the job should run.
-You can also set one or more start times. It tells the replication scheduler
-the moments in time when a job should start.
-With this information we, can create a job which runs every workday at 10
-PM: `'mon,tue,wed,thu,fri 22'` which could be abbreviated to: `'mon..fri
-22'`, most reasonable schedules can be written quite intuitive this way.
-
-NOTE: Hours are formatted in 24-hour format.
-
-To allow a convenient and shorter configuration, one or more repeat times per
-guest can be set. They indicate that replications are done on the start-time(s)
-itself and the start-time(s) plus all multiples of the repetition value. If
-you want to start replication at 8 AM and repeat it every 15 minutes until
-9 AM you would use: `'8:00/15'`
-
-Here you see that if no hour separation (`:`), is used the value gets
-interpreted as minute. If such a separation is used, the value on the left
-denotes the hour(s), and the value on the right denotes the minute(s).
-Further, you can use `*` to match all possible values.
-
-To get additional ideas look at
-xref:pvesr_schedule_format_examples[more Examples below].
-
-Detailed Specification
-~~~~~~~~~~~~~~~~~~~~~~
-
-days:: Days are specified with an abbreviated English version: `sun, mon,
-tue, wed, thu, fri and sat`. You may use multiple days as a comma-separated
-list. A range of days can also be set by specifying the start and end day
-separated by ``..'', for example `mon..fri`. These formats can be mixed.
-If omitted `'*'` is assumed.
-
-time-format:: A time format consists of hours and minutes interval lists.
-Hours and minutes are separated by `':'`. Both hour and minute can be list
-and ranges of values, using the same format as days.
-First are hours, then minutes. Hours can be omitted if not needed. In this
-case `'*'` is assumed for the value of hours.
-The valid range for values is `0-23` for hours and `0-59` for minutes.
-
-[[pvesr_schedule_format_examples]]
-Examples:
-~~~~~~~~~
-
-.Schedule Examples
-[width="100%",options="header"]
-|==============================================================================
-|Schedule String |Alternative |Meaning
-|mon,tue,wed,thu,fri |mon..fri |Every working day at 0:00
-|sat,sun |sat..sun |Only on weekends at 0:00
-|mon,wed,fri |-- |Only on Monday, Wednesday and Friday at 0:00
-|12:05 |12:05 |Every day at 12:05 PM
-|*/5 |0/5 |Every five minutes
-|mon..wed 30/10 |mon,tue,wed 30/10 |Monday, Tuesday, Wednesday 30, 40 and 50 minutes after every full hour
-|mon..fri 8..17,22:0/15 |-- |Every working day every 15 minutes between 8 AM and 6 PM and between 10 PM and 11 PM
-|fri 12..13:5/20 |fri 12,13:5/20 |Friday at 12:05, 12:25, 12:45, 13:05, 13:25 and 13:45
-|12,14,16,18,20,22:5 |12/2:5 |Every day starting at 12:05 until 22:05, every 2 hours
-|* |*/1 |Every minute (minimum interval)
-|==============================================================================
+Replication uses xref:chapter_calendar_events[calendar events] for
+configuring the schedule.
Error Handling
--------------
Node A failed and can not get back online. Now you have to migrate the guest
to Node B manually.
-- connect to node B over ssh or open its shell via the WebUI
+- connect to node B over ssh or open its shell via the web UI
- check if that the cluster is quorate
+
[thumbnail="screenshot/gui-qemu-add-replication-job.png"]
You can use the web GUI to create, modify, and remove replication jobs
-easily. Additionally, the command line interface (CLI) tool `pvesr` can be
+easily. Additionally, the command-line interface (CLI) tool `pvesr` can be
used to do this.
You can find the replication panel on all levels (datacenter, node, virtual
This ID must only be specified manually if the CLI tool is used.
-Command Line Interface Examples
+Command-line Interface Examples
-------------------------------
Create a replication job which runs every 5 minutes with a limited bandwidth