-----------------------------------重要说明------------------------------------
以下部分内容来网络,部分自华为存储官方教材
具体教材内容请移步华为存储官网进行教材下载
网络引用内容无法找到原创,如有侵权请通知
------------------------------------重要说明------------------------------------
a. 定义
SNIA( Storage Networking Industry Association)对快照( Snapshot)的定义是:快照是对指定数据集合的一个完全可用的拷贝,该拷贝包含源数据拷贝时间点的静态映像。快照可用于生产测试、数据备份与恢复。
InfoStamper是OceanStor 9000提供的基于目录级别的快照特性,支持对文件系统内的任意目录创建快照(文件系统根目录除外),可瞬间完成快照,方便用户对重要数据进行备份且不影响业务。
OceanStor 9000还支持周期性地为源数据创建快照,即创建定时快照。通过设置定时快照策略可以保存源数据在多个时间点的数据副本,从而使源数据得到持续保护。
b. 概念介绍
l COW( Copy On Write)
写时拷贝,是一种快照技术,即受快照保护的数据要发生变化时,先将待修改的数据对象拷贝至另一个存储位置,保存下来作为快照版本,再将修改的数据覆盖写入原数据对象中。
由于COW的过程中需要执行1次读操作和2次写操作,故结合元数据写操作少、读操作多、占用空间少等特点, OceanStor 9000对元数据使用COW技术。
l ROW( Redirect On Write)
重定向写,是一种快照技术,即受快照保护的数据要发生变化时,将修改的数据写入新的存储位置,不覆盖当前的数据。
OceanStor 9000对数据使用ROW技术。由于数据量大,采用ROW的方式,减小对系统的性能影响。
c. 元数据 COW
元数据COW,是指快照后第一次修改元数据前,对文件/目录的inode和dentry进行一次拷贝,生成元数据对应的快照版本后,再对原始元数据进行修改。一旦快照版本生成后,在同一快照保护内对该文件原始位置元数据的再次修改将不会再次执行COW操作,而是直接更新原始位置的元数据。
d. 数据 ROW
数据ROW,是指快照后数据写入新的对象中,不覆盖原来的对象。
e. 快照数据读取
对于文件系统,快照需要保存的是文件的数据内容和元数据内容。快照遵从最小开销的原则,只记录变化的内容,对于没有发生变化的内容共用。这就意味着快照的不同版本之间、快照同当前版本之间存在着共用的数据。
数据的对象之间根据快照版本存在着向前依赖的关系。因此在读取快照数据时,系统根据对象的依赖关系确定应从哪个对象中读取。
1. 在文件未被快照保护前,数据写入对象V.0中。对数据的任何修改操作,直接写入对象V.0进行覆盖。
2. 创建快照10,数据未发生任何改变时,从对象V.10中对数据进行读写。默认的,在数据分条没有发生写操作的情况下,数据分条向前依赖,均指向对象V.0中。
3. 创建快照10后,数据发生改变时,变化的数据( Stripe3、 Stripe4、 Stripe5)写入到对象V.10中,未变化的数据( Stripe1、 Stripe2)根据向前依赖关系从对象V.0中读取。
4. 创建快照20,数据未发生任何改变时,根据向前依赖关系从对象V.20中对数据进行读取。
5. 创建快照20后,数据发生改变时,变化的数据( Stripe1、 Stripe3、 Stripe5)写入到对象V.20中,未变化的数据Stripe2从对象V.0中读取, Stripe4从对象V.10中读取。
f. 快照删除
1. 当前文件存在快照10和快照20,文件数据从当前对象( V.20)中读取。
2. 删除快照20,因Stripe3@snap20和Stripe5@snap20为快照20独有数据故删除,当前文件依旧遵循向前依赖的关系从对象V.10中读取Stripe4数据故保留。其他未发生变化的数据依旧遵循向前依赖的关系从对象V.0中读取。
g. 快照回滚
快照回滚是指将当前数据恢复到某个时刻的快照数据。
InfoStamper的快照回滚功能目前仅应用于InfoReplicator特性中,且只支持最新快照的回滚。若需要回滚到非最新快照版本,需要删除回滚版本之后的快照,再执行回滚操作。
1. 当前文件存在快照10和快照20,文件数据从当前对象( V.20)中读取。
2. 删除快照20,回滚到快照10,拷贝快照10( V.0)中的快照数据并覆盖到当前对象( V.20)中。其他未发生变化的数据依旧遵循向前依赖的关系从对象V.0中读取。