原理
SmartMigration特性通过业务数据同步与分裂实现了源LUN至目标LUN的业务完整迁移。本章介绍SmartMigration的相关概念和实现原理。
相关概念
- 数据组织形式
存储系统采用虚拟化存储技术。存储池中的虚拟化数据由元数据卷和数据卷两部分组成。
- 元数据卷:记录数据的存储位置,其中包含LUN ID和数据卷ID。LUN ID用以识别LUN,数据卷ID用以识别数据卷的物理空间。
- 数据卷:存放实际的用户数据。
- 源LUN
业务数据迁出的LUN。
- 目标LUN
业务数据迁入的LUN。
- LM模块
存储系统中用于管理SmartMigration的模块。
- Pair
在SmartMigration特性中,Pair用于表示源LUN和目标LUN之间的数据迁移关系。一个源LUN仅和一个目标LUN构成一个Pair。
- 双写
业务数据迁移中,将数据变更同时写入源LUN和目标LUN的过程。
- LOG
记录数据变更写入源LUN的操作日志,用以判断目标LUN是否双写成功。
- DCL
数据变更日志(Data change log),在数据变更同步中记录未成功写入目标LUN的差异数据。
- 分裂
源LUN和目标LUN停止业务数据同步,开始LUN信息交换,并在信息交换后解除数据迁移关系的过程。
业务数据同步
创建SmartMigration,源LUN和目标LUN之间建立Pair关系。源LUN和目标LUN之间的业务数据同步包括初始同步和变更同步。两种同步方式是独立的,可同时进行。保证了源LUN业务数据同步至目标LUN的过程中,主机的业务数据变更能完整地同步至源LUN和目标LUN两端。
- 初始同步
源LUN启动业务数据同步,将初始业务数据完整拷贝至目标LUN,同步过程如图1-1所示。
- 变更同步
同步过程中,主机无需中断业务。当主机出现业务数据变更,下发I/O数据写入请求至存储侧,存储系统启动变更同步,通过双写将业务数据变更同时写入源LUN和目标LUN。如果目标LUN写失败,存储侧将DCL上记录的未同步成功的数据拷贝至目标LUN,拷贝结束后返回主机写I/O完成;如果源LUN写失败,返回主机写I/O失败,主机重新下发数据至源LUN,但不写入目标LUN,通过这样保证了数据同步过程中源LUN和目标LUN两端的数据一致。变更数据的同步原理如图1-2所示。
业务迁移过程中的变更数据同步过程:
- 主机下发数据写I/O请求至存储侧存储系统的LM模块。
- LM模块同时将数据写入源LUN和目标LUN,并将写I/O操作记录至LOG。
- 源LUN和目标LUN返回数据写I/O结果至LM模块。
- LM模块判定双写结果:
- 如果目标LUN写I/O失败,保存LOG至DCL记录数据变更。存储系统将DCL记录的差异数据拷贝至目标LUN,并在拷贝完成后自动清除DCL。
- 如果源LUN写I/O失败,返回主机写I/O失败,主机重新下发I/O请求,只写入数据至源LUN,并清除LOG记录。
- 如果双写成功,则直接清除LOG记录。
- 返回主机写I/O成功。
分裂
分裂是针对单个Pair的操作,它的过程包括构成Pair的单个源LUN和目标LUN停止业务数据同步开始进行LUN信息交换,并在LUN信息交换后解除数据迁移关系。分裂时,主机业务被悬挂,信息交换后,业务下发到迁移后的LUN,从而实现用户无感知情况下的业务迁移。
分裂的实现原理如图1-3所示。
- LUN信息交换
LUN信息交换是业务信息同步后目标LUN能够顺利地代替源LUN来承载业务的前提。
- LUN信息交换前,主机通过源LUN ID识别到源LUN。由于源LUN ID和用以识别物理空间的源数据卷ID间存在映射关系,主机读取到源LUN的物理空间信息。目标LUN ID和目标数据卷ID此时也存在映射关系。
- LUN信息交换中,LUN ID均保持不变,交换源LUN和目标LUN的数据卷ID,使得源LUN ID和目标数据卷ID形成新的映射关系。
- LUN信息交换后,主机仍然通过源LUN ID识别到源LUN,但由于源LUN ID和目标数据卷ID形成了新的映射关系,实际读取的物理空间信息由源LUN变为目标LUN,从而实现了用户无感知情况下的业务迁移。
LUN信息交换的原理,如图1-4所示。
- Pair解除
Pair解除是指源LUN和目标LUN,在信息交换后解除数据迁移关系。Pair解除后,如果主机侧下发I/O请求至存储侧,数据只写入源LUN(源LUN ID指向的物理空间为目标数据卷),不再进行双写。目标LUN将封存Pair解除时刻源LUN的所有数据。Pair解除后不能再重新建立联系。
一致性分裂是指多个Pair同时进行LUN信息交换,并在信息交换完成后同时解除Pair关系,保证分裂前后各时刻点数据的一致性。
在某些有多个Pair的场景下,例如大中型数据库,数据、日志、修改记录等文件存放在存储系统的有关联的不同LUN中,使用分裂无法保证每个时刻点下各个LUN中的信息都相互关联,缺失了其中某些LUN的数据,都将导致其他LUN中数据失效。针对这样的情况,一致性分裂便提供了保障。使用一致性分裂和分裂的实现过程和结果如图1-5所示。
存储系统内与异构存储系统间的业务数据迁移差异
SmartMigration特性可以实现存储系统内和异构存储系统间的业务数据迁移,但两者的实现过程存在一定差异,具体差异如表1-2所示。
业务迁移的类型 |
差异点 |
---|---|
存储系统内的业务数据迁移 |
迁移前无需对目标LUN进行托管,无需中断主机业务。 |
异构存储系统间的业务数据迁移 |
迁移前需要先结合SmartVirtualization特性的LUN托管功能将异构存储系统的LUN映射至本端存储系统上,再在本端存储系统上实现业务数据的在线迁移。SmartVirutalization特性完成外部LUN接管时可以分为离线接管和在线接管。如果使用在线接管,无需中断主机业务,如果使用离线接管可能需短暂中断主机业务。 说明:
|