1.异构虚拟化数据迁移整体技术方案
1.1异构虚拟化数据迁移方案简介
l 异构虚拟化迁移方案主要利用华为存储异构虚拟化和SmartMigration功能,将源存储中的数据迁移到目标存储。
l 接管源存储:通过异构虚拟化功能接管源存储。
l 数据迁移:通过SmartMigration功能在线数据迁移,迁移完成后将源存储在线退出现网。

1.2异构虚拟化数据迁移方案技术原理
l 异构虚拟化是指本端存储系统与第三方存储系统相互连接后,用户不需要关注第三方存储系统的软件架构和硬件架构,可以直接对第三方存储系统的存储资源进行集中管理。
SmartVirtualization特性:

SmartMigration数据同步:
l SmartMigration可以在不中断主机业务的情况下实现源LUN上的业务完整地迁移到目标LUN,在复制结束后使目标LUN完全替代源LUN承载业务。
l 初始创建SmartMigration迁移业务时,数据从源LUN同步至目标LUN;在业务运行中,源LUN的数据变更可通过双写和DCL来完成同步,进而保证迁移完成后的数据一致性。

SmartMigration空间交换:
l 当源LUN数据全部同步至目标LUN后,源LUN和目标LUN的空间交换,使源LUN的空间交换为目标LUN的存储空间,且中断源LUN和目标LUN的关系,主机业务继续写源LUN,主机业务不中断,这样就完成了数据的动态迁移。
l 存储系统中,每个LUN和对应的数据卷都有属于自己的唯一标识,分别为LUN ID和数据卷ID。其中,源LUN是逻辑上的概念,源数据卷是物理上的概念,两者之间形成一一对应的映射关系。LUN信息交换主要是针对LUN和数据卷之间的映射关系,即源LUN和目标LUN的LUN ID保持不变的情况下,将源数据卷和目标数据卷的数据卷ID相互交换。

2. 异构虚拟化数据迁移方案迁移过程
2.1环境准备
物理设备清单:
设备名称 | 数量 |
华为源存储 | 1台 |
服务器 | 2台 |
交换机 | 1台 |
目标存储 | 1台 |
笔记本或台式机 | 1台 |
逻辑拓扑(图中的光纤交换机也可以是IP交换机):

2.2现网信息
集群 | 节点名称 | 管理IP地址 | VIP IP | 私有IP | 存储IP |
Oracle RAC | node01 | 192.168.30.21 | 192.168.30.24 | 10.168.30.21 | 192.168.31.21 |
node02 | 192.168.30.22 | 192.168.30.25 | 10.168.30.22 | 192.168.31.22 | |
存储设备 | 管理口 | 存储网络 | 备注 | |
华为5300V3 | A控 | 192.168.30.110 | 192.168.31.51 | |
B控 | 192.168.30.111 | 192.168.31.52 | ||
华为2600T | A控 | 192.168.30.120 | 192.168.31.53 | |
B控 | 192.168.30.121 | 192.168.31.54 |
2.3 数据迁移前准备(各节点执行)
#cat /proc/version 查看系统版本

#cat/etc/iscsi/initiatorname.iscsi

#su - grid
#cd /u01/app/11.2.0/grid/bin/
#crsctl status res -t 查看oracle RAC集群信息

#crsctl query css votedisk 收集oracle RAC仲裁信息

# su - oracle
#sqlplus / as sysdba
#select * from V$version;

#select name,path,state from V$asm_disk;
查看ASM磁盘信息,包括:名称,路径和状态

#mount 查看文件系统信息

#cat /etc/multipath.conf 查看多路径信息

# /etc/init.d/multipathd status 查看多路径信息

#multipath -ll 查看磁盘链路状态

2.4目标存储接管源存储
2.4.1解除源存储和主机的映射
#cd /u01/app/11.2.0/grid/bin/
#./crsctl stop crs -f 强制关闭集群

登录源端存储,解除源LUN和主机的映射关系:


2.4.2替换多路径为华为自研多路径
(每一个节点都要操作)
#/etc/init.d/multipathd stop
#/etc/init.d/multipathd status

OceanStor UltraPath V100R008C50SPC200_RHEL.zip 为华为多路径软件
#cd RHEL/
#sh install.sh 
2.4.3源端存储和目标端存储建立远端关系
FC链路:只要划分在同一个zone即可识别(需要执行扫描设备)
IP链路需要添加源端设备(数据保护-远端设备):
2.4.4 添加目标存储映射
在源存储创建一个主机(把远端存储当成一个主机)

把LUN组和主机组做映射:
(这里意识是把源存储和目标存储做成一个映射)

2.4.5创建edevLUN,并映射主机
在目标存储-数据保护-源端设备

创建edevLUN

创建edevLUN组,并添加edevLUN

映射主机:

2.4.6恢复上层业务
#hot_add 扫描LUN

# 目标存储映射的LUN进行udev绑定



启动udev配置文件:

查看集群业务
##这里业务如果有问题,请查阅华为官方手册
2.5数据迁移
在目标存储创建与eDevLUN相同的lun,需归属于同一个控制器(这里创建3个)

进入“SmartMigration”,创建迁移pair关系:




迁移完成后-一致性分裂-删除任务


解除源存储和目标存储的映射:

3. 相关理论知识点
3.1 eDevLUN
在本端存储系统的存储池中,本端存储系统会按虚拟化数据组织形式将映射的外部LUN创建为裸存储设备。通过这种方式创建的裸存储设备称为eDevLUN。eDevLUN包括元数据卷和数据卷,但eDevLUN在本端存储系统中占用的实际物理空间仅为元数据卷所需的存储空间。应用服务器可以通过eDevLUN访问外部LUN上的数据,并在eDevLUN上配置增值业务(例如,快照、远程复制、SmartMigration和卷镜像)。
3.2基本伪装
在LUN进行接管时,会用外部LUN的WWN等信息替换eDevLUN的相关信息。
3.3扩展伪装
在LUN进行接管时,除替换基本伪装的信息外,还会替换SCSI协议版本号、归属控制器等扩展信息。
3.4外部LUN
位于异构存储系统中的LUN。在DeviceManager上显示为“远端LUN”。
3.5 LUN伪装
将异构存储系统上的LUN封装为eDevLUN时,还可以设置其LUN伪装属性,应用服务器会将eDevLUN识别为异构存储系统上的LUN,主机识别到的eDevLUN的WWN(World Wide Name)和Host LUN ID均与对应的外部LUN一致。通过设置eDevLUN的伪装属性,可以实现在线接管。
3.6 eDevLUN与外部LUN的关系

3.7分裂
分裂是针对单个Pair的操作,它的过程包括构成Pair的单个源LUN和目标LUN停止业务数据同步开始进行LUN信息交换,并在LUN信息交换后解除数据迁移关系。分裂时,主机业务被悬挂,信息交换后,业务下发到迁移后的 LUN,从而实现用户无感知情况下的业务迁移。
3.8 LM模块
存储系统中用于管理SmartMigration的模块
3.9 LOG
记录数据变更写入源LUN的操作日志,用以判断目标LUN是否双写成功。
3.10 DCL
数据变更日志(Data change log),在数据变更同步中记录未成功写入目标LUN的差异数据。




