打开cephfs快照功能
ceph fs set FILE_SYSTEM_NAME allow_new_snaps true
# 例如 cephfs01 为cephfs所建文件系统的名称
ceph fs set cephfs01 allow_new_snaps true
打开之后,所有的目录(包括各级子目录)下面都会有一个隐藏的.snap目录
创建快照
# 将cephfs 根目录挂载到/cephfs下
mount -t ceph 192.168.50.1:6789,192.168.50.2:6789,192.168.50.3:6789:/ /cephfs -o name=admin,secret=AQCIYftiz3PhFhAAaF+b/5YYeMaO2CmQW410qw==,_netdev
# 进入需要创建快照的某目录 test66
[root@test-ceph01 .snap]# ceph fs set cephfs allow_new_snaps true
enabled new snapshots
[root@test-ceph01 .snap]# cd /cephfs/test66/.snap
[root@test-ceph01 .snap]# pwd
/cephfs/test66/.snap
[root@test-ceph01 .snap]# ls /cephfs/test66
123 hd-ptest-backup
# 创建快照,快照名为snap_20240808
[root@test-ceph01 .snap]# mkdir snap_20240808
[root@test-ceph01 .snap]# ls
snap_20240808
# snap_20240808 快照目录 里面是此刻test66下内容的快照
[root@test-ceph01 .snap]# ls snap_20240808/
123 hd-ptest-backup
注:
1. 如果这个时候在往test66目录里面写入数据,快照的内容只是到这一刻的(写入中文件可能只有一部分内容)
2. 如果不打开allow_new_snaps ,是不允许在.snap目录下面创建文件夹的
3. .snap/snap_20240808 里面的内容是readonly的,是不允许操作的
4. .snap文件夹名是可以改的,通过client_snapdir 参数设定。不建议修改
5. 创建快照不会额外增加ceph磁盘占用空间
6. 单个目录的.snap下面只能创建最多100个快照(目录),超过100个会创建失败
7. 快照(目录)可以mv改名
删除快照
# 进入要删快照的目录
[root@test-ceph01 .snap]# pwd
/cephfs/test66/.snap
[root@test-ceph01 .snap]# ls
snap_20240808
# rmdir 删除快照
[root@test-ceph01 .snap]# rmdir snap_20240808
注:
1. 不支持用 rm -rf snap_20240808来删除快照, 只能用rmdir
2. test66里面的文件删除了,磁盘空间不会释放,快照目录里面还有,可以使用cp恢复过去。快照也删除后磁盘空间才会释放
3. 删除文件,再删除快照,ceph会做snaptrim,如果数据变动太大,snaptrim的时间也会很长
4. 对于要创建快照的目录,最好是不要被删除的,快照是隐藏的,如果删除目录里面包含快照,rm/rm -rf/rmdir test66是删不掉的。 只能先把快照给删了,再删目录