Skip to content

Commit 969d23e

Browse files
authored
Merge pull request ceph#57372 from ceph/wip-lusov-quiesce-docs
doc/cephfs: expand the role of quiesce in consistent backups Reviewed-by: Zac Dover <[email protected]> Reviewed-by: Patrick Donnelly <[email protected]>
2 parents 281614e + 34ec2a4 commit 969d23e

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

doc/cephfs/fs-volumes.rst

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -790,32 +790,39 @@ pinned to one of the available ranks on the file system.
790790
Subvolume quiesce
791791
-----------------
792792

793-
It may be needed to pause IO to a set of subvolumes of a given volume (file system).
794-
A good example of such case is a consistent snapshot spanning multiple subvolumes.
795-
The task arises often in an orchestrated environment such as Kubernetes, where a single deployed application
796-
can work with many mounted subvolumes across several hosts. When a snapshot of such a system is needed,
797-
the application may not find the result consistent unless the snapshots were taken
798-
during an active write pause.
793+
CephFS snapshots do not provide strong-consistency guarantees in cases involving writes
794+
performed by multiple clients, which makes consistent backups and disaster recovery a serious
795+
challenge for distributed applications. Even in a case where an application uses
796+
file system flushes to synchronize checkpoints across its distributed components, there is
797+
no guarantee that all acknowledged writes will be part of a given snapshot.
799798

800-
The `volumes` plugin provides a tool to initiate and await such a pause across a set of subvolumes:
799+
The subvolume quiesce feature has been developed to provide enterprise-level consistency guarantees
800+
for multi-client applications that work with one or more subvolumes. The feature makes it possible to pause IO
801+
to a set of subvolumes of a given volume (file system). Enforcing such a pause across all clients makes
802+
it possible to guarantee that any persistent checkpoints reached by the application before the pause
803+
will be recoverable from the snapshots made during the pause.
804+
805+
The `volumes` plugin provides a CLI to initiate and await the pause for a set of subvolumes.
806+
This pause is called a `quiesce`, which is also used as the command name:
801807

802808
.. prompt:: bash $ auto
803809

804810
$ ceph fs quiesce <vol_name> --set-id myset1 <[group_name/]sub_name...> --await
805811
# perform actions while the IO pause is active, like taking snapshots
806812
$ ceph fs quiesce <vol_name> --set-id myset1 --release --await
807-
# if successful, all members of the set were confirmed as still in pause and released from such
813+
# if successful, all members of the set were confirmed as still paused and released
808814

809-
The ``quiesce`` functionality is itself based on a lower level QuiesceDb service provided by the MDS
815+
The ``fs quiesce`` functionality is based on a lower level ``quiesce db`` service provided by the MDS
810816
daemons, which operates at a file system path granularity.
811817
The `volumes` plugin merely maps the subvolume names to their corresponding paths on the given file system
812-
and then issues the appropriate quiesce command to the MDS. You can learn more about the feature in the developer guides.
818+
and then issues the corresponding ``quiesce db`` command to the MDS. You can learn more about the low-level service
819+
in the developer guides.
813820

814821
Operations
815822
~~~~~~~~~~
816823

817-
The IO pause (referred to as `quiesce`) is requested for a group of one or more subvolumes (i.e. paths in a filesystem).
818-
The group is referred to as "quiesce set", and every quiesce set must have a unique string id to interact with.
824+
The quiesce can be requested for a set of one or more subvolumes (i.e. paths in a filesystem).
825+
This set is referred to as `quiesce set`. Every quiesce set is identified by a unique `set id`.
819826
A quiesce set can be manipulated in the following ways:
820827

821828
* **include** one or more subvolumes - quiesce set members

0 commit comments

Comments
 (0)