Disable PowerPath

1. Please ensure that LUNS are available to the host from multiple paths
# powermt display

2. Stop the Application so that there is no i/o issued to Powerpath devices If the application is under VCS control , please offline the service on that node
# hagrp –offline <servicename> offline

3. Unmount filesystems and Stop the volumes so that there is no volumes under i/o
# umount /<mount_point
#vxvol –g <dgname> stop all

4. Stop CVM and VERITAS Fencing on the node ( if part of a VCS cluster) NOTE: All nodes in VCS
cluster need to be brought down if CVM / fencing are enabled.
#vxclustadm stopnode
# /etc/init.d/vxfen stop

5. Disable volume Manager startup
#touch /etc/vx/reconfig.d/state.d/install-db

6. Reboot host
#shutdown –y –i6

7. Unmanage/remove Powerpath devices
#powermt remove dev=all

8. Verify that Powerpath devices have been removed
#powermt display dev=all

9. Uninstall Powerpath Binaries (package)
#pkgrm EMCpower

10.Run EMC Powerpath cleanup script

11.Reboot the host only if Powerpath Uninstall requests a reboot.

12.Start VERITAS Volume Manager daemons
#vxconfigd –m enable

13.Enable Volume Manager Startup ( disabled in step 5 )
#rm /etc/vx/reconfig.d/state.d/install-db

14.Update Boot alias of host if required in OBP

PowerPath Command Examples

# powermt check_registration

Product: PowerPath
Capabilities: Symmetrix CLARiiON

# powermt display dev=emcpower10c

Pseudo name=emcpower6a
Symmetrix ID=000112345676
Logical device ID=0029
state=alive; policy=SymmOpt; priority=0; queued-IOs=0
———– Host ——— – Stor – — I/O Path – — Stats —
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
0 sbus@2,0/fcaw@2,0 c4t25d225s0 FA 13bA active dead 0 1
1 sbus@6,0/fcaw@1,0 c5t26d225s0 FA 4bA active alive 0 0

# powermt display paths

Symmetrix logical device count=20
– Host Bus Adapters – – Storage System – – I/O Paths –
### HW Path ID Interface Total Dead
0 sbus@2,0/fcaw@2,0 000184503070 FA 13bA 20 20
1 sbus@6,0/fcaw@1,0 000184503070 FA 4bA 20 0
CLARiiON logical device count=0
– Host Bus Adapters — —- Storage System — – I/O Paths –
### HW Path ID Interface Total Dead

# powermt display ports

Storage class = Symmetrix
—— Storage System ——- — I/O Paths — — Stats —
ID Interface Wt_Q Total Dead Q-IOs Errors
000184503070 FA 13bA 256 20 20 0 20
000184503070 FA 4bA 256 20 0 0 0
Storage class = CLARiiON
—— Storage System —– — I/O Paths — — Stats —
ID Interface Wt_Q Total Dead Q-IOs Errors

PowerPath Commands

PowerPath CLI Commands

Command                     Description

powermt                       Manages a PowerPath environment
powercf                         Configures PowerPath devices
emcpreg -install        Manages PowerPath liciense registration
emcpminor                 Checks for free minor numbers
emcpupgrade             Converts PowerPath configuration files

PowerPath powermt commands

Command                    Description

powermt check                 Checks for and optionally removes dead paths
powermt check_registration Checks the state of the PowerPath license
powermt config                Configures local devices as PowerPath devices
powermt display              Displays the state of HBA configured for PowerPath
powermt display              options Displays the periodic autorestore settings
powermt load                    Loads a PowerPath configuration
powermt remove             Removes a path from the PowerPath configuration
powermt restore              Tests and restores paths
powermt save                    Saves a custom PowerPath configuration
powermt set mode          Sets paths to active or standby mode
powermt set                       Enables or disables periodic autorestore
powermt set policy        Changes the load balancing and failover policy
powermt set priority     Sets the I/O priority
powermt version             Returns the number of PowerPath version for which powermt was created
periodic_autorestore    Same as powermt set
powermt watch                Same as powermt display – deprecated
PowerPath                          Command Examples

Linux p2v in Xen

rsync works great on production enviroments, We had paravirtualized some servers with these method:

 rsync -ave ssh –exclude=/proc –exclude=/sys –exclude=/dev (if you are using udev) root@runingserver:/  /mnt/newserverimage/

after this:

 mkdir /mnt/newserverimages/proc

 mkdir /mnt/newserverimages/sys

 mkdir /mnt/newserverimages/dev

 review your fstab, and copy the kernel modules:

 cp -pr /lib/modules/2.6.16-xenU /mnt/newserverimages/lib/modules/

 more or less …. this is the way

 Also I have full virtualitzed some old GNU/Linux boxes with kernels 2.4,

I used GNU/Linux live CD on the old box and dd utility:

 dd if=/dev/hda | ssh root@ “/bin/dd of=/dev/vg00/newvserver”


 dd if=/dev/hda | ssh root@ “/bin/dd of= /dev/vmvg01/classicapp02”


Creating an IPF Firewall with Solaris 10



 1.  Background

2.  Configuring IPF

3.  Enabling IPF

4.  Common IPF commands




 With the release of Solaris 10, ipfilter is now supported.  Before Solaris 10, EFS or SunScreen Lite was the default firewall.  IPfilter is a mature product traditionally found in BSDish Operating Systems.

 Configuring IPF


 First, you will need an ipf ruleset.  The Solaris default location for this file is /etc/ipf/ipf.conf.  Below is the ruleset I used for a Solaris 10 x86 workstation.  Note that the public NIC is called elx10. 

Simply copy this ruleset to a file called /etc/ipf/ipf.conf, and edit to your needs.

 # My IP:


# Block any packets which are too short to be real block in log quick all with short


# drop and log any IP packets with options set in them.

block in log all with ipopts


# Allow all traffic on loopback.

pass in quick on lo0 all

pass out quick on lo0 all


# Public Network.   Block everything not explicity allowed.

block in  on elxl0 all

block out on elxl0 all


# Allow pings out.

pass out quick on elxl0 proto icmp all keep state


# for testing, allow pings from ben and jerry

pass in quick on elxl0 proto icmp from to

pass in quick on elxl0 proto icmp from to


# Allow outbound state related packets.

pass out quick on elxl0 proto tcp/udp from any to any keep state


# allow ssh from only.

# pass in log quick on elxl0 from to port = 22

# Actually, allow ssh only from ben, jerry, MSU

pass in log quick on elxl0 proto tcp from to port = 22

pass in log quick on elxl0 proto tcp from to port = 22

pass in log quick on elxl0 proto tcp from to port = 22

Enabling IPF


 Now that you have an ipf ruleset in place, you’ll need to tell the Solaris packet filter which interface to use.  This is accomplished by uncommenting your interface name from /etc/ipf/pfil.ap.

 My pfil.ap file looks like this:

 # IP Filter pfil autopush setup


# See the autopush(1M) manpage for more information.


# Format of the entries in this file is:


#major  minor lastminor modules


#iprb   -1      0       pfil

elxl    -1      0       pfil

#e1000g -1      0       pfil

#bge    -1      0       pfil

#nf     -1      0       pfil

#fa     -1      0       pfil

#ci     -1      0       pfil

#el     -1      0       pfil

#ipdptp -1      0       pfil

#lane   -1      0       pfil

#dnet   -1      0       pfil

#pcelx  -1      0       pfil

#spwr   -1      0       pfil

That’s It!  The ipf firewall should be enabled and working with the next reboot!


Note that the Solaris 10 implementation of ipf will start ipmon.

Ipmon is the ipf utility used to monitor and log packets.  By default,

ipmon will write logged packets to /var/adm/messages.


Some Commonly used ipf commands



ipf -E                          : Enable ipfilter when running  for the first time. (Needed for ipf on Tru64)

ipf -f /etc/ipf/ipf.conf        : Load rules in /etc/ipf/ipf.conf file  into the active firewall.

ipf -Fa -f /etc/ipf/ipf.conf    : Flush all rules, then load rules in  /etc/ipf/ipf.conf into active firwall.

ipf -Fi                         : Flush all input rules.

ipf -I -f /etc/ipf/ipf.conf     : Load rules in /etc/ipf/ipf.conf file  into inactive firewall.

 ipf -V                          : Show version info and active list.

 ipf -s                          : Swap active and inactive firewalls.

ipfstat                         : Show summary

ipfstat -i                      : Show input list

ipfstat -o                      : Show output list

ipfstat -hio                    : Show hits against all rules

ipfstat -t -T 5                : Monitor the state table and refresh every   5 seconds. Output is similiar to   top’ monitoring the process table.

ipmon -s S                      : Watch state table.

ipmon -sn                       : Write logged entries to syslog, and  convert back to hostnames and servicenames.

 ipmon -s [file]                 : Write logged entries to some file.

 ipmon -Ds                      : Run ipmon as a daemon, and log to  default location.  (/var/adm/messages for Solaris)  (/var/log/syslog for Tru64)


How to find out and configure the MAX_IO_SIZE in solaris?

The “maxphys” kernel parameter limits the max. I/O size in the SCSI

Default is 128k.
The “vol_maxio” kernel parameter limits the max. I/O size in the VxVM layer
(if installed). Default is 256k.
The “md_maxphys” kernel parameter limits the max. I/O size in the
DiskSuite/SVM layer (if installed). Default is equal to maxphys.
The “sd_max_xfer_size” module parameter limits the max. I/O size in the SD
module (if installed). Default is 1 Mb.
The ” sd_max_xfer_size” module parameter limits the max. I/O size in the SSD
module (if installed). Default is 1 Mb.

Set the default max. I/O size in Veritas to match/exceed the max. I/O size
that will be used.

in /etc/system, place

set maxphys=1048576
set vxio:vol_maxio=2048
* to allow 1MB I/Os.

vol_maxio is in Veritas units i.e. disk sectors of 512 bytes.
maxphys is in bytes.

SRDF splitting in DMX / Symmetrix

1. logon to emc server

2. search for the host in question and the device group (in this case host4 device group Adat3)
   # symdg list

                             D E V I C E      G R O U P S

                                                             Number of
    Name               Type     Valid  Symmetrix ID  Devs   GKs  BCVs  VDEVs

    host1_data-M       RDF1     Yes    000285700131     8     0     0      0
    host1_dumps-M      RDF1     Yes    000285700131     1     0     0      0
    host2_data-M       RDF1     Yes    000285700131     9     0     0      0
    host2_temp-M       RDF1     Yes    000285700131     6     0     0      0
    host3_data         RDF1     Yes    000285700131     8     0     0      0
    host4_Adat3        RDF1     Yes    000290100000    27     0     0      0   (this is the one we want)
    host4_Bdat3        RDF1     Yes    000290100000    12     0     0      0

3. split the device group
   # symrdf -g host4_IBM3 split

   Execute an RDF 'Split' operation for device
   group 'host4_IBM3' (y/[n]) ? y

   An RDF 'Split' operation execution is
   in progress for device group 'host4_IBM3'. Please wait...

       Suspend RDF link(s).......................................Done.
       Read/Write Enable device(s) on RA at target (R2)..........Done.

   The RDF 'Split' operation successfully executed for
   device group 'host4_IBM3'.

4. confirm the split
   # symrdf -g host4_IBM3 query

   Device Group (DG) Name             : host4_IBM3
   DG's Type                          : RDF1
   DG's Symmetrix ID                  : 000290100000

          Source (R1) View                 Target (R2) View     MODES
   --------------------------------    ------------------------ ----- ------------
                ST                  LI      ST
   Standard      A                   N       A
   Logical       T  R1 Inv   R2 Inv  K       T  R1 Inv   R2 Inv       RDF Pair
   Device  Dev   E  Tracks   Tracks  S Dev   E  Tracks   Tracks MDA   STATE
   -------------------------------- -- ------------------------ ----- ------------

   DEV001  05F8 RW       0      260 NR 06B0 RW       0        0 S..   Split
   DEV002  0608 RW       0      258 NR 06C0 RW       0        0 S..   Split
   DEV003  0618 RW       0      262 NR 06D0 RW       0        0 S..   Split
   DEV004  0628 RW       0      266 NR 06E0 RW       0        0 S..   Split
   DEV005  0638 RW       0      264 NR 06F0 RW       0        0 S..   Split

5. To reestablish the link
   # symrdf -g host4_IBM3 establish

   Execute an RDF 'Incremental Establish' operation for device
   group 'host4_IBM3' (y/[n]) ? y

   An RDF 'Incremental Establish' operation execution is
   in progress for device group 'host4_IBM3'. Please wait...

       Write Disable device(s) on RA at target (R2)..............Done.
       Suspend RDF link(s).......................................Done.
       Resume RDF link(s)........................................Started.
       Merge device track tables between source and target.......Started.
       Devices: 0778-078F ...................................... Merged.
       Devices: 0758-0777 ...................................... Merged.
       Devices: 0738-0757 ...................................... Merged.
       Devices: 0718-0737 ...................................... Merged.
       Devices: 06F8-0717 ...................................... Merged.
       Devices: 06D8-06F7 ...................................... Merged.
       Devices: 06B8-06D7 ...................................... Merged.
       Devices: 0698-06B7 ...................................... Merged.
       Devices: 0678-0697 ...................................... Merged.
       Devices: 0658-0677 ...................................... Merged.
       Devices: 0638-0657 ...................................... Merged.
       Devices: 0618-0637 ...................................... Merged.
       Devices: 05F8-0617 ...................................... Merged.
       Merge device track tables between source and target.......Done.
       Resume RDF link(s)........................................Done.

   The RDF 'Incremental Establish' operation successfully initiated for
   device group 'host4_IBM3'.

Host HBA installation and configuration

This document describes how to install a particular HBA on diffferent O/S.


To display what HBA’s are installed

  • lscfg
  • lscfg -v -l fcs*

To set the configuration you must carry out the following:

  • List HBA WWN and entry on system
  • Determine code level of OS and HBA
  • Download and install EMC ODM support fileset
  • run /usr/lpp/Symmetrix/bin/emc_cfgmgr (symmetrix) or /usr/lpp/emc/CLARiiON/bin/emc_cfgmgr (clariion)

To discover the SAN devices

  • /usr/lpp/EMC/Symmetrix/bin/emc_cfgmgr -v if the above does not work reboot server


To display what HBA’s are installed.

  • /opt/fcms/bin/fcmsutil /dev/td# (A5158A HBA)
  • /opt/fc/bin/fcutil /dev/fcs# (A6685A HBA)

On a HP system there is no additional software to install.

The HP systems Volume address setting must be enabledon the SAN, you can check this will the following command.

  • symcfg -sid <SYMM ID> -FA all list (confirm that the volume set addressing is set to yes)

To discover the SAN devices

  • ioscan -fnC disk (scans hardware busses for devices according to class)
  • insf -e (install special device files)


To display what HBA’s are installed.

  • prtdiag -v
  • dmesg
  • cat /var/adm/messages | grep -i wwn | more

To set the configuration you must carry out the following:

  • changes to the /etc/system file
  • HBA driver modifications
  • Persistent binding (HBA and SD driver config file)
  • EMC recommended changes
  • Install the Sun StorEdge SAN Foundation package

Changes to /etc/system

SCSI throttle set sd:sd_max_throttle=20
Enable wide SCSI set scsi_options=0x7F8
SCSI I/O timeout value

sd:sd_io_time=0x3c (with powerpath)
sd:sd_io_time=0x78 (without powerpath

Changes to HBA driver (/kernel/drv/lpfc.conf)

no-device-delay=1 (without PP/DMP) 0 (with PP/DMP)
linkdown-tmo=0 (without PP/DMP) 60 (with PP/DMP)

Persistent Binding

Both the lpfc.conf and sd.conf files need to be updated. General format is

name=”sd” parent=”lpfc” target=”X” lun=”Y” hba=”lpfcZ”

X is the target number that corresponds to the fcp_bindWWNID lpfcZtX
Y is the LUN number that corresponds to symmetrix volume mapping on the symmetrix port WWN or HLU on the clariion
Z is the lpfc drive instance number that corresponds to the fcp_bind_WWID lpfcZtX

To discover the SAN devices

  • disk;devlinks;devalias (solaris 2.6)
  • devfsadm (solaris 2.8)
  • /usr/sbin/update_drv -f sd (solaris 2.9 >)


To display what HBA’s are installed.

  • use admin tool “device manager”

To set the configuration you must carry out the following:

  • Registry edits
  • EMC recommended changes
  • Install emulex exlcfg utility

Registry changes

See the Host connectivity guide for windows or use the Emulex configuration tool to set the below registry settings.

Arbitrated loop without powerpath/ATF InitLinkFlags=0x00000000 (arbitrated loop, auto-link speed)
Arbitrated loop with powerpath/ATF InitLinkFlags=0x00000000 (arbitrated loop, auto-link speed)
Fabric without powerpath/ATF InitLinkFlags=0x00000002 (fabric, auto-link speed)
Fabric with powerpath/ATF InitLinkFlags=0x00000002 (fabric, auto-link speed)

Modifying the EMC environment

In the shortcut for the elxcfg add the “–emc” option to the target option.

To discover the SAN devices

  • control panel -> admin tools -> computer management -> select disk management -> (top menu)action -> rescan tools

Red Hat

  1. Install the EMC rpms
  2. echo “scsi-qlascan” > /proc/scsi/qla2300/[0,1]
  3. cd /apps/packages/EMC
  4. ./rescan-scsi-bus.sh –luns=[list,range-range]
  5. powermt config (to see the new lun[s] in Power Path)
  6. powermt -display dev=all


SAN Switch cheat sheet


M-Series (Mcdata) switches uses both web and CLI, the table below displays some but not all the CLI commands.

commadelim Toggle comma-demlimited display mode
config configure settings
login login into CLI with different access rights
maint maintenance settings
perf Performance statistics
reserved reserved for future development
show display attributes
features configure feature settings
ip configure IP settings
logout logout of the CLI
port configure port data
security configure security settings
snmp configure snmp
switch configure switch data
system configure system data
zoning confgiure zoning settings

There are several commands that allow you to navigate through the switch “..”, “ctrl-U” and “root” .

M-Series (Mcdata) zoning commands are detailed in the below table

showactive show actively running zoneSet
clearzone clear WWN’s in a zone
deletezone remove zone from running config
activezoneset activation of changes
addzone add a new zone to the working area
addwwnmem add a WWN to a zone
showpending show pending zones
renamezone rename a zone
deletewwn delete a WWN from a zone
renamezoneset rename a zone set

Zoning limits

  • 64 zone sets (max)
  • 2000 zones (max)
  • 1024 zones per zone set (max)
  • deafult should all ways be disabled (causes all port to see each other creating ghosts in a FA’s login table)


B-Series (Brocade) switches uses both web and CLI, the table below displays some but not all the CLI commands.

help prints available commands
switchdisabled disable the switch
switchenable enable the switch
licensehelp license commands
diaghelp diagnostic commands
configure change switch parameters (BB credits, etc)
diagshow POST results since last boot
routehelp routing commands
switchshow display switch show (normally first command to run to obtain switch configuration)
supportshow full detailed switch info
portshow # display port info
nsshow namesever contents
nsallshow NS for full fabric
fabricshow Fabric information
version firmware code revision
reboot full reboot with POST
fastboot reboot without POST

B-Series (Brocade) zoning commands are detailed in the below table

zonecreate (zone) create a zone
zoneshow shows defined and effective zones and configurations
zoneadd adds a member to a zone
zoneremove removes a member from a zone
zonedelete delete a zone
cfgcreate (zoneset) create a zoneset configuration
cfgadd adds a zone to a zone configuration
cfgshow display the zoning information
cfgenable enable a zone set
cfgsave saves defined config to all switches in fabric across reboots
cfgremove removes a zone from a zone configuration
cfgdelete deletes a zone from a zone configuration
cfgclear clears all zoning information (must disable the effective config first)
cfgdisable disables the effective zone set

B-series creating a zone commands

Creating zone by WWN zonecreate “zone1”, “20:00:00:e0:69:40:07:08 ; 50:06:04:82:b8:90:c1:8d”
Create a zone configuration cfgcreate “test_cfg”, “zone1 ; zone2”
saving the zone configuration cfgsave (this will save across reboots)
enable the zone configuration cfgenable “test_cfg”
saving the zone configuration cfgsave
view zoning information zoneshow or cfgshow


B-Series (Cisco) switches uses both web and CLI, the table below displays some but not all the CLI commands, the ones highlighted will be the ones used most often.

EXEC mode commands:

attach connect to a specific linecard
bios BIOS related commands
callhome callhome commands
clear reset functions
clock manage the system clock
config enter configuration mode
debug debug functions
discover discover information
exit exit ffrom the submode
fcping Ping a N_Port
fctrace trace a route for a N_Port
load load system image
no disable debugging functions
reload reboot the switch
setup run the basic setup command facility
show display running system information
system system management commands
test test command
write write the current configuration
zone zoning server commands

CONFIG mode commands:

aaa config aaa
boot configure boot variables
callhome enter the callhome configuration mode
clock configure time and date
fcalias fcalias configuration commands
fcanalyzer configure fabric analyzer
fcc configure FCC congestion control
fcdomain enter the fcdomain configuration mode
fcdroplatency configure switch or network latency
fcflow configure fcflow
fcinterop interop commands
fcns Name server configuration
fcroute configure FC routes
fcs Configure fabric config server
fctimer configure fibre channel timers
fspf configure fspf
interface select an interface to configure
ip configure IP features
no Negate a command or set its default
ntp NTP configuration
power configure power supply
poweroff power off module in switch
qos Configure priority of FC control frames
radius-server configure radius related parameters
role configure roles
snmp-server configure snmp
span enter SPAN configuration mode
ssh configure ssh parameters
switchname configure systems network name
system system config command
trunk configure switch wide trunk protocol
username configure username information
vsan enter the vsan configuration mode
zone zoning configuration commands
zoneset zoneset configuration commands

There are several commands that allow you to navigate through the switch “cd”, “copy”, “dir”, “find”, “mkdir”, “move”, “rmdir” and “tail”.

MDS-series creating a zone

create a zone and place it in the vsan # zone name testzone1 vsan 4
add a member (port wwn example) # member pwwn 10:00:00:00:c9:21:40:b8 (port on the host)
add a member (fabric port wwn example) # member fwwn 10:01:10:01:10:ab:cd:ef (port on the switch)
add a member (FCID example – hard zoning) # member fcid 0x7f0000 (24 bit address)
add a member (FC alias example) # member fcalias payroll

MDS-series common commands

display logged in WWN, display vsan information # show flogi database
display the specific vsan logins # show fcns database vsan 4
activatng a zoneset # zoneset activate name zone1 vsan 4
delete a zoneset # clear zone dataabse vsan 4
configure the default zone # zone default-zone permit vsan 4
display zones and zonsets # show zoneset active
# show zoneset
# show zoneset active vsan 4
copy active zone set to the full zone set # zone copy active-zoneset full-zoneset vsan 4
distribute the full zoning database to others switches # zoneset distribute full vsan 4


Symmetrix CLI cheat sheet

First the Solution enabler software has to be installed which can be obtained from powerlink.emc.com. The should be unzip/untarred and the emc_install program should be run. You need to license the product and then run the following command to discover the connected symmetrix:

# /usr/symcli/bin/symcfg discover
# /usr/symcli/bin/symcfg list

Once installed the below table lists all common commands that can be used using the symcli command interface.

symmaskdb commands


create and initialises a device masking database. On completion, the database device cannot be written to by the operating system.

Note: This command only needs to be run once otherwise all SAN configuration is lost

backup backups up the database to a specified file
restore restore a database file
remove removes the meta member devices
list database lists for each symmetrix fibre director which devices in a symmetrix system a WWN can access
list devs (-wwn) lists all devices accessible to an HBA on a specified symmetrix system and all directors that access each device
list assignment (-dev) List the HBA assignments to devices
list capacity (-host) Lists the capacity of devices assigned to a particlur host

symdev commands

list list available devices
-v list detailed information of a device
show <symdevname> display meta device information
-noport list list available devices

sympd commands

list lists the symmetrix devices that are accessed through fibre channel and shows their controlling director, TID, LUN, device number and serial number. Also shows which device holds the device masking database (VCM).
list -vcm lists all the physical devices in the device masking database

symcfg commands

list -v lists whether the symmetrix director has device masking turned on
list -address -fa -available all lists all fibre directors in a symmetrix system and which devices they can access
list -sa all lists all fibre directors (FA) in a symmetrix system
list -sa 15D -v lists detailed information on a FA port
-application list list applications using the symmetrix
-connections list list host connections to the array

symmask commands

add devs add a device to the list of devices that a WWN can access in the database
remove devs remove a device from the list of devices that a WWN can access in the database
delete deletes all access rights for a WWN in the database
replace allows one HBA to replace another
set lockdown sets or clears the fibre channel ID lockdown
set visibility sets or clears visibility for noncontiguous LUNS
set lunoffset sets or clears a LUN base/offset skip for noncontiguous LUNS.
set heterogeneous sets or clears heterogeneous host inform with distinctive attributes
rename changes the AWWN for the specified WWN in the database and login history table

causes the symmetrix system to refresh its WWN related memory tables with the contents of the database

If you update the VCMDB you must run this command to see your changes

discover hba discovers the HBA on the host and assigns AWWN to the login history table entries for thoses WWNs that are not set
list logins Lists foreach fibre director which hosts and HBAs are logged into the symmetrix. (displays the login history table contents)
list hba lists WWNs of the fibre HBAs on this host.

symconfigure commands

-sid <sid> -f <filename> verify verify that we have access to the symmetrix and we can make changes
-sid <sid> -f <filename> preview confirm that the syntax is correct (since we use a mapping files)
-sid <sid> -f <filename> commit commit the changes to the database

control and log files locations

/var/symapi/db/symapi_db.bin default symapi database file
/var/symapi/config/netcnfg lists the network services available from that host
/var/symapi/config/options the options file contains behavior parameters that can be set to critically change default behavior of SYMCLI operations, SYMAPI calls and their control actions
/var/symapi/config/symavoid identifies devices to skip over when looking for devices
/var/symapi/config/gkavoid identifies devices not chosen as gatekeepers
/var/symapi/config/inqfile lists devices to be added to the symapi database
/var/symapi/log/symapi-<date>.log logfile for symcli.symapi functions, calls, activities

common commands

initialize the VCMDB

# symmaskdb -sid 084 init -f newinit.db

Note: This command only needs to be run once otherwise all SAN configuration is lost, also make sure the database is backed up regularly.

backup the VCMDB # symmaskdb -sid 084 -file <filename> backup
restore the VCMDB # symmaskdb -sid 084 -file <filename> restore
refresh the database

# symmask -sid 084 refresh

Note: Remember any changes to the VCMDB have to be uploaded to the symmetrix memory, otherwise you will not see your changes.

list the database # symmaskdb -sid 084 list database
list a specific device # symmaskdb -sid 084 -dev 0029 list assignment -v
FA Ports
List currently configured FA port settings (this is used primary for HP systems) # symcfg -sa <##|all> [-p <#>] list -v
List currently visable devices on a FA port

# symcfg -sid 084 -FA 15C -address list

Disk Devices
list all devices within the array # symdev list
# inq
list a specific device within the array # symmaskdb -sid 084 -dev 0029 list assignment -v
add access to the symmetrix devices

# symmask -sid 084 -wwn 10000000c9370c0a -dir 15c -p 0 add devs 0029,002A,002B

dir = director port
p = port number on the director port

Note: the devices are symmetrix devices ID’s not LUN ID’s. Also this is know as LUN masking.

remove access from the symmetrix devices # symmask -sid 084 -wwn 10000000c9370c0a remove devs 0029,002A
list devices available assigned to a specific host

# symmaskdb -sid 084 -host 10000000c9370c0a list capacity

display meta devices # symdev show <symdevname>
register the HBA with the VCMDB # symmask discover hba
List HBAs in local host # symmask list hba -v
List HBAs to FA port logins # symmask -sid 084 list logins
Build file contents
Meta devices files

Form meta from dev 0004, config-striped stripe_size=1920;
add dev 0005 to meta 0004;
add dev 0006 to meta 0004;
add dev 0007 to meta 0004;
add dev 0008 to meta 0004;

The run the following:

# symconfigure -sid 084 -f meta.txt verify
# symconfigure -sid 084 -f meta.txt preview
# symconfigure -sid 084 -f meta.txt commit

Mapping devices file (map devices to ports)

map dev 002e to dir 15C:0 target=0, lun=006;
map dev 002e to dir 16C:0 target=0, lun=006;
map dev 0042 to dir 15C:0 target=0, lun=007;
map dev 0042 to dir 16C:0 target=0, lun=007;

The run the following:

# symconfigure -sid 084 -f mappings.txt verify
# symconfigure -sid 084 -f mappings.txt preview
# symconfigure -sid 084 -f mappings.txt commit

Modifying FA Port settings (used for HP systems only)

set port1C:1 volume_set_addressing=enabled;
set port15C:1 volume_set_addressing=enabled;
set port16C:1 volume_set_addressing=enabled;
set port2C:1 volume_set_addressing=enabled;

The run the following:

# symconfigure -sid 084 -f port.txt verify
# symconfigure -sid 084 -f port.txt preview
# symconfigure -sid 084 -f port.txt commit