故障现象:
VNX Snapshot是VNX for Block OE Release 5.32的一个新功能,可用于数据备份、软件开发和测试、数据验证、本地快速恢复等。
解决方案:
概要 目前,VNX Snapshot只能用于Pool LUN,而RAID Group LUN只支持SnapView Snapshot,这个限制是由于VNX Snapshot需要Pool空间作为其技术实现的一部分。SnapView Snapshot与Pool LUN是兼容的,也就说,VNX Snapshot和SnapView Snapshot可以在同一个Pool LUN上共存。 VNX Snapshot支持256个可写Snap/pool LUN,也支持分支(Branching),即Snap的Snap,分支没有限制,只要一个primary LUN的snap总数不超过256即可。另外我们还引入了Consistency Group,可以将多个Pool LUN放在一个Consistency Group里同时做Snap。 Snapshot如何工作? VNX Snapshot使用Redirect on write (ROW) 技术,将针对primary LUN的new write重定向到Pool中新的位置,这种实现不同于copy on first write (COFW)。 (下图)可以非常明显得看出,VNX Snapshot对于New write的操作更简洁,在性能上优于SnapView Snapshot。 同样,对于Read(下图),VNX Snapshot从一个位置就能读取Snapped Data。
每一个VNX Snapshot的粒度是8KB,就是说每一个write占用至少8KB Pool空间。8KB block在1GB Slice中的分布使用了与常规Thin write一致的算法。我们来举例观察VNX Snapshot对于Write是如何处理的。 首先,为Primary LUN创建Snap,两者均指向相同的数据块(下图)
之后,Primary LUN的A数据块被修改成了A’,第一个Snap依旧指向原先的A,B,C,D,如果此时我们再做一个Snap2,那么它将指向A’,B,C,D。当下一个Write修改了D->D’,那么PrimaryLUN将指向A’,B,C,D’。
Snapshot Mount Point(SMP) SMP是一个virtual LUN-like的容器,用来仿真一个常规的LUN,它使得主机能够写入Snapshot,并且提供了不需要重新扫描SCSI总线的情况下就能变更Snapshot的能力,即将另一个snapshot加载到该SMP上。SMP是为一个LUN的snapshot所创建的,也就是说,每一个SMP只能被单个primary LUN的snapshot来使用。要使得主机能够访问snapshot,必须将SMP加入Storage Group,就像常规的LUN一样。 |