Summary: emc device mapping from the command line prompt

From: David Cecchino <dcecchino_at_gmail.com>
Date: Wed Jul 26 2006 - 09:04:57 EDT
Hi Guys,

I received a lot of responses, so thank you to everyone who responded. Here
is a good response I received that I am posting to everyone as a summary.


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-<date>.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
081 *
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
Received on Wed Jul 26 09:05:26 2006

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:44:00 EST