This script is a result of having to create quite a large number of dedicated Masking views for VMware ESX 5.x server boot volumes and Masking Views for shared vmfs datastore clusters. In this example I will create two dedicated ESX server MV’s and one Cluster Masking View consisting of the two ESX Hosts sharing a VMFS datastore.

Each VMware ESX server boots from a SAN-attached boot volume presented from the VMAX array. As an example the boot LUNs are 20GB devices which are configured from a dedicated RAID5 3+1 disk group:
symconfigure -sid xxx -cmd “create dev count=2, config=Raid-5, data_member_count=3, emulation=FBA, size=20GB, disk_group=1;” COMMIT
List the newly created devices:
symdev -sid xxx list -disk_group 1

If you wish to confirm that a device has not already been assigned to a host:
symaccess -sid xx list assignment -dev xxx
Or if you need to check a series of devices:
symaccess -sid xxx list assignment -dev xxx:xxx

“symaccess” command performs all Auto-provisioning functions. Using the symaccess command we will create a port group, initiator group and a storage group for each VMware ESX host and combine these newly created groups into a Masking View.

Port Group Configuration
1. Create the Port Group that will be used for the two hosts:
symaccess -sid xxx -name ESX-Cluster-PG -type port create
2. Add FA ports to the port group; in this example we will add ports from Directors 8&9 From Engines 4&5 8e:0,9e:0:
symaccess -sid xxx -name ESX-Cluster-PG -type port -dirport 8e:0,9e:0 add

Note on Port Groups: Where possible to achieve best performance and availability hosts should be mapped to two or more Front-End ports on directors. If you have multiple engines then spread across engines and directors – Rule 17 (20/40K). Please see post: EMC VMAX 10K Zoning with Cisco MDS Switches

Check that the Host HBAs are logging in:
symaccess -sid xxx list logins -dirport 8e:0
symaccess -sid xxx list logins -dirport 9e:0

Host ESX01 Masking View Configuration
1. Create the Initiator Group for ESX01:
symaccess -sid xxx -name ESX01_ig -type initiator create -consistent_lun
2. Add the ESX Initiator HBA WWNs to the Initiator Group:
symaccess -sid xxx -name ESX01_ig -type initiator -wwn wwn_A add
symaccess -sid xxx -name ESX01_ig -type initiator -wwn wwn_B add

3. Create the Storage Group for the first ESX host Boot volume:
symaccess –sid xxx -name ESX01_sg -type storage create
4. Add the Symmetrix boot volume device to the Storage Group:
symaccess -sid xxx -name ESX01_sg -type storage add devs ####
5. Create the Masking View:
symaccess -sid xxx create view -name ESX01_mv -sg ESX01_sg -pg ESX-Cluster-PG -ig ESX01_ig

Host ESX02 Masking View Configuration
1. symaccess -sid xxx -name ESX02_ig -type initiator create -consistent_lun
2. symaccess -sid xxx -name ESX02_ig -type initiator -wwn wwn_A add
symaccess -sid xxx -name ESX02_ig -type initiator -wwn wwn_B add
3. symaccess -sid xxx -name ESX02_sg -type storage create
4. symaccess -sid xxx -name ESX02_sg -type storage add devs ####
5. symaccess -sid xxx create view -name ESX02_mv -sg ESX02_sg -pg ESX-Cluster-PG -ig ESX02_ig

Configuration of Cluster1 (ESX01,ESX02) with shared VMFS Datastore
1. We begin by cascading the cluster hosts into a single Initiator Group:
symaccess -sid xxx -name Cluster1_IG -type initiator create -consistent_lun
symaccess -sid xxx -name Cluster1_IG -type initiator -ig ESX01_ig add
symaccess -sid xxx -name Cluster1_IG -type initiator -ig ESX02_ig add

2. Create the Storage Group containing the shared Datastore(s):
symaccess -sid xxx -name Cluster1_SG -type storage create
4. Add the Symmetrix shared Datastore(s) device(s):
symaccess -sid xxx -name Cluster1_SG -type storage add devs ####(:####)
5. The Port Group contains the director Front-End ports zoned to the ESX Hosts (As per the PG created above):
symaccess -sid xxx -name ESX-Cluster-PG -type port create
symaccess -sid xxx -name ESX-Cluster-PG -type port -dirport 8e:0,9e:0 add

6. The Masking View for the entire ESX cluster:
symaccess -sid xxx create view -name Cluster1_MV -sg Cluster1_SG -pg ESX-Cluster-PG -ig Cluster1_IG

View Configuration Details
To view the configuration of the groups PG,IG,SG and MV (use -v for more detail):
symaccess -sid xxx list -type storage|port|initiator -v
symaccess -sid xxx list -type storage|port|initiator -name group_name
symaccess -sid xxx show group_name -type storage|port|initiator
symaccess -sid xxx list view -v
symaccess -sid xxx list view -name view_name
symaccess -sid xxx list view -name view_name -detail
symaccess -sid xxx list assignment -dev DevID

symaccess -sid xxx list -type port (Lists all exisiting port group names)
symaccess -sid xxx show ESX-Cluster-PG -type port
symaccess -sid xxx list -type port -dirport 8e:0 (Lists all port groups that a particular director port belongs to)
symaccess -sid xxx show -type initiator Cluster1_IG -detail
symaccess -sid xxx list logins -wwn xxxx (Verify that wwn xxx is logged in to the FAs)
symaccess -sid xxx list -type initiator -wwn xxxx(Verify that the HBA is a member of the correct Initiator Group)
symaccess -sid xxx show Cluster1_SG -type storage
symaccess -sid xxx show view Cluster1_MV
symaccess -sid xxx list assignment -dev XXXX
(Shows the masking details of devices)

Verify BOOT|DATA LUN Assignment to FA Port(s) (LUN To PORT GROUP Assignment):
symaccess -sid xxx list assignment -devs ####
symaccess -sid xxx list assignment -devs ####:####

Backup Masking View to File
The masking information can then be backed up to a file using the following command:
symaccess -sid xxx backup -file backupFileName
The backup file can then be used to retrieve and restore group and masking information.

The SYMAPI database file can be found in the Solutions enabler directory: for example “D:\Program Files\EMC\SYMAPI\db\symapi_db.bin” if you wish to confirm the SE install location quickly then issue the following registry query cmd:
reg.exe query “HKEY_LOCAL_MACHINE\SOFTWARE\EMC\EMC Solutions Enabler” /v InstallPath

Note: On the VMAX Service Processor the masking information is automatically backed up every 24 hours by the Scheduler. The file (accessDB.bin) is saved to O:\EMC\S/N\public\user\backup.

Restore Masking View from File
To restore the masking information to Symmetrix enter the following command:
symaccess -sid xxx restore -file backupFileName


  1. this is good stuff, one thing i would like to add is for folks who are booting from UCS. If you have ACLX device mapped to VMAX FAs you are booting from, the boot LUN id definition for your boot profile should be 1 and not 0 (since 0 is used by ACLX device)

  2. What’s the best practice for the MDS configuration to support this type of layout? I read the MDS post you linked above, so based on that it appears you are creating an MDS zone for each VMAX initiator group, so with that in mind, would I have a separate MDS zone for the boot lun initiator groups, and a different MDS zone for the shared storage initiator group(s)? thanks for any info, I am very new to VMAX and MDS and your amazing posts have been extremely helpful for me to get my bearings.

  3. Great Job David !!
    Really appreciate your effort .. 🙂
    By any chance do you have step to do the FCIP configuration between two VMAX across DC.
    Including VMAX and Cisco .

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s