原理
介绍HyperClone特性的实现原理。
相关概念
概念 |
描述 |
---|---|
ROW(Redirect-On-Write)技术 |
写时重定向技术,是快照的实现技术。在写数据时,将新数据写入到新的存储位置,并将被修改数据块的指针指向新的存储位置,旧的数据作为快照数据。 |
Pair |
在HyperClone中,一个源LUN和一个目标LUN构成一个Pair。Pair主要用于表示源LUN和目标LUN之间的镜像关系。 同一个源LUN可以与不同的目标LUN组成多个不同的HyperClone Pair。一个目标LUN只能加入一个到HyperClone Pair。 |
同步 |
将数据从源LUN拷贝至目标LUN。 |
反向同步 |
当需要恢复源LUN数据时,可将目标LUN数据反向同步到源LUN。 |
差异拷贝 |
对比差异位图,同步源LUN差异数据到目标LUN。 |
一致性组 |
多个业务相关联的Pair的集合。 |
保护对象 |
对用户而言,保护对象的表现形式为LUN或保护组,即通过存储特性(例如远程复制特性)对LUN或保护组进行备份、容灾等保护。
保护组与LUN组区别: LUN组:用于映射场景,用户可以根据不同主机或应用来划分LUN组。 保护组:用于一致性组的数据保护场景,用户可以按不同的应用来规划数据保护策略,也可以为应用中的不同组件来选择不同的数据保护策略,还可以将多个应用中有相同保护场景的LUN统一进行保护。例如,当用户将多个应用中有相同保护场景的LUN统一进行保护时,可以把不同应用中有相同保护场景的LUN组合成LUN组并把LUN组映射给主机或主机组,然后对LUN组创建保护组,完成对多个应用中有相同保护场景的LUN统一的数据保护。 |
原理概述
HyperClone可以提供源LUN同步时刻的全量的数据副本,目标LUN是立即可读写的,不需要等待后台拷贝完成。源LUN和目标LUN在物理空间上完全隔离,针对成员LUN的操作互相不影响。当源LUN数据被破坏时可以从目标LUN反向同步数据到源LUN。对源LUN和目标LUN的写入记录差异位图,支撑后面的增量同步。HyperClone的实现阶段包括同步和反向同步,具体的原理如图1-1和图1-2所示。其中读写原理如图1-3和图1-4所示。
同步
HyperClone Pair启动同步时,存储系统对源LUN生成一个即时快照,并将源LUN在该时刻的快照数据全量同步到目标LUN,并将后续的写操作记录到差异位图中,后续用户再执行数据同步时,通过查看差异位图,将差异数据同步至目标LUN。
再次同步后,目标LUN两次同步间修改的数据将被覆盖。用户可以在数据再次同步前通过对目标LUN创建快照的方式,保留对目标LUN数据的修改。
同步过程的原理如图1-1所示。
反向同步
当源LUN损坏时,可以通过把目标LUN数据反向同步到源LUN实现对源LUN的保护。反向同步支持全量拷贝和差异拷贝两种。启动反向同步时存储系统对目标LUN生成快照,将目标LUN该时刻的快照数据全量同步到源LUN;对于增量同步,通过对比目标LUN和源LUN,将差异数据增量同步至源LUN。
反向同步过程的原理如图1-2所示。
读写原理
HyperClone数据同步状态分为同步中和非同步中两个状态。不同的状态对源LUN和目标LUN的读写I/O处理不同。
- 非同步中状态下,HyperClone的成员LUN数据独立,直接读写(含修改)源LUN或目标LUN。
非同步中的状态包括:未同步和正常。
非同步中的读写原理如图1-3所示。
- 同步中状态的读写原理如下:
- 对源LUN的读写,直接读写(含修改)源LUN。
- 对目标LUN的读操作,如果数据在目标LUN命中则直接读取(数据已同步);如果读数据在目标LUN未命中(数据尚未同步),则到源LUN的快照中读取。
对目标LUN的写操作,如果数据已经同步,则进行覆盖写;未同步数据进行新写,待数据同步到目标LUN时,如果发现该位置主机已经写入数据则放弃同步。这样保证了目标LUN在同步未完成时也可以读写。
同步中的状态包括:同步中、同步暂停、全量反向同步中、差异反向同步中、全量反向同步暂停、差异反向同步暂停。
同步中的读写原理如图1-4所示。