blob: a60be96ed535f24db8ab611dc4d2d0a5fba0cf01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
================
CephFS Snapshots
================
CephFS snapshots create an immutable view of the file system at the point
in time they are taken. CephFS support snapshots which is managed in a
special hidden subdirectory named ``.snap`` .Snapshots are created using
``mkdir`` inside this directory.
Snapshots can be exposed with a different name by changing the following client configurations.
- ``snapdirname`` which is a mount option for kernel clients
- ``client_snapdir`` which is a mount option for ceph-fuse.
Snapshot Creation
==================
CephFS snapshot feature is enabled by default on new file systems. To enable
it on existing file systems, use the command below.
.. code-block:: bash
$ ceph fs set <fs_name> allow_new_snaps true
When snapshots are enabled, all directories in CephFS will have a special ``.snap``
directory. (You may configure a different name with the client snapdir setting if
you wish.)
To create a CephFS snapshot, create a subdirectory under ``.snap`` with a name of
your choice.
For example, to create a snapshot on directory ``/file1/``, invoke ``mkdir /file1/.snap/snapshot-name``
.. code-block:: bash
$ touch file1
$ cd .snap
$ mkdir my_snapshot
Using snapshot to recover data
===============================
Snapshots can also be used to recover some deleted files.
- ``create a file1 and create snapshot snap1``
.. code-block:: bash
$ touch /mnt/cephfs/file1
$ cd .snap
$ mkdir snap1
- ``create a file2 and create snapshot snap2``
.. code-block:: bash
$ touch /mnt/cephfs/file2
$ cd .snap
$ mkdir snap2
- ``delete file1 and create a new snapshot snap3``
.. code-block:: bash
$ rm /mnt/cephfs/file1
$ cd .snap
$ mkdir snap3
- ``recover file1 using snapshot snap2 using cp command``
.. code-block:: bash
$ cd .snap
$ cd snap2
$ cp file1 /mnt/cephfs/
Snapshot Deletion
==================
Snapshots are deleted by invoking ``rmdir`` on the ``.snap`` directory they are
rooted in. (Attempts to delete a directory which roots the snapshots will fail;
you must delete the snapshots first.)
.. code-block:: bash
$ cd .snap
$ rmdir my_snapshot
|