mirror of
https://github.com/zrepl/zrepl.git
synced 2024-11-25 09:54:47 +01:00
Merge branch 'problame/0.1-docs-fixes'
This commit is contained in:
commit
84eca86e14
@ -26,7 +26,8 @@ Check out the *Coding Workflow* section below for details.
|
|||||||
* Make sure your distro is compatible with the paths in `docs/installation.rst`.
|
* Make sure your distro is compatible with the paths in `docs/installation.rst`.
|
||||||
* Ship a default config that adheres to your distro's `hier` and logging system.
|
* Ship a default config that adheres to your distro's `hier` and logging system.
|
||||||
* Ship a service manager file and _please_ try to upstream it to this repository.
|
* Ship a service manager file and _please_ try to upstream it to this repository.
|
||||||
* `dist/systemd` contains a Systemd unit template
|
* `dist/systemd` contains a Systemd unit template.
|
||||||
|
* Ship other material provided in `./dist`, e.g. in `/usr/share/zrepl/`.
|
||||||
* Use `make release ZREPL_VERSION='mydistro-1.2.3_1'`
|
* Use `make release ZREPL_VERSION='mydistro-1.2.3_1'`
|
||||||
* Your distro's name and any versioning supplemental to zrepl's (e.g. package revision) should be in this string
|
* Your distro's name and any versioning supplemental to zrepl's (e.g. package revision) should be in this string
|
||||||
* Make sure you are informed about new zrepl versions, e.g. by subscribing to GitHub's release RSS feed.
|
* Make sure you are informed about new zrepl versions, e.g. by subscribing to GitHub's release RSS feed.
|
||||||
@ -62,6 +63,7 @@ Make sure to develop an understanding how zrepl is typically used by studying th
|
|||||||
│ ├── streamrpcconfig # abstraction for configuration of go-streamrpc
|
│ ├── streamrpcconfig # abstraction for configuration of go-streamrpc
|
||||||
│ └── transport # transports implementation
|
│ └── transport # transports implementation
|
||||||
├── docs # sphinx-based documentation
|
├── docs # sphinx-based documentation
|
||||||
|
├── dist # supplemental material for users & package maintainers
|
||||||
│ ├── **/*.rst # documentation in reStructuredText
|
│ ├── **/*.rst # documentation in reStructuredText
|
||||||
│ ├── sphinxconf
|
│ ├── sphinxconf
|
||||||
│ │ └── conf.py # sphinx config (see commit 445a280 why its not in docs/)
|
│ │ └── conf.py # sphinx config (see commit 445a280 why its not in docs/)
|
||||||
|
@ -94,10 +94,15 @@ Changes
|
|||||||
* |feature| ``zrepl status`` for live-updating replication progress (it's really cool!)
|
* |feature| ``zrepl status`` for live-updating replication progress (it's really cool!)
|
||||||
* |feature| :issue:`67`: Expose `Prometheus <https://prometheus.io>`_ metrics via HTTP (:ref:`config docs <monitoring-prometheus>`)
|
* |feature| :issue:`67`: Expose `Prometheus <https://prometheus.io>`_ metrics via HTTP (:ref:`config docs <monitoring-prometheus>`)
|
||||||
|
|
||||||
|
* Compatible Grafana dashboard shipping in ``dist/grafana``
|
||||||
|
|
||||||
* |break_config| Logging outlet types must be specified using the ``type`` instead of ``outlet`` key
|
* |break_config| Logging outlet types must be specified using the ``type`` instead of ``outlet`` key
|
||||||
* |break| :issue:`53`: CLI: ``zrepl control *`` subcommands have been made direct subcommands of ``zrepl *``
|
* |break| :issue:`53`: CLI: ``zrepl control *`` subcommands have been made direct subcommands of ``zrepl *``
|
||||||
* |bugfix| Goroutine leak on ssh transport connection timeouts
|
* |bugfix| Goroutine leak on ssh transport connection timeouts
|
||||||
* |bugfix| :issue:`81` :issue:`77` : handle failed accepts correctly (``source`` job)
|
* |bugfix| :issue:`81` :issue:`77` : handle failed accepts correctly (``source`` job)
|
||||||
|
* |bugfix| :issue:`100`: fix incompatibility with ZoL 0.8
|
||||||
|
* |feature| :issue:`115`: logging: configurable syslog facility
|
||||||
|
* |feature| Systemd unit file in ``dist/systemd``
|
||||||
|
|
||||||
.. |lastrelease| replace:: 0.0.3
|
.. |lastrelease| replace:: 0.0.3
|
||||||
|
|
||||||
@ -107,8 +112,3 @@ Previous Releases
|
|||||||
.. NOTE::
|
.. NOTE::
|
||||||
Due to limitations in our documentation system, we only show the changelog since the last release and the time this documentation is built.
|
Due to limitations in our documentation system, we only show the changelog since the last release and the time this documentation is built.
|
||||||
For the changelog of previous releases, use the version selection in the hosted version of these docs at `zrepl.github.io <https://zrepl.github.io>`_.
|
For the changelog of previous releases, use the version selection in the hosted version of these docs at `zrepl.github.io <https://zrepl.github.io>`_.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
W
|
|
||||||
|
@ -14,7 +14,7 @@ Job Types & Replication
|
|||||||
Overview & Terminology
|
Overview & Terminology
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
A *job* is the unit of activity tracked by the zrepl daemon and configured in the |mainconfig|.
|
A *job* is the unit of activity tracked by the zrepl daemon.
|
||||||
Every job has a unique ``name``, a ``type`` and type-dependent fields which are documented on this page.
|
Every job has a unique ``name``, a ``type`` and type-dependent fields which are documented on this page.
|
||||||
|
|
||||||
Replication always happens between a pair of jobs: one is the **active side**, and one the **passive side**.
|
Replication always happens between a pair of jobs: one is the **active side**, and one the **passive side**.
|
||||||
@ -91,7 +91,8 @@ The following steps take place during replication and can be monitored using the
|
|||||||
|
|
||||||
* Perform replication steps in the following order:
|
* Perform replication steps in the following order:
|
||||||
Among all filesystems with pending replication steps, pick the filesystem whose next replication step's snapshot is the oldest.
|
Among all filesystems with pending replication steps, pick the filesystem whose next replication step's snapshot is the oldest.
|
||||||
* After a successful replication step, update the replication cursor bookmark (see below)
|
* Create placeholder filesystems on the receiving side to mirror the dataset paths on the sender to ``root_fs/${client_identity}``.
|
||||||
|
* After a successful replication step, update the replication cursor bookmark (see below).
|
||||||
|
|
||||||
The idea behind the execution order of replication steps is that if the sender snapshots all filesystems simultaneously at fixed intervals, the receiver will have all filesystems snapshotted at time ``T1`` before the first snapshot at ``T2 = T1 + $interval`` is replicated.
|
The idea behind the execution order of replication steps is that if the sender snapshots all filesystems simultaneously at fixed intervals, the receiver will have all filesystems snapshotted at time ``T1`` before the first snapshot at ``T2 = T1 + $interval`` is replicated.
|
||||||
|
|
||||||
@ -102,6 +103,14 @@ It is a bookmark of the most recent successfully replicated snapshot to the rece
|
|||||||
It is is used by the :ref:`not_replicated <prune-keep-not-replicated>` keep rule to identify all snapshots that have not yet been replicated to the receiving side.
|
It is is used by the :ref:`not_replicated <prune-keep-not-replicated>` keep rule to identify all snapshots that have not yet been replicated to the receiving side.
|
||||||
Regardless of whether that keep rule is used, the bookmark ensures that replication can always continue incrementally.
|
Regardless of whether that keep rule is used, the bookmark ensures that replication can always continue incrementally.
|
||||||
|
|
||||||
|
**Placeholder filesystems** on the receiving side are regular ZFS filesystems with the placeholder property ``zrepl:placeholder``.
|
||||||
|
Placeholders allow the receiving side to mirror the sender's ZFS dataset hierachy without replicating every filesystem at every intermediary dataset path component.
|
||||||
|
Consider the following example: ``S/H/J`` shall be replicated to ``R/sink/job/S/H/J``, but neither ``S/H`` nor ``S`` shall be replicated.
|
||||||
|
ZFS requires the existence of ``R/sink/job/S`` and ``R/sink/job/S/H`` in order to receive into ``R/sink/job/S/H/J``.
|
||||||
|
Thus, zrepl creates the parent filesystems as placeholders on the receiving side.
|
||||||
|
If at some point ``S/H`` and ``S`` shall be replicated, the receiving side invalidates the placeholder flag automatically.
|
||||||
|
The ``zrepl test placeholder`` command can be used to check whether a filesystem is a placeholder.
|
||||||
|
|
||||||
.. ATTENTION::
|
.. ATTENTION::
|
||||||
|
|
||||||
Currently, zrepl does not replicate filesystem properties.
|
Currently, zrepl does not replicate filesystem properties.
|
||||||
|
@ -7,7 +7,7 @@ Logging
|
|||||||
|
|
||||||
zrepl uses structured logging to provide users with easily processable log messages.
|
zrepl uses structured logging to provide users with easily processable log messages.
|
||||||
|
|
||||||
Logging outlets are configured in the ``global`` section of the |mainconfig|.
|
Logging outlets are configured in the ``global`` section of the config file.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Monitoring
|
Monitoring
|
||||||
==========
|
==========
|
||||||
|
|
||||||
Monitoring endpoints are configured in the ``global.monitoring`` section of the |mainconfig|.
|
Monitoring endpoints are configured in the ``global.monitoring`` section of the config file.
|
||||||
|
|
||||||
.. _monitoring-prometheus:
|
.. _monitoring-prometheus:
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
.. global list of substitutions
|
.. global list of substitutions
|
||||||
|
|
||||||
.. |mainconfig| replace:: :ref:`main configuration file <mainconfigfile>`
|
..
|
||||||
|
.. |macroname| replace:: macro expansion
|
||||||
|
@ -77,7 +77,8 @@ We are happy about any help we can get!
|
|||||||
* These docs live in the ``docs/`` subdirectory
|
* These docs live in the ``docs/`` subdirectory
|
||||||
|
|
||||||
* Document any non-obvious / confusing / plain broken behavior you encounter when setting up zrepl for the first time
|
* Document any non-obvious / confusing / plain broken behavior you encounter when setting up zrepl for the first time
|
||||||
* Check the *Issues* and *Projects* sections for things to do
|
* Check the *Issues* and *Projects* sections for things to do.
|
||||||
|
The `good first issues <https://github.com/zrepl/zrepl/labels/good%20first%20issue>`_ and `docs <https://github.com/zrepl/zrepl/labels/docs>`_ are suitable starting points.
|
||||||
|
|
||||||
.. admonition:: Development Workflow
|
.. admonition:: Development Workflow
|
||||||
:class: note
|
:class: note
|
||||||
|
@ -80,8 +80,6 @@ Either way, all build results are located in the ``artifacts/`` directory.
|
|||||||
It is your job to install the apropriate binary in the zrepl users's ``$PATH``, e.g. ``/usr/local/bin/zrepl``.
|
It is your job to install the apropriate binary in the zrepl users's ``$PATH``, e.g. ``/usr/local/bin/zrepl``.
|
||||||
Otherwise, the examples in the :ref:`tutorial` may need to be adjusted.
|
Otherwise, the examples in the :ref:`tutorial` may need to be adjusted.
|
||||||
|
|
||||||
.. _mainconfigfile:
|
|
||||||
|
|
||||||
What next?
|
What next?
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ The Linux equivalent might look like this: ::
|
|||||||
Summary
|
Summary
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Congratulations, you have a working pull backup. Where to go next?
|
Congratulations, you have a working push backup. Where to go next?
|
||||||
|
|
||||||
* Read more about :ref:`configuration format, options & job types <configuration_toc>`
|
* Read more about :ref:`configuration format, options & job types <configuration_toc>`
|
||||||
* Configure :ref:`logging <logging>` \& :ref:`monitoring <monitoring>`.
|
* Configure :ref:`logging <logging>` \& :ref:`monitoring <monitoring>`.
|
||||||
|
Loading…
Reference in New Issue
Block a user