HDFS中snapshot快照机制
- 介绍
- 作用
- 功能实现
- 相关命令和操作
- 相关命令
介绍
- snapshot是数据存储的某一时刻的状态记录,备份(backup)则是数据存储的某一个时刻的副本
- HDFS snapshot快照是整个文件系统或某个目录在某个时刻的镜像,该镜像并不会随着源目录的改变而进行动态的更新
作用
- 数据恢复
对重要的目录进行创建snapshot的操作,当用户误操作时,可以通过snapshot来进行相关的恢复操组 - 数据备份
使用snapshot来进行整个集群,或者某些目录,文件的备份。管理员以某个时刻的snapshot作为备份的起始节点,然后通过表不同备份之间的差异性,来进行备份增量。 - 数据测试
在某些重要数据上进行测试或者实验,可能会直接将原始的数据破坏掉。可以临时的为用户针对操作的数据来创建一个snapshot,然后让用户在对应的snapshot上进行相关的实验恶化测试,从而避免对原始数据的破坏
功能实现
- HDFS快照不是数据的简单拷贝,只做差异的记录
- 对于大多不变的数据,所看到的数据其实是当前物理路径所指的内容,而发生变更的inode数据才会被快照而外拷贝,也就是所说的差异拷贝
- inode指索引节点,用来存放文件及目录的基本信息,包含时间,名称,拥有者,所在组等
- HDFS快照不会复制datanode中的块,只记录块列表和文件的大小
- HDFS快照不会对常规HDFS操作产生不利影响,修改记录按逆时针顺序进行,因此可以直接访问当前数据。通过从当前数据中减去修改来计算快照数据
相关命令和操作
- HDFS中可以针对整个文件系统或者某个目录创建快照,但是前提是相应的目录开启快照功能
- 如果针对没有启动快照功能的目录创建快照则会报错
- HDFS中可以针对已经开启快照功能的目录进行禁用快照功能的设置
- 禁用的前提是该目录所有的快照已经被删除
# 启用快照功能
hdfs dfsadmin -allowSnapshot .allenwoon
# 禁用快照功能
hdfs dfsadmin -disadminSnapshot /allenwoon