- Ceph Cookbook
- Karan Singh
- 323字
- 2021-07-16 13:01:17
Working with RBD snapshots
Ceph extends full support to snapshots, which are point-in-time, read-only copies of an RBD image. You can preserve the state of a Ceph RBD image by creating snapshots and restoring the snapshot to get the original data.
How to do it…
Let's see how a snapshot works with Ceph.
- To test the snapshot functionality of Ceph, let's create a file on the block device that we created earlier:
# echo "Hello Ceph This is snapshot test" > /mnt/ceph-disk1/snapshot_test_file
- Create a snapshot for the Ceph block device:
Syntax:
rbd snap create <pool-name>/<image-name>@<snap-name>
# rbd snap create rbd/rbd1@snapshot1 --name client.rbd
- To list the snapshots of an image, use the following:
Syntax:
rbd snap ls <pool-name>/<image-name>
# rbd snap ls rbd/rbd1 --name client.rbd
- To test the snapshot restore functionality of Ceph RBD, let's delete files from the filesystem:
# rm -f /mnt/ceph-disk1/*
- We will now restore the Ceph RBD snapshot to get back the files that we deleted in the last step. Please note that a rollback operation will overwrite the current version of the RBD image and its data with the snapshot version. You should perform this operation carefully:
Syntax:
rbd snap rollback <pool-name>/<image-name>@<snap-name>
# rbd snap rollback rbd/rbd1@snapshot1 --name client.rbd
- Once the snapshot rollback operation is completed, remount the Ceph RBD filesystem to refresh the filesystem state. You should be able to get your deleted files back:
# umount /mnt/ceph-disk1 # mount /dev/rbd1 /mnt/ceph-disk1 # ls -l /mnt/ceph-disk1
- When you no longer need snapshots, you can remove a specific snapshot using the following syntax. Deleting the snapshot will not delete your current data on the Ceph RBD image:
Syntax:
rbd snap rm <pool-name>/<image-name>@<snap-name>
# rbd snap rm rbd/rbd1@snapshot1 --name client.rbd
- If you have multiple snapshots of an RBD image and you wish to delete all the snapshots with a single command, then use the
purge
sub command:Syntax:
rbd snap purge <pool-name>/<image-name>
# rbd snap purge rbd/rbd1 --name client.rbd
推薦閱讀
- Apache ZooKeeper Essentials
- Interactive Data Visualization with Python
- Python高級機器學習
- 21天學通C++(第6版)
- Redis Essentials
- Symfony2 Essentials
- .NET 3.5編程
- Quantum Computing and Blockchain in Business
- Django 3.0入門與實踐
- Unity&VR游戲美術設計實戰
- C++ Fundamentals
- 從零開始學Python網絡爬蟲
- Learning Kotlin by building Android Applications
- C語言程序設計教程
- Mastering Object:Oriented Python(Second Edition)