作者将本文同时发布到:EMC中文支持论坛 https://community.emc.com/docs/DOC-26618


【Q&A】SnapView Clone常见问题解答

【Q&A】SnapView Snapshot常见问题解答

【Q&A合集】VNX FAST Cache

【Q&A】VNX FAST VP

【Q&A】VNX Virtual Provisioning


介绍

 

SnapView白皮书过于冗长,理解起来困难,效率低?那就推荐你看【Q&A】系列吧,快速高效的理解SnapView。


更多信息

 

1. 什么是SnapView clone?

答:SnapView Clone是用于克隆源LUN的软件,与Snapshot不同,克隆是一个完整的源LUN副本,换句话说,克隆本身也是一个LUN,因此对空间的要求比较高,而且初始同步会比snapshot(瞬间创建)慢得多,但初始同步完成后的后续同步将是增量的。SnapView属于本地数据保护软件,与MirrorView此类远程数据保护软件相辅相成,它们之间是可以互操作的,可参考:SnapView Snapshot一般应用场景以及与其他CLARiiON复制软件的互操作

 

2. SnapView Clone是否需要购买和安装?

答:SnapView Clone是SnapView软件的一部分,因此需要购买SnapView许可证,再通过Unispahre/Navisphere或CLI的方式在CLARiiON/VNX上安装SnapView Enabler。详细售前信息请拨打:400 650 6006。

 

Q3:能解释下克隆功能的一些术语吗?

答:SnapView Clone的术语并不多,大致解释下常用的两个,有不清楚的可以在评论中提问:


克隆组(Clone Group) - 创建克隆之前,先要创建至少一个克隆组,然后才能向克隆组里添加克隆。查看克隆组的属性可以看到源LUN和克隆LUN的一些额外信息,在General tab下有一个高级参数叫“Quiesce Threshold (sec):”,悲剧的是我居然没能在白皮书里找到对这个参数的详细描述,所以猜测用途和MirrorView的”Quiesce Threshold (sec)”差不多,即确定克隆的State(状态)属性是Consistent还是Synchronized,详细emc252137。(如果拽侧有误还请帮忙纠正,多谢!)


克隆私有LUN(Clone Private LUN) - CPL用于保存Fracture Log (bitmap),fracture log用于实现增量同步。Fracture Log以extent为单位跟踪数据变更,extent的粒度不是固定的,也不是可以设置的,而是由系统根据源LUN的大小自行决定的。最小粒度是128KB,且每1GB源LUN数据需要4KB extent size。比如一个256GB的LUN,extent size就是256*4=1MB。Fracture Log保存在CPL中是为了实现永久性,可忍耐SP reboot或故障、存储系统故障或断电。

 

Q4:克隆在没有Fracture的情况下会对源LUN的操作造成性能影响吗?

答:会。Clone采用与MirrorView/s相同的同步操作,只有当【主机写】被写入克隆LUN之后,才会返回ACK,因此带来了一定的延时。所以,克隆并不是设计用于类似MirrorView这样的灾难恢复功能的(虽然也可以用于恢复),通常克隆同步完成后,就会被Fracture,用于测试、备份、数据报告等,其实与Snapshot的用处差不多,只不过Snapshot的优势在于创建速度快,空间占用小,而克隆则可以避免对生产LUN造成影响。

 

Q: fracture 克隆LUN并用于主机读写,随后再从主机unmount,重新与源LUN进行同步,那么之前主机对clone的写入如何处理?

A4: 如果是正向同步,那么主机的写会被覆盖掉,总之同步完成后,就与源LUN一模一样。如果是反向同步,那么源LUN就会成和克隆LUN一模一样。

 

Q5: 如果想把对克隆的更改应用到Src.LUN,如何实现?

答:反向同步。几乎瞬间源LUN就同化成了克隆LUN,这是通过把对源LUN的写镜像给克隆LUN,把对源LUN的读重定向到克隆(如果该目标extend还没有被从克隆复制到源LUN)来实现的,同步完成后,源LUN和克隆LUN将是byte-for-byte copy,且克隆不会被fracture。

 

Q6: 克隆LUN的大小为什么必须和源LUN一样,而不是像SANCopy那样允许更大的目标LUN?

A6:因为克隆支持反向同步,如果克隆本身比源LUN大,不就把源LUN撑死了。

 

Q7: 如果克隆同步到一半,需要重头开始吗?

A7: 这需要分两种情况讨论,如果是初始同步断掉,需要重头开始;如果只是后续的增量同步,可以断点续传(基于bit map)。

 

Q8: 克隆LUN可以与源LUN位于不同的SP吗?

A8: 可以,但同步的时候克隆LUN会被trespass,同步完成并fracture掉后会被trespass回去。总之,只要克隆没有被fracture,它总是跟着源LUN走的。

 

Q9: 反向同步通常用于什么场景?

Q9: 比如源LUN数据坏了,可以反向同步回去,类似Snapshot回滚;或者想把源LUN的数据变得成克隆LUN一样,比如测试升级没问题时。 

建议1:反向同步之前先validate clone的有效性。

建议2:反向同步之前先flush server buffer

 

Q10: 反向同步开始之前,为什么clone group中的所有其他clone都会被自动fracture掉?

A10: 因为反向同步之后,Src.LUN的数据就变成了clone LUN的数据。如果你并不打算把其他clone也变成与new Src.LUN一样,那么必然要fracture掉他们,否则数据会会被复制给他们,这未必是你所希望的。


注意:用于执行反向同步的克隆必须offline。

 

Q11: 克隆支持一致性操作吗,比如数据库的数据LUN和日志LUN必须保持一致性?

答:从FLARE 19开始就支持了,这个功能称为clone consistent fracture,可满足对在逻辑上有写序一致性依赖的应用需求,从而实现一个时间点的多个LUN的副本是可启动的。操作方式是通过同时选中多个克隆LUN,再执行Fracture。如果在consistent fracture的过程中发生了故障,导致其中一个克隆fracture失败,所有其他的克隆会被排队进行重新同步。

 

Q12:ThinLUN可否用于Clone Private LUN?

答:不行。只有传统的RAID Group LUN可以,参考:emc281998。

 

Q14:反向同步的Protected Restore选项有什么作用?

答:这个选项确保在反向同步的时候克隆不会被修改,也就是说到源LUN的incoming writes不会被镜像给受保护的克隆LUN。反向同步完成后,克隆会被fracture,保护克隆的point-in-time copy。反向克隆完成后,一般都是需要验证源LUN被同步后的数据状态是否正确,如果因未知原因导致源LUN的数据损害或不一致,可以再次使用克隆LUN做受保护的反向克隆来恢复源LUN。

Protected Restore采用了copy-on-demand机制,对于incoming write/read,如果目标extend位于克隆,那么extend会首先从克隆LUN复制到源LUN,然后源LUN再执行读写。

 

Q15:FLARE 26引入的Fracture Log Reset功能是何用处?

答:就是用于full-resync的,如果源或克隆LUN垮掉了,可以使用clone –resetfracturelog命令把所有源或克隆LUN的data chunk标记成被修改过,从而允许用户执行full sync或reverse sync。


参考

 

EMC CLARiiONSnapView Clones – A Detailed Review


应用于

 

SnapView Clone