Professional Documents
Culture Documents
Performing Non-Disruptive Migration Using SRDF/Metro: Abstract
Performing Non-Disruptive Migration Using SRDF/Metro: Abstract
Using SRDF/Metro
ABSTRACT:
This document shows overall steps to perform non-disruptive migration of application from VMAX3 to another using
SRDF/Metro technology
Table of Contents
Table of Contents ......................................................................................................................................... 2
SRDF/Metro Overview ........................................................................................................................ 3
Bias Option ............................................................................................................................................... 3
Witness Array Option ............................................................................................................................... 3
SRDF/Metro Requirements ....................................................................................................................... 3
Non-Disruptive Migration Using SRDF/Metro ............................................................................ 4
Existing Environment ................................................................................................................................ 4
High-Level SRDF/Metro Storage Migration Steps .................................................................................... 5
Host and Storage Environment Verification Check List ............................................................................ 6
SRDF Group Creation Between Source and Target Frame ........................................................................ 6
Device Creation On Target Frame ............................................................................................................ 7
Perform SRDF/Metro “Createpair” Operation .......................................................................................... 9
Verify Devices in “ActiveBias” Mode ...................................................................................................... 12
Zone and Mask Devices from Target Frame ........................................................................................... 13
Change SRDF/Metro Bias to Target Frame ............................................................................................ 21
Remove Linux Source Frame Devices on the Hosts ................................................................................. 23
Perform Suspend Operation On SRDF/Metro Group .............................................................................. 29
Remove Masking from Source Frame Devices ........................................................................................ 30
Perform “Deletepair” Operation on SRDF/Metro Devices ...................................................................... 31
SRDF/Metro Overview
SRDF/Metro provides High Availability (HA) for an application at the VMAX3 array level. In traditional
SRDF, R1 devices are Read/Write accessible. R2 devices are Read Only/ Write Disabled. Contrary in
SRDF/Metro, R2 devices on VMAX3 arrays are Read/Write accessible to hosts. Furthermore, R2 devices
assume the same external device identity (geometry, device WWN) as their R1. Thus, hosts can write to
both the R1 and R2 side of the device pair.
In the event of link or other failures, SRDF/Metro uses one of two options to determine which side of an
SRDF device pair remains R/W accessible to the host. These two options are following.
• Bias Option
• Witness Array Option
Bias Option
Bias option provides ability to predetermined which side of an SRDF device pair remains R/W accessible
to the host in event of failure. SRDF/Metro bias side can also be changed anytime during SRDF/Metro
operation.
Due to these SRDF/Metro feature sets bias capability, SRDF/Metro bias option can be used for
performing non-disruptive migrations of applications.
SRDF/Metro Requirements
Following are SRDF/Metro Requirements
• SRDF/Metro is only supported on VMAX3
• Minimum Hypermax Q3 2015. (However, Hypermax Q1 2016 has added more support to
environment)
• SRDF/Metro licenses on participating VMAX3 arrays.
• SRDF Protocol: Fibre Channel or Gigabit Ethernet
• Solution Enabler: 8.1 or above
• Multipath Software: Please use support matrix for detail list.
Existing Environment
In existing environment, we have four node Oracle RAC clusters running on RHEL 6.6. These nodes are
getting storage from VMAX3 frame HK196801346.
Following table provides information on Oracle RAC node.
OS OS
Server Name Application
Version Level
lnxdb-svl-13 RHEL 6.6 Oracle RAC with ASM
lnxdb-svl-14 RHEL 6.6 Oracle RAC with ASM
lnxdb-svl-15 RHEL 6.6 Oracle RAC with ASM
lnxdb-svl-16 RHEL 6.6 Oracle RAC with ASM
Following table provides zoning configuration that consists between four node clusters and VMAX3 1346
frame.
Server Name HBA WWPN Frame FA Port
vHBA1 200b1200000000be 1D:28
vHBA2 200b1200000000ee 2D:29
lnxdb-svl-13
vHBA3 200b12000000008c 3D:28
vHBA4 200b12000000009c 4D:29
vHBA1 200b12000000003d 1D:28
vHBA2 200b12000000002d 2D:29
lnxdb-svl-14
vHBA3 200b1200000000eb 3D:28
vHBA4 200b1200000000bb HK196801346 4D:29
vHBA1 200b12000000007c 1D:28
vHBA2 200b12000000006c 2D:29
lnxdb-svl-15
vHBA3 200b1200000000cb 3D:28
vHBA4 200b1200000000ab 4D:29
vHBA1 200b12000000001d 1D:28
lnxdb-svl-16 vHBA2 200b12000000000d 2D:29
vHBA3 200b12000000008b 3D:28
1D:28,
Dedicated Oracle PG_LNXDB-
MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- Binary File SVL- No Child Storage Groups 003C5:003C7
svl-13_Local 13 svl-13 3D:28, 13_local_new
svl-13 Systems 13_14_15_16
4D:29
1D:28,
Dedicated Oracle PG_LNXDB-
MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- Binary File SVL- No Child Storage Groups 003C8:003CA
svl-14_Local 14 svl-14 3D:28, 14_local_new
svl-14 Systems 13_14_15_16
4D:30
1D:28,
Dedicated Oracle PG_LNXDB-
MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- Binary File SVL- No Child Storage Groups 003CB:003CD
svl-15_Local 15 svl-15 3D:28, 15_local_new
svl-15 Systems 13_14_15_16
4D:30
1D:28,
Dedicated Oracle PG_LNXDB-
MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- Binary File SVL- No Child Storage Groups 003CE:003D0
svl-16_Local 16 svl-16 3D:28, 16_local_new
svl-16 Systems 13_14_15_16
4D:30
1D:28,
Dedicated PG_LNXDB-
Gatekeeper MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- SVL- No Child Storage Groups 001B0:001B1
devices svl-13_GK 13 svl-13 3D:28, 13_gk
svl-13 13_14_15_16
4D:29
1D:28,
Dedicated PG_LNXDB-
Gatekeeper MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- SVL- No Child Storage Groups 001B1:001B3
devices svl-14_GK 14 svl-14 3D:28, 14_gk
svl-14 13_14_15_16
4D:30
1D:28,
Dedicated PG_LNXDB-
Gatekeeper MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- SVL- No Child Storage Groups 001B4:001B5
devices svl-15_GK 15 svl-15 3D:28, 15_gk
svl-15 13_14_15_16
4D:30
1D:28,
Dedicated PG_LNXDB-
Gatekeeper MV_lnxdb- IG_LNXDB_SVL- vHBAs of lnxdb- 2D:29, SG_lnxdb-svl-
to lnxdb- SVL- No Child Storage Groups 001B6:001B7
devices svl-16_GK 16 svl-16 3D:28, 16_gk
svl-16 13_14_15_16
4D:30
$sudo symrdf addgrp -label rdfgrp40 -rdfg 40 -sid 000196801346 -dir 1E:5,2E:6 -remote_rdfg 40 -remote_sid
000196801695 -remote_dir 1E:5,2E:6
S Y M M E T R I X R D F D I R E C T O R S
RF-1E 4 - - - -- -- - - - -
5 40 (27) D rdfgrp40 .. X. 000196801695 RF-1E 5 40 (27)
7 - - - -- -- - - - -
RF-2E 4 - - - -- -- - - - -
5 - - - -- -- - - - -
6 40 (27) D rdfgrp40 .. X. 000196801695 RF-2E 6 40 (27)
RF-3E 4 - - - -- -- - - - -
5 - - - -- -- - - - -
6 - - - -- -- - - - -
7 - - - -- -- - - - -
RF-4E 4 - - - -- -- - - - -
5 - - - -- -- - - - -
6 - - - -- -- - - - -
7 - - - -- -- - - - -
Legend:
Group (T)ype : D = Dynamic, S = Static, - = Unknown
Group Flags :
RDF (S)oftware Compression : X = Enabled, . = Disabled, - = N/A
RDF (H)ardware Compression : X = Enabled, . = Disabled, - = N/A
Link Flags :
RDF (S)oftware Compression : X = Supported, . = Not supported, - = N/A
RDF (H)ardware Compression : X = Supported, . = Not supported, - = N/A
$sudo symconfigure -sid $sid -cmd "create dev count=8, config=TDEV, emulation=FBA, size=4370 cyl;" commit -v -nop
$sudo symrdf -sid 1346 createpair -file srdf_metro_1346-1695.pair -rdfg 40 -type r1 -rdf_metro -invalidate r2
$sudo symrdf -sid 1346 -file srdf_metro_1346-1695.pair -rdfg 40 -type r1 establish -use_bias
IG_lnxdb-svl-13, 1D:24,
DB File,
Shared With MV_lnxdb-svl- IG_lnxdb-svl-13- IG_lnxdb-svl-14, PG_lnxdb- 2D:24, SG_lnxdb-svl- SG_DBBS2DM1_DB_PAR_ARCH, 00282:0028D,
ARCH, Redo,
In Four Nodes 13-16_Shared 16 IG_lnxdb-svl-15, svl-13-16 1D:25, 13-16_Shared SG_DBBS2DM1_REDO 0029A:002A1
etc…
IG_lnxdb-svl-16 2D:25
Following section provides CLI output for masking operation from VMAX3 HK196801695.
# Following commands will create storage groups, port groups and initiator groups.
$sudo symaccess -sid 1695 create -name IG_lnxdb-svl-13 -type init -wwn 200b1200000000be
$sudo symaccess -sid 1695 create -name IG_lnxdb-svl-14 -type init -wwn 200b12000000003d
$sudo symaccess -sid 1695 create -name IG_lnxdb-svl-15 -type init -wwn 200b12000000007c
$sudo symaccess -sid 1695 create -name IG_lnxdb-svl-16 -type init -wwn 200b12000000001d
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-13 -type init add -wwn 200b1200000000ee
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-13 -type init add -wwn 200b12000000008c
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-13 -type init add -wwn 200b12000000009c
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-14 -type init add -wwn 200b12000000002d
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-14 -type init add -wwn 200b1200000000eb
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-14 -type init add -wwn 200b1200000000bb
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-15 -type init add -wwn 200b12000000006c
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-15 -type init add -wwn 200b1200000000cb
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-15 -type init add -wwn 200b1200000000ab
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-16 -type init add -wwn 200b12000000000d
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-16 -type init add -wwn 200b12000000008b
$sudo symaccess -sid 1695 -name IG_lnxdb-svl-16 -type init add -wwn 200b12000000009b
$sudo symaccess -sid 1695 create -name IG_lnxdb-svl-13-16 -type init -sg IG_lnxdb-svl-13,IG_lnxdb-svl-14,IG_lnxdb-
svl-15,IG_lnxdb-svl-16
$sudo symaccess -sid 1695 create -name PG_lnxdb-svl-13-16 -type port -dirport 1d:24,2d:24,1d:25,2d:25
$sudo symsg -sid 1695 create SG_DBBS2DM1_DB_PAR_ARCH_New
$sudo symsg -sid 1695 create SG_DBBS2DM1_REDO_New
$sudo symsg -sid 1695 -sg SG_DBBS2DM1_DB_PAR_ARCH_New addall -devs 00282:0028D
$sudo symsg -sid 1695 -sg SG_DBBS2DM1_REDO_New addall -devs 0029A:002A1
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-13-16_Shared add sg SG_DBBS2DM1_DB_PAR_ARCH_New,SG_DBBS2DM1_REDO_New
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-13-16_Shared remove sg SG_DBBS2DM1_DB_PAR_ARCH_First-Migration-
TST,SG_DBBS2DM1_REDO_First-Migration-TST
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-13_OraBin addall -devs 0028E:00290
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-14_OraBin addall -devs 00291:00293
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-15_OraBin addall -devs 00294:00296
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-16_OraBin addall -devs 00297:00299
$sudo symsg -sid 1695 create SG_LNXDB-SVL-13_GK
$sudo symsg -sid 1695 create SG_LNXDB-SVL-14_GK
$sudo symsg -sid 1695 create SG_LNXDB-SVL-15_GK
$sudo symsg -sid 1695 create SG_LNXDB-SVL-16_GK
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-13_GK addall -devs 0131:0133
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-14_GK addall -devs 0134:0136
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-15_GK addall -devs 0137:0139
$sudo symsg -sid 1695 -sg SG_LNXDB-SVL-16_GK addall -devs 013A:013C
$sudo symsg -sid 1695 create SG_lnxdb-svl-13_Local
$sudo symsg -sid 1695 create SG_lnxdb-svl-14_Local
$sudo symsg -sid 1695 create SG_lnxdb-svl-15_Local
$sudo symsg -sid 1695 create SG_lnxdb-svl-16_Local
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-13_Local add sg SG_LNXDB-SVL-13_OraBin,SG_LNXDB-SVL-13_GK
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-14_Local add sg SG_LNXDB-SVL-14_OraBin,SG_LNXDB-SVL-14_GK
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-15_Local add sg SG_LNXDB-SVL-15_OraBin,SG_LNXDB-SVL-15_GK
$sudo symsg -sid 1695 -sg SG_lnxdb-svl-16_Local add sg SG_LNXDB-SVL-16_OraBin,SG_LNXDB-SVL-16_GK
SG_lnxdb-svl-14_Local
$sudo symaccess -sid 1695 create view -name MV_lnxdb-svl-15_Local -ig IG_lnxdb-svl-15 -pg PG_lnxdb-svl-13-16 -sg
SG_lnxdb-svl-15_Local
$sudo symaccess -sid 1695 create view -name MV_lnxdb-svl-16_Local -ig IG_lnxdb-svl-16 -pg PG_lnxdb-svl-13-16 -sg
SG_lnxdb-svl-16_Local
$sudo
# Following Masking CMDS will create Shared View
$sudo symaccess -sid 1695 create view -name MV_lnxdb-svl-13-16_Shared -ig IG_lnxdb-svl-13-16 -pg PG_lnxdb-svl-13-16 -
sg SG_lnxdb-svl-13-16_Shared
Once zoning and masking operations are performed, we need to scan all four hosts to discover new
devices. We will also verify that now all four hosts will see 8 paths for storage migration participating
devices.
Following section provide scanning and multipath device verification output from one of the four hosts
(lnxdb-svl-13).
# Following is multipath output before HBA scanning.
$ multipath -ll
mpathbc (360000970000196801346533030334432) dm-23 EMC,SYMMETRIX
size=8.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:49 sdt 65:48 active ready running
|- 2:0:2:49 sdau 66:224 active ready running
|- 3:0:1:49 sdbt 68:112 active ready running
`- 4:0:2:49 sdcs 70:0 active ready running
mpathaw (360000970000196801346533030334245) dm-17 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:41 sdl 8:176 active ready running
|- 2:0:2:41 sdam 66:96 active ready running
|- 3:0:1:41 sdbl 67:240 active ready running
`- 4:0:2:41 sdck 69:128 active ready running
mpathbb (360000970000196801346533030334434) dm-15 EMC,SYMMETRIX
size=8.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:51 sdv 65:80 active ready running
|- 2:0:2:51 sdaw 67:0 active ready running
|- 3:0:1:51 sdbv 68:144 active ready running
`- 4:0:2:51 sdcu 70:32 active ready running
mpathav (360000970000196801346533030334331) dm-19 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:44 sdo 8:224 active ready running
|- 2:0:2:44 sdap 66:144 active ready running
|- 4:0:2:44 sdcn 69:176 active ready running
`- 3:0:1:44 sdbo 68:32 active ready running
mpathbn (360000970000196801346533030334335) dm-0 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:1 sdb 8:16 active ready running
|- 2:0:2:1 sdac 65:192 active ready running
|- 3:0:1:1 sdaz 67:48 active ready running
`- 4:0:2:1 sdby 68:192 active ready running
mpathba (360000970000196801346533030334246) dm-38 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:42 sdm 8:192 active ready running
|- 2:0:2:42 sdan 66:112 active ready running
|- 3:0:1:42 sdbm 68:0 active ready running
`- 4:0:2:42 sdcl 69:144 active ready running
mpathau (360000970000196801346533030334244) dm-9 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:1:40 sdk 8:160 active ready running
|- 2:0:2:40 sdal 66:80 active ready running
# Following will perform HBA scan, discover new sd and mulitpath devices.
for hba in `echo host1 host2 host3 host4`
do
echo "- - -" > /sys/class/scsi_host/$hba/scan
sleep 2
done
file="source_sd_frame_1346.txt"
for sd in `cat $file`
do
echo "offline" > /sys/block/$sd/device/state
sleep 2
done
$ multipath -ll
mpathbc (360000970000196801346533030334432) dm-23 EMC,SYMMETRIX
size=8.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:19 sdds 71:160 active ready running
|- 2:0:1:19 sdes 129:64 active ready running
|- 3:0:0:19 sdfs 130:224 active ready running
|- 4:0:1:19 sdgs 132:128 active ready running
|- 1:0:1:49 sdt 65:48 failed faulty running
|- 2:0:2:49 sdau 66:224 failed faulty running
|- 3:0:1:49 sdbt 68:112 failed faulty running
`- 4:0:2:49 sdcs 70:0 failed faulty running
mpathaw (360000970000196801346533030334245) dm-17 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:11 sddk 71:32 active ready running
|- 2:0:1:11 sdek 128:192 active ready running
|- 3:0:0:11 sdfk 130:96 active ready running
|- 4:0:1:11 sdgk 132:0 active ready running
|- 1:0:1:41 sdl 8:176 failed faulty running
$ multipath -ll
mpathbc (360000970000196801346533030334432) dm-23 EMC,SYMMETRIX
size=8.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:19 sdds 71:160 active ready running
|- 2:0:1:19 sdes 129:64 active ready running
|- 3:0:0:19 sdfs 130:224 active ready running
`- 4:0:1:19 sdgs 132:128 active ready running
mpathaw (360000970000196801346533030334245) dm-17 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:11 sddk 71:32 active ready running
|- 2:0:1:11 sdek 128:192 active ready running
|- 3:0:0:11 sdfk 130:96 active ready running
`- 4:0:1:11 sdgk 132:0 active ready running
mpathbb (360000970000196801346533030334434) dm-15 EMC,SYMMETRIX
size=8.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:21 sddu 71:192 active ready running
|- 2:0:1:21 sdeu 129:96 active ready running
|- 3:0:0:21 sdfu 131:0 active ready running
`- 4:0:1:21 sdgu 132:160 active ready running
mpathav (360000970000196801346533030334331) dm-19 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:14 sddn 71:80 active ready running
|- 2:0:1:14 sden 128:240 active ready running
|- 4:0:1:14 sdgn 132:48 active ready running
`- 3:0:0:14 sdfn 130:144 active ready running
mpathbn (360000970000196801346533030334335) dm-0 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:3 sddc 70:160 active ready running
|- 2:0:1:3 sdec 128:64 active ready running
|- 3:0:0:3 sdfc 129:224 active ready running
`- 4:0:1:3 sdgc 131:128 active ready running
mpathba (360000970000196801346533030334246) dm-38 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 1:0:0:12 sddl 71:48 active ready running
|- 2:0:1:12 sdel 128:208 active ready running
|- 3:0:0:12 sdfl 130:112 active ready running
`- 4:0:1:12 sdgl 132:16 active ready running
mpathau (360000970000196801346533030334244) dm-9 EMC,SYMMETRIX
size=262G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
Following section provides output to removing masking of source devices.
$ sudo symaccess -sid 1346 delete view -name MV_lnxdb-svl-13-16_Shared -nop
$ sudo symaccess -sid 1346 delete view -name MV_lnxdb-svl-13_Local -nop
$ sudo symaccess -sid 1346 delete view -name MV_lnxdb-svl-14_Local -nop
$ sudo symaccess -sid 1346 delete view -name MV_lnxdb-svl-15_Local -nop
$ sudo symaccess -sid 1346 delete view -name MV_lnxdb-svl-16_Local -nop
Started.
Delete RDF Pair in (1346,040)....................................Done.