Monday, May 31, 2010

map/unmap dev using cli on dmx

You need to install SYMCLI of course to have the base CLI functionality
installed. You can aqquire this software from powerlink.emc.com which
is the support site for EMC.

The software is free of course, you would need to supply the license for
BASE/Server Config in order to be able to re-map EMC hypers to and from
director ports.

Once you have the CLI installed (and added the licenses), you need to
establish a connection with the array. Typically this is done with
devices called "gatekeepers" 3MB or smaller 2-way mirror LUNs which are
used by SYMCLI to talk to the array via SCSI.

If you do not have these available to you, but have some EMC LUNs mapped
to the host, you may still be able to talk to the array without
gatekeepers as a default the CLI will attempt to communicate through a
regular EMC hyper when it fails to locate a gatekeeper.

Once you have verified you can speak with your EMC array you can perform
mapping/unmapping commands for your hypers.

Here is a very small example:

1.) Identify the devices you want to map

#symdev list | grep "???:?"
014F Not Visible ???:? 16A:C5 BCV N/Asst'd
RW 4096
0150 Not Visible ???:? 01B:C5 BCV N/Asst'd
RW 4096

2.) Provided you know which FA, and port you want to map to you would
look at how the LUNs have been mapped to the director port, and use the
next available address in the list.

*FLAGS: (-FA)Director (-p 0) port (-addr) list assigned LUN
addresses (-avail) provide me the next available address

# symcfg list -FA 16C -p 0 -addr -avail


Symmetrix ID: 000187940703 (Local)

Director Device Name Attr
Address
---------------------- ----------------------------- ----
--------------
Ident Symbolic Port Sym Physical VBUS TID
LUN
------ -------- ---- ---- ----------------------- ---- ---
---

FA-16C 16C 0 0000 Not Visible VCM 0 00
000
0001 Not Visible 0 00
001

**************OUTPUT
SNIPPED**********************************
019C Not Visible
0 00 07A
019D Not Visible 0 00
07B
019E Not Visible 0 00
07C
019F Not Visible 0 00
07D
01A0 Not Visible 0 00
07E
01A1 Not Visible 0 00
07F
01A2 Not Visible 0 00
080
- AVAILABLE 0 00
081 *
037F Not Visible 0 00
364
0380 Not Visible 0 00
365
0381 Not Visible 0 00
366
0382 Not Visible 0 00
367
- AVAILABLE 0 00
368 *
038B Not Visible 0 00
370
038C Not Visible 0 00
371
- AVAILABLE 0 00
372 *

3.) So we know the next available LUN is LUN 80 on Director 16C, port
0. LUN addressing can be done using base 10, base 8, and base 16
numbering depending on the director ports specific flag settings. We
perform mapping using a flat file which defines the entries for the LUNs
on the director port:

#echo "map dev 014F to dir 16C:0 target=0, lun=81;" >
map.test.cmd
#echo "map dev 0150 to dir 16C:0 target=0, lun=82;" >>
map.test.cmd
#more map.test.cmd
map dev 014F to dir 16C:0 target=0, lun=81;
map dev 0150 to dir 16C:0 target=0, lun=82;

4.) we have our flat file, so we can issue a configuration change to the
array:

*FLAGS (-file) use the map file I specified (commit) commit the
change

#symconfigure -file map.test.cmd commit


Execute a symconfigure operation (y/[n]) ? y

A Configuration Change operation is in progress. Please wait...

Establishing a configuration change
session...............Established.
Processing symmetrix 000187940703
Performing Access checks..................................Allowed.
Locking devices...........................................Locked.
Submitting configuration changes..........................Submitted.
Validating configuration changes..........................Validated.
Initiating PREPARE of configuration changes...............Queued.
PREPARE requesting required resources.....................Obtained.
Step 006 of 017 steps.....................................Executing.
Step 006 of 017 steps.....................................Executing.
Step 015 of 017 steps.....................................Executing.
Local: PREPARE...........................................Done.
Initiating COMMIT of configuration changes................Queued.
COMMIT requesting required resources......................Obtained.
Step 004 of 046 steps.....................................Executing.
Step 017 of 046 steps.....................................Executing.
Step 037 of 046 steps.....................................Executing.
Step 011 of 059 steps.....................................Executing.
Step 011 of 059 steps.....................................Executing.
Step 042 of 059 steps.....................................Executing.
Step 042 of 059 steps.....................................Executing.
Step 049 of 059 steps.....................................Executing.
Step 050 of 059 steps.....................................Executing.
Step 051 of 059 steps.....................................Executing.
Step 056 of 059 steps.....................................Executing.
Local: COMMIT............................................Done.
Terminating the configuration change session..............Done.

The configuration change session has successfully completed.



The file is parsed to verify the format is correct, if its not the
session aborts. Then the symmetrix is locked while the change occurs so
only one change can occur at any given time. The changes are logged in
/var/symapi/log/symapi-.log, and storapid0.log


5.) Now lets verify we have the LUN mapped to the right port:

# symcfg list -FA 16C -p 0 -addr | egrep '014F|0150'
014F Not Visible 0 00
081
0150 Not Visible 0 00
082

6.) Looks good, but we want to remove them now right? Since they
are mapped they are in a state of ready for use. To remove them they
have to be put in a state of not_ready:

# for dev in 014F 0150
> do
> symdev -sid 703 not_ready $dev -noprompt
> done

'Not Ready' Device operation successfully completed for the device.

'Not Ready' Device operation successfully completed for the device.



7.) now we can do a symconfigure session to remove the devices. This
time we will forego the map file and use STDIN instead:

# symconfigure commit << EOF
> unmap dev 014F from dir 16C:0;
> unmap dev 0150 from dir 16C:0;
> EOF

A Configuration Change operation is in progress. Please wait...

Establishing a configuration change
session...............Established.
Processing symmetrix 000187940703
Performing Access checks..................................Allowed.
Locking devices...........................................Locked.
Submitting configuration changes..........................Submitted.
Validating configuration changes..........................Validated.
Initiating PREPARE of configuration changes...............Queued.
PREPARE requesting required resources.....................Obtained.
***SNIPPED***
Local: PREPARE...........................................Done.
Initiating COMMIT of configuration changes................Queued.
COMMIT requesting required resources......................Obtained.
***SNIPPED***
Local: COMMIT............................................Done.
Terminating the configuration change session..............Done.

The configuration change session has successfully completed.


8.) Verify the LUN addresses are available again on the director port:

# ./symcfg list -FA 16C -p 0 -addr -avail | tail -20
019F Not Visible 0 00
07D
01A0 Not Visible 0 00
07E
01A1 Not Visible 0 00
07F
01A2 Not Visible 0 00
080
- AVAILABLE 0 00

No comments:

Post a Comment