================== RBD Snapshotting ================== One of the advanced features of RADOS block devices is that you can create snapshots of the images to retain a history of an image's state. Ceph supports RBD snapshots from the ``rbd`` command, from a kernel object, from a KVM, and from cloud solutions. Once you create snapshots of an image, you can rollback to a snapshot, list snapshots, remove snapshots and purge the snapshots. .. important:: To use use RBD snapshots, you must have a running Ceph cluster. .. warning:: Stop i/o before snapshotting an image. If the image contains a filesystem, the filesystem must be in a consistent state before snapshotting. Create Snapshot =============== To create a snapshot with ``rbd``, specify the ``snap create`` option, the pool name, the image name and the username. If you use ``cephx`` for authentication, you must also specify a key or a secret file. :: rbd --name {user-name} --keyfile=/path/to/secret --pool {pool-name} snap create --snap {snap-name} {image-name} For example:: rbd --name client.admin --pool rbd snap create --snap foo.snapname foo List Snapshots ============== To list snapshots of an image, specify the pool name, the image name, and the username. If you use ``cephx`` for authentication, you must also specify a key or a secret file. :: rbd --name {user-name} --keyfile=/path/to/secret --pool {pool-name} snap ls {image-name} For example:: rbd --name client.admin --pool rbd snap ls foo Rollback Snapshot ================= To rollback a snapshot with ``rbd``, specify the ``snap rollback`` option, the pool name, the image name and the username. If you use ``cephx`` for authentication, you must also specify a key or a secret file. :: rbd --name {user-name} --keyfile=/path/to/secret --pool {pool-name} snap rollback --snap {snap-name} {image-name} For example:: rbd --name client.admin --pool rbd snap rollback --snap foo.snapname foo Delete a Snapshot ================= To delete a snapshot with ``rbd``, specify the ``snap rm`` option, the pool name, the image name and the username. If you use ``cephx`` for authentication, you must also specify a key or a secret file. :: rbd --name {user-name} --keyfile=/path/to/secret --pool {pool-name} snap rm --snap {snap-name} {image-name} For example:: rbd --name client.admin --pool rbd snap rm --snap foo.snapname foo