|
dave spink toolset |
|
SYMMETRIX TASKS: |
|||
DECOM | RA GROUP | RDF PAIRS | RDF FIX |
BCV | CLONES | SNAPS | METAS |
HYPER | MAP | MASK | STORAPID |
GK CREATE | ELAB | HEAT | REALTIME |
TPRLO | POOLS | STEPS | COMMANDS |
DECOMOn switches - remove alias, zones, zone library entry, and port name entry. Gather system state before making any masking or mapping changes. # myhost=USTPA3IFSVM073; export myhost # sudo symmaskdb -sid $mysid list database > vcm_pre.txt # sudo symmaskdb -sid $mysid -file vcmdb$mysid.backup backup # sudo symmaskdb -sid $mysid list capacity -host $myhost > capt_${myhost}.txt # sudo symmask -sid $mysid list logins > logins_pre.txt # cat capt_${myhost}.txt # grep $myhost logins_pre.txt The scripts are located DMX DECOM in Solaris Scripts Documentation. Create hostvcm.txt file. # create_vcm.sh > hostvcm.txt # cat hostvcm.txt 10000000c943e6fd 07B 0 HBA0 USTPA3IFSVM073 10000000c943e64f 07B 0 HBA0 USTPA3IFSVM073 10000000c943e6fc 10B 0 HBA1 USTPA3IFSVM073 10000000c943e64e 10B 0 HBA1 USTPA3IFSVM073 Check server is not logged into VCM and the WWN haven't already been redeployed in another server. # awk '{print $1}' hostvcm.txt > t.t # for i in `cat t.t` do grep -i $i logins_pre.txt done # rm t.t Extract the hypers from the VCM capacity report. Also pull out the metas that we will dissolve later. # cp capt_${myhost}.txt t.txt # vi t.txt ...keep symdevs rows # awk '{print $1}' t.txt > hypers.txt # cat capt_${myhost}.txt | grep "(M)" > hypers_meta.txt # rm t.txt Delete VCM and LHT entries. # vcm_remove.sh > vcm_remove.txt # cat mask_remove.txt sudo symmask -sid 4145 -wwn 10000000c943e6fd -dir 07B -p 0 delete -login sudo symmask -sid 4145 -wwn 10000000c943e64f -dir 07B -p 0 delete -login sudo symmask -sid 4145 -wwn 10000000c943e6fc -dir 10B -p 0 delete -login sudo symmask -sid 4145 -wwn 10000000c943e64e -dir 10B -p 0 delete -login Check server is removed, plus check hypers no longer exist in VCM i.e. ensure they are not already assigned to another. # sudo symmaskdb -sid $mysid list database > vcm_pst.txt # sudo symmask -sid $mysid list logins > logins_pst.txt # grep $myhost logins_pst.txt # grep $myhost vcm_pst.txt # for i in `cat hypers.txt` do echo $i grep $i vcm_pst.txt done Write disable the devices in preparation for unmapping from FA. # lun_dis.sh > lun_dis.txt Unmap the devices from all FA's. # unmap_file.sh > fa_unmap.txt # cat fa_unmap.txt # sudo symconfigure -sid $mysid -f fa_unmap.txt preview # sudo symconfigure -sid $mysid -f fa_unmap.txt prepare # sudo symconfigure -sid $mysid -f fa_unmap.txt commit Verify the LUNs unmapped - RW, no FA or WD entries. # for i in `cat hypers.txt` do echo $i sudo symdev -sid $mysid show $i | egrep '(FA |WD)' done Dissolve the meta LUNs (if needed). # awk '{print $1}' hypers_meta.txt > t.t # for i in `cat t.t` do echo "dissolve meta dev $i;" >> meta_dis.txt done # cat meta_dis.txt # rm t.t hypers_meta.txt # sudo symconfigure -sid $mysid -f meta_dis.txt preview ... RA GROUPCheck list of RDF directors; ours are 3c,3d,14c,14d. # mysid=4145 # symcfg -sid $mysid -ra all list | grep RDF RE-3C 03C 35 3 RDF-R1 - 000190101748 3 (02) 3 (02) Online RE-14C 14C 46 14 RDF-R1 - 000190101748 3 (02) 3 (02) Online RE-3D 03D 51 3 RDF-R1 - 000190101748 3 (02) 3 (02) Online RE-14D 14D 62 14 RDF-R1 - 000190101748 3 (02) 3 (02) Online Create a new RA group; ours will be RA Group 4. # symrdf -sid $mysid addgrp -label RA_$mysid_04 -rdfg 4 -dir 3c,3d,14c,14d \ -remote_rdfg 4 -remote_sid 1748 -remote_dir 3c,3d,14c,14d # sudo symcfg -sid $mysid list -rdfg all -rdfa ------- ----------- -------- ------ --- --- --------- RA-Grp Group Flags Cycle Pri Thr Transmit Name CSRM TDA time Idle Time -------- ----------- -------- ------ --- --- --------- 3 ( 2) RA_4145_01 XAS- XI. 30 33 50 000:00:00 4 ( 3) RA_4145_04 -IS- XI. 30 33 50 000:00:00 5 ( 4) RA_4145_05 .AS- XI. 30 33 50 000:00:00 Enable Transmit Idle for new RA group. Create a file then pass into symconfigure - preview, prepare, commit. # set rdf group 5 rdfa_transmit_idle = enable; RDF PAIRSQuick add/sync/split example. Add pairs and change into adaptive copy mode. # symrdf -sid $mysid createpair -f newpair.txt -rdfg $mygp -type rdf1 -invalidate r2 # symrdf -sid $mysid -file newpair.txt -rdfg $mygp query # symrdf -sid $mysid -f newpair.txt -rdfg $mygp set mode acp_disk # symrdf -sid $mysid -f newpair.txt -rdfg $mygp establish # symrdf -sid $mysid -file newpair.txt -rdfg $mygp query Example of switching to async mode and spliting the RA group. # sudo symrdf -sid $mysid -f newpair.txt -rdfg $mygp set mode async # sudo symrdf -sid $mysid -f newpair.txt -rdfg $mygp query # sudo symrdf -sid $mysid -f newpair.txt -rdfg $mygp split # sudo symrdf -sid $mysid -f newpair.txt -rdfg $mygp query Adding New Pairs To determine target device get a list of non mapped devices. Check the devices you select are not being used in any SRDF/A relationship. target# symdev -sid $mysid list -noport > tmp.txt Check dynamic RDF status on Source & Target LUNs. Ensure they are identical - size, raid, stripe, and emulation. Note, the target devices need to be write disable as we use the invalidate R2 flag. source# symdev -sid $mysid show $mydev | egrep '(Mega|Stripe|Configuration|RDF)' target# symdev -sid $mysid show $mydev | egrep '(Mega|Stripe|Configuration|RDF)' target# symdev -sid $mysid write_disable $mydev -sa ALL -p 0 -noprompt On Source LUN and Target LUN set Dynamic RDF configuration. If you ever need to remove attribute use "set device xxx:xxx attribute=no dyn_rdf;" # cat t.txt set dev XXX attribute=dyn_rdf; # symconfigure.... Verify all devices in async mode for the RA group are consistent. The following example uses RA 5. We edit the file to clean up and only leave R1/R2 pairs. # mysid=4145; myra=5; myfile=allra5_psf.txt # symrdf -sid $mysid -rdfg $myra list | grep -v "\- \-" | awk '{print $1 " " $2}' > $myfile # vi $myfile # symrdf -sid $mysid -rdfg $myra list | grep -v Consistent Set adaptive copy mode on. # symrdf -sid $mysid -f $myfile -rdfg $myra set mode acp_disk # symrdf -sid $mysid -rdfg $myra list Create a file with the source (R1) and target (R2) # cat newpair.txt 0B88 09A5 Create the paired relationship. # symrdf -sid $mysid createpair -f newpair.txt -rdfg $myra -type rdf1 -invalidate r2 # tail -f /var/symapi/log/symapi-XXX.log # symrdf -sid $mysid -file newpair.txt -rdfg $myra query 0B88 RW 0 3931200 NR 09A5 WD 0 3931200 S.. Suspended Set adaptive copy mode on and establish pairs. # symrdf -sid $mysid -f newpair.txt -rdfg $myra set mode acp_disk # symrdf -sid $mysid -f newpair.txt -rdfg $myra establish # symrdf -sid $mysid -file newpair.txt -rdfg $myra query 0B88 RW 0 3656952 RW 09A5 WD 0 3647825 C.D SyncInProg Resume replication, when R1 owes R2 less than 150K or 4GB of data, change SRDF to async mode. # cat newpair.txt >> $myfile # symrdf -sid $mysid -file $myfile -rdfg $myra query # symrdf -sid $mysid -f $myfile -rdfg $myra set mode async # symrdf -sid $mysid -f $myfile -rdfg $myra enable ***(if consistency needed, causes issues with clone from R2) # symrdf -sid $mysid -rdfg $myra list Moving RDF Pairs Between RA Groups. (Example with removing a device pair from RA 2 and adding into RA 1) Check both RA groups are in a consistent state. # symrdf -sid $mysid -rdfg 1 list | grep -v Consistent # symrdf -sid $mysid -rdfg 2 list | grep -v Consistent Suspend RA 2 and set adaptive copy mode on. We edit the file to clean up and only leave R1/R2 pairs. # mysid=1748; myra=2; myfile=allra2.txt # symrdf -sid $mysid -rdfg $myra list | grep -v "\- \-" | awk '{print $1 " " $2}' > $myfile # vi $myfile # symrdf -sid $mysid -f $myfile -rdfg $myra suspend # symrdf -sid $mysid -f $myfile -rdfg $myra set mode acp_disk Check RA 2 device pair(s) have the "Dynamic RDF attribute" set. If not; configure them. # symdev -sid $mysid show O464 | egrep '(Dynamic)' Dynamic RDF : None # vi t.txt convert rdf dev 0464 to dynamic; # symconfigure.... # symdev -sid $mysid show O464 | egrep '(Dynamic)' Dynamic RDF Capability : RDF1_OR_RDF2_Capable With RA 2 suspended remove the device pair(s). # cat tmpdev.txt 0464 0DBA # symrdf -sid $mysid deletepair -file tmpdev.txt -rdfg 2 ***may need -force # tail -f /var/symapi/log/symapi-XXX.log Resume RA 2 replication. # symrdf -sid $mysid -rdfg $myra list | grep -v "\- \-" | awk '{print $1 " " $2}' > $myfile # vi $myfile # symrdf -sid $mysid -f $myfile -rdfg $myra resume # symrdf -sid $mysid -rdfg $myra list # symrdf -sid $mysid -f $myfile -rdfg $myra set mode async Add RA 1 device pair(s), the group does not need to be suspended. # mysid=1748; myra=1; myfile=allra1.txt # symrdf -sid $mysid createpair -file tmpdev.txt -rdfg $myra -type rdf1 -establish # tail -f /var/symapi/log/symapi-XXX.log # symrdf -sid $mysid -file tmpdev.txt -rdfg $myra query Set RA 1 to adaptive copy mode, wait until tracks catch up before turning back to async. # symrdf -sid $mysid -rdfg $myra list | grep -v "\- \-" | awk '{print $1 " " $2}' > $myfile # vi $myfile # symrdf -sid $mysid -f $myfile -rdfg $myra set mode acp_disk # symrdf -sid $mysid -rdfg $myra list # symrdf -sid $mysid -f $myfile -rdfg $myra set mode async RDF FIXThe following procedure restores a SRDF/A suspended group state. This can be caused by the SRDF/A WP limit being reached, or a drop in the SRDF link. A link down starts with "Transmit Idle" and then moves into "Suspended" state. If you still see "Transmit Idle" contact EMC as there is another problem; either network or SP needs rebooting. Note, even a succesful RDF ping test may not be sufficient to overcome a Transmit Idle. Description: System Max WP limit reached - 000190104145 Description: SRDF/A session has entered transmit idle state - 000190104145 Check the health of RDF directors and RA groups. # mysid=4145 # symcfg -sid $mysid -ra all list # symrdf -sid $mysid -rdfg 3 list | grep -i Suspended ***SAN group # symrdf -sid $mysid -rdfg 4 list | grep -i Suspended ***GFS group # symrdf -sid $mysid -rdfg 5 list | grep -i Suspended ***UPS group Get SRDF R1/R2 members for each group. The following example starts with RA 3; you will need to repeat the steps for each RA group. # mysid=4145; myra=3; myfile=allra3_san.txt # symrdf -sid $mysid -rdfg $myra list | grep -v "\- \-" | awk '{print $1 " " $2}' > $myfile # vi all.txt ***clean up file, leave R1/R2 pairs only 0BDC 088F 0BE0 0DBF 0BE4 0DC3 ... Disable SRDF in case devices are not already in the requested state. If the link is "TransIdle" call EMC before continuing as there is some other problem. # echo $mysid $myra $myfile # symrdf -sid $mysid -f $myfile -rdfg $myra disable Set adaptive copy mode on. # symrdf -sid $mysid -f $myfile -rdfg $myra set mode acp_disk # symrdf -sid $mysid -rdfg $myra list Establish the SRDF link. # symrdf -sid $mysid -f $myfile -rdfg $myra establish # symrdf -sid $mysid -rdfg $myra list Wait untill the invalid track count is under 30,000. # symrdf -sid $mysid -f $myfile -rdfg $myra set mode async # symrdf -sid $mysid -rdfg $myra list Note: We do NOT run "symrdf -g sapgfstgt enable" as this enforces RDF consistency which causes a problem for us when we try to clone from the R2 devices. BCVSee see EMC BCV BACKUP in Solaris Documentation. The script performs these tasks:
CLONESTimeFinder Clone Backup Select your source and target devices. Ensure they are identical - size, raid, stripe, and emulation. source# symdev -sid $mysid show $mydev | egrep '(Mega|Stripe|Configuration|RDF)' target# symdev -sid $mysid show $mydev | egrep '(Mega|Stripe|Configuration|RDF)' Create source file system - see Create File System in Veritas Documentation for information. Create a file that contains source and target devices. # vi myfile.txt 0da8 155a 0db0 1562 13c6 0ce8 13c4 0ce6 Deport target file system - see Deport Disk Group in Veritas Documentation for information. If the target disks have not been used before, map them to FA's; see MAP for details. Create clone and wait until precopy (my perference) completes. The precopy causes the device copy to take place in the background before the activate starts. Normally, the copying of tracks is not started until the activate occurs. The precopy process continuously runs in the background until the activate is called. Precopy implies -copy. # symclone -sid $mysid -f $myfile query # symclone -sid $mysid create -differential -precopy -f $myfile -nop # symclone -sid $mysid verify -precopy -cycled -f $myfile -i 60 Activate clone (allow host access). Use the consistent flag to ensure all devices in file are split together. When the operation completes, the state changes to Copied. # symclone -sid $mysid -f $myfile query # symclone -sid $mysid -consistent activate -f $myfile -i 60 -c 10 -nop # symclone -sid $mysid verify -copied -f $myfile -i 60 Recreate clone (as needed). This gets changed tracks since the last activate. The session must have been created with the -differential option. A subsequent activate action must be issued to establish a new point-in-time copy. # symclone -sid $mysid verify -copied -f $myfile # symclone -sid $mysid recreate -precopy -f $myfile -i 60 -c 10 -nop # symclone -sid $mysid verify -precopy -cycled -f $myfile -i 60 # symclone -sid $mysid -consistent activate -f $myfile -i 60 -c 10 -nop # symclone -sid $mysid verify -copied -f $myfile -i 60 On Target Host Mount File Systems - see Mount File Systems in Veritas Documentation for information. Terminate clone (as needed). This stops the existing internal copy session between the specified source and target devices in a group. # symclone -sid $mysid -f $myfile query # symclone -sid $mysid terminate -f $myfile -nop TimeFinder Clone Restore Deport source file system - see Deport Disk Group in Veritas Documentation for information. Start Restore # symclone -sid $mysid -f $myfile restore # symclone -sid $mysid -f $myfile query On Source Host Mount File Systems - see Mount File Systems in Veritas Documentation for information. SNAPSTimeFinder Snap Backup Review save pool devices to check you have save device to use. # symsnap -pools list # symsnap -sid $mysid show pool DEFAULT_POOL Disable some devices in DEFAULT_POOL that we will use later. # vi disable.txt disable dev 03D5:03D6 in pool DEFAULT_POOL, type = SAVEDEV # symconfigure... # symsnap -sid $mysid show pool DEFAULT_POOL Create a new save pool. # vi create.txt create pool mypool, type = SAVEDEV # symconfigure... # symsnap -sid $mysid -pools list Add disabled save device to new save pool and enable. # vi adddev.txt add dev 03D5:03D6 to pool mypool, type = SAVEDEV, member_state = ENABLE # symconfigure... # symsnap -sid $mysid Create source file system - see Create File System in Veritas Documentation for information. Create a test file. On target host identify Snap (VDEV) devices. They appear as normal size hypers to trick symapi. Create a group and add the virtual devices. # sympd list | grep VDEV # symdg -type REGULAR create drsdg # symld -g drsdg add dev 010A # symlg -g drsdg add dev 01E4 # symdg show drsdg Create a Snap Session. # symsnap -g drsdg create -svp mypool DEV001 sym DEV 01E4 -nop # symsnap -g drsdg -pools query DEV001 010A VDEV001 01E4 mypool Create Activate the Snap Session. # symsnap -g drsdg activate DEV001 sym ld VDEV001 -nop # symsnap -g drsdg query DEV001 010A VDEV001 01E4 mypool CopyOnWrite On Source host monitor usage of save device pool. # echo "reached 10 percent" > monitor.out # chmod u+x monitor.sh # symsnap -sid $mysid monitor -percent 10 -i 5 -action "./monitor.sh" -svp mypool -norepeat On Target Host Mount File Systems - see Mount File Systems in Veritas Documentation for information. Terminate Snap Session # symsnap -g drsdg terminate DEV001 sym ld VDEV001 METASThe procedures below cover metas, map, mask tasks. There is a control script that pulls it together; see DMX GORUN in Solaris Scripts Documentation. Create "cusreq.txt" file to specify what you need. The gometa.sh scripts parses the file for meta definitions. # cat cusreq.txt hyper 3375 10 hyper 30713 8 hyper 61425 4 meta 30713 12 Ensure your cusmet.txt file exists, for example, two meta will be created one 8 way and other 4 way. # cat cusmet.txt 30713 8 30713 4 Build metas - see DMX META in Solaris Scripts Documentation. # mysid=XXXX; export mysid # gometa.sh Set other attributes if needed, for example RDF1_OR_RDF2_Capable or SCSI-3 Persistent. If the devices will be used in cluster (Veritas, Sun, Oracle RAC) you will need to enable SCSI-3 persistent reservation. SCSI-3 PR allows a host to access a device while at same time blocking access from another host. SCSI-3 PR reservations are persistent across SCSI bus resets or host reboots, plus they allow multiple paths from host to disk. SCSI-2 disks do not support this feature. To turn off SCSI-3 PR create a file as "set device XXXX attribute=NO SCSI3_persist_reserv;" # for i in `cat hypers.txt` do echo "set dev $i attribute=dyn_rdf;" >> tt.txt echo "set dev $i attribute=SCSI3_persist_reserv;" >> on.txt done # symconfigure -sid $mysid -f tt.txt... # symconfigure -sid $mysid -f on.txt... HYPERCreate "cusreq.txt" file to specify what you need. The gohype.sh scripts parses the file for hyper definitions. # cat cusreq.txt hyper 3375 10 hyper 30713 8 hyper 61425 4 meta 30713 12 Get hypers - see DMX HYPER in Solaris Scripts Documentation. # mysid=XXXX; export mysid # gohype.sh MAPEnsure your hypers.txt file and hostfa.txt exist. # cat hypers.txt 0D20 0D28 ... # cat hostfa.txt (this host is using 4 FA's) 07b 0 08b 0 09b 0 10b 0 If existing host check the host is not using a LUN Offset, as this may effect the map address you need. # symmaskdb -sid $mysid list database -v -wwn $mywwn Create the map file - see DMX MAP in Solaris Scripts Documentation. # mysid=XXXX; export mysid # ./map_file.sh > fa_map.txt # cat fa_map.txt # sudo symconfigure -sid $mysid -f fa_map.txt preview -noprompt # symconfigure... Verify you have LUNs mapped - correct port, address, RW, and no WD or NR devices.. # for i in `cat hypers.txt` do echo $i sudo symdev -sid $mysid show $i | egrep '(FA |WD| NR)' done MASKThere are a number of scripts used in this section; see DMX MASK in Solaris Scripts Documentation. The first task is to prepare a hostvcm.txt file. # create_vcm.sh > hostvcm.txt # cat hostvcm.txt 10000000c97428ab 10D 1 HBA0 USTPA3IFSVM073 10000000c97450bb 07D 1 HBA1 USTPA3IFSVM073 10000000c97431ff 07D 1 HBA1 USTPA3IFSVM074 10000000c97e04c1 10D 1 HBA0 USTPA3IFSVM074 10000000c9742bd2 10D 1 HBA0 USTPA3IFSVM075 10000000c9745195 07D 1 HBA1 USTPA3IFSVM075 10000000c97451b8 07D 1 HBA1 USTPA3IFSVM076 10000000c97460c2 10D 1 HBA0 USTPA3IFSVM076 10000000c97450b9 07D 1 HBA1 USTPA3IFSVM077 10000000c97461b3 10D 1 HBA0 USTPA3IFSVM077 Backup the VCM DB. # sudo symmaskdb -sid $mysid -file vcmdb$mysid.backup backup -noprompt # sudo symmaskdb -sid $mysid list database > vcm_pre.txt Check the hypers you intend to mask have no tombstones entries. If they do, see decom procedures in this document via DECOM # for i in `cat hypers.txt` do echo $i grep $i vcm_pre.txt done Check the WWNs (if new deployment) have no tombstones entries. # for i in `cat hostvcm.txt | awk '{print $1}'` do echo $i sudo symmaskdb -sid $mysid -wwn $i list devs sudo symmask -sid $mysid list logins | grep -i $i done Prepare hypers in comma separated format for masking. # . mydevs.sh # export mydevs # mask_file.sh > mask_file.txt # cat mask_file.txt ***the script puts in sleep statements between commands sudo symmask -sid 4145 -wwn 10000000c97428ab -dir 10D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97450bb -dir 07D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97431ff -dir 07D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97e04c1 -dir 10D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c9742bd2 -dir 10D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c9745195 -dir 07D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97451b8 -dir 07D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97460c2 -dir 10D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97450b9 -dir 07D -p 1 add dev 2412,2413,2414,240E -noprompt sudo symmask -sid 4145 -wwn 10000000c97461b3 -dir 10D -p 1 add dev 2412,2413,2414,240E -noprompt Check masking entries for each HBA. # mask_check.sh If new host entry, label VCM. (I create file for visual check before applying) # mask_label.sh > mask_label.txt # cat mask_label.txt sudo symmask -sid 4145 -wwn 10000000c943e6fd rename SERVERX/HBA0 sudo symmask -sid 4145 -wwn 10000000c943e64f rename SERVERX/HBA0 sudo symmask -sid 4145 -wwn 10000000c943e6fc rename SERVERX/HBA1 sudo symmask -sid 4145 -wwn 10000000c943e64e rename SERVERX/HBA1 # sudo symmaskdb -sid $mysid list capacity -host $myhost > capt_${myhost}.txt Final check for devices in VCM. # for i in `cat hypers.txt` do echo $i grep $i capt_${myhost}.txt done Refresh the FA's with the latest copy of the VCM. # sudo symmask -sid $mysid refresh Send device information to customer. # mask_display.sh lunoffset review. Earlier versions of Solaris and Windows (up to 2003) only supports LUNs in the range 0-254. If it is necessary to assign LUN numbers higher than this to a server, lunoffset can be used to make the LUN number that is presented to the host lower than the actual LUN number. To do this, determine the lowest LUN number assigned to the host and use lunoffset with a base value of 0 and the offset equal to the lowest LUN number. The offset will be subtracted from all the LUN numbers so that the lowest LUN will be presented to the host as LUN 0. For example, if the host had LUN numbers 0x100 (256) and 0x101 (257) assigned to it, you would use the following command which would cause the host to see them as LUNs 0 & 1: Turn on: # symmask set lunoffset on 100 0 -wwn 2100001B3217DD88 -dir 7c -p 1 -sid $mysid # symmask set lunoffset on 100 0 -wwn 2100001B3217E289 -dir 10c -p 1 -sid $mysid Check on: # symmaskdb -sid $mysid list database -v -wwn $mywwn Turn off: # symmask set lunoffset off -wwn 2100001B3217DD88 -dir 7c -p 1 -sid $mysid # symmask set lunoffset off -wwn 2100001B3217E289 -dir 10c -p 1 -sid $mysid # symmaskdb -sid 1384 list database -v -wwn 2100001B3217E289 STORAPIDThis daemon is used to coordinate all Symmetrix locks and requests. The storapid (base daemon) may be hung; the following procedure will allow you to restart it. # ps -ef | grep storapid root 22570 1 0 06 Apr - 6:29 storapid start -name storapid root 31112 24038 2 12:27:40 pts/0 0:00 grep storapid To shutdown the storapid daemon via software. If the above command fails you can also do kill -9 on PID from your 'ps -ef' output to kill the daemon process. # /usr/symcli/storbin/stordaemon shutdown storapid storapid Told to shutdown Waiting for daemon(s) to shutdown. This may take several seconds. Restart the daemon and verify that it has started again. # /usr/symcli/storbin/stordaemon start storapid Waiting for daemon to start. This may take several seconds. # ps -ef | grep storapid root 27546 24038 1 12:30:48 pts/0 0:00 grep storapid root 31114 1 0 12:29:55 - 0:00 storapid start -name storapid GK CREATEGatekeeper devices do not have a special flag or device type (like a BCV device does) within the bin file in the Symmetrix. They are simply very small devices that are presented to the host that Solutions Enabler recognizes as gatekeepers due to their small size, which is generally 6 cylinders or 3 megabytes. Note that the examples below are for FBA Open Systems gatekeepers only.
ControlCenter
Command Line - create a text file and input the following. # vi gk_create.txt # create dev count=x, config=2-way-mir, emulation=FBA, size=6; Commit. # symconfigure -sid xxx -f gk_create.txt -v preview # symconfigure -sid xxx -f gk_create.txt -v prepare # symconfigure -sid xxx -f gk_create.txt -v commit Once the change is commited, map the devices to your servers. Syminq commands will automatically pick up these devices as gatekeepers as shown in the output below. /dev/rdsk/c3t50060482D52DE233d51s2 GK SYMMETRIX 5771 84011A5008 2880 ELAB
HEAT
REALTIMETo quickly determine realtime performance on a set of devices. # mygrp=quicktest # sudo symdg -type REGULAR create $mygrp # sudo symld -g $mygrp -sid $mysid add dev $mydev # sudo symstat -g $mygrp -i 10 -c 5 -type REQUEST TPRLO (Third Party Logout)A rebooted Windows host using non supported drivers can initiate a TPRLO (Third Party Logout) and cause other hosts to log out of the fabric. The use of drives lpxnds.sys or lp6nds35.sys can cause hosts to receive Unit Attention status on a shared device (like the VCM DB), causing hosts to lose access to disk. Hence, these generic non supported drivers cause major headaches. TPRLO (Third Party Logout) is part of the fibre specifications so Enginuity has to respond correctly when an HBA sends a TPRLO Extended Link Service. Doing so sets Unit Attention TPRLO on any shared device with the HBA that sent the TPRLO. The next time a host sends a SCSI command to any one of these devices, the Symmetrix will respond with Unit Attention TPRLO. Only EMC can see these 303E errors. This is not an alert message, however, engineering has placed this code to capture the WWN or the path that requested the TPRLO. Hence, with that information you can track down the offending host. How to determine if a Microsoft Windows host is using the lpxnds.sys or lp6nds35.sys Emulex SCSI miniport driver. See emc138182.
EMC say the primus applies if lpxnds driver is simple started and running. To remove, go into device manager/show hidden devices. The lpxnds is listed under non plug-and-play. Right click and select uninstall or disable the device during startup. POOLSCreate a number of Data Devices with datadev attribute as required for populating thin pools. # symconfigure -sid $mysid -cmd "create dev count=326, config=2-Way-Mir, attribute=datadev, emulation=FBA, size=18414;" commit -v -nop Query devices and make sure the Data Devices have been properly created. # symdev list -sid $mysid -datadev Create empty Thin Pools which allows you to populate at a later time. # symconfigure -sid $mysid -cmd "create pool FIBRE_${mysid}_1 type=thin;" commit -nop Add Data devices to Thin Pool. # symconfigure -sid $mysid -cmd "add dev 700:785 to pool FIBRE_${mysid}_1 type=thin, member_state=ENABLE;" commit -nop Query / List / Show symmetrix thin pools to make sure they have been created. # symcfg list -pools -thin -sid $mysid # symcfg list -pool -thin -sid $mysid -mb # symcfg show -pool FIBRE_${mysid}_1 -thin -detail -all -sid $mysid # symcfg -sid $mysid list -datadev Create Thin Devices and Bind to Pool. For example, 1 x 50GB, 4 x 20GB, and 2 x 300GB metas with 6 * 50GB meta members. # cat tdev_src.txt create dev count=1, size=54610 cyl, emulation=FBA, config=TDEV, preallocate size=54610 cyl, binding to pool = FIBRE_1997_1; create dev count=4, size=21844 cyl, emulation=FBA, config=TDEV, preallocate size=21844 cyl, binding to pool = FIBRE_1997_1; create dev count=2, size=328044 cyl, emulation=FBA, config=TDEV, preallocate size=328044 cyl, binding to pool = FIBRE_1997_1, meta_member_size=54674, meta_config=Concatenated; # symconfigure -sid $mysid -f tdev_srdf.txt .... Establishing a configuration change session...............Established. Processing symmetrix 000190101997 Performing Access checks..................................Allowed. Checking Device Reservations..............................Allowed. Submitting configuration changes..........................Submitted Validating configuration changes..........................Validated. New symdevs: 1C0A:1C0E Initiating PREPARE of configuration changes...............Prepared. Initiating COMMIT of configuration changes................Started. Committing configuration changes..........................Queued. COMMIT requesting required resources......................Obtained. As thin devices can be created with no associated physical storage, thin devices that are not bound to a thin pool will remain Not Ready. Query THIN devices. # symdev list -sid $mysid -tdev # symdev -sid $mysid show 1C0A # symdev -sid $mysid show 1C0B # symdev -sid $mysid show 1C0C # symdev -sid $mysid show 1C0D # symdev -sid $mysid show 1C0E STEPSStorage deployment high level summary. . requirments - disk, path management, app type, disk type, HBA WWNs. . hostfa select . switch ports assign . alias switch ports . zones create . meta build . hyper check, set bits (PER) if needed . map disks . mask luns . label vcm db . document . check Migration high level check list. VM SRDF . confirm workbook disk entries . confirm pairs . confirm decimal numbers, R2 status . confirm replication status . confirm host relationship in ecc to srdf replication luns . send email. Unix SRDF . check host luns . check srdf pairs selected . check replication status . check r2 side - decimal number, r2 status . check sddb info you entered . check switch port/zones . check GDC host map/mask RPA Cluster . check host luns . check pairs in CG . check replication status . check switch port/zones . check GDC host map/mask . check RPA host map/mask (you need to clean up after) |