Using symcli Commands to Configure a VMAX
VMAX and Symmetrix SYMCLI commands
Before you can do anything with a VMAX, you need to install the Solution enabler software, which you can get from powerlink.emc.com. You download the software, unzip or untar it, run the emc-install program and get the product licensed.
Now you have your software, but you need to run an initialisation command before you can connect to your DMX. Navigate to /usr/symcli/bin and run;
symcfg discover symcfg list
The first command gets information from the DMX and uses it to build a configuration database on your host. The second command lists that information out.
However symcfg is a very powerful command that can be used to display and alter the configuration of a VMAX. My preference is to use symconfigure for most of this, but symcfg can be used to manage VMAX locks, RDF and director ports, gatekeeper devices, hosts and host ports, mainframe connections, and more.
Discover all VMAX arrays connected to this host, then build or refresh the Symmetrix configuration database file using this information:
Display information held in the Symmetrix configuration database about all attached Symmetrix arrays
Display more detailed information about the attached Symmetrix arrays and their directors
symcfg list -v -dir all
Display detailed information about a specific director, in this case 0E
symcfg list -v -dir 0E
Display information about all front-end directors on Symmetrix array 824
symcfg list -SA ALL -sid 824
Display information about all the registered hosts that are connected to the Symmetrix array 824
symcfg list -connections -sid 824
To list all gatekeeper and database access locks, enter:
symcfg list -semaphores
To verify whether the Symmetrix 824 configuration and the Symmetrix configuration database are in sync, enter:
symcfg verify -sid 824
list the port flags for port 0 on director 5 position A
symcfg -sid 38 list -sa 5A -p 0 -v
Take the above port offline (necessary to change port flags - and remember this could make storage unavailable to users so use with caution)
symcfg -sid 38 offline -sa 5A -p 0
enable port flag vcm-state on the above port
symcfg -sid 38 set port 5A:0 vcm-state=enable
put the port back online
symcfg -sid 38 online -sa 5A -p 0
The symconfigure command lets you make changes to your Symmetrix device, for example to add new volumes, add or change port and host assignments and configure remote mirroring RDF devices. It updates the symm.bin file on the symm. device. The command cannot be shortened, symcfg is a different command
As part of making changes, symconfigure lets you save the current configuration, reserve devices to prevent others from using them, and gives you a number of query, list and verify options to check the current status of a symmetrix and validate any proposed changes before applying them.
You run symconfigure from a host server that is connected to the symmetrix, If anything happens to that host or the connection to the symm. while a change was in progress then the symm. could be left in an indeterminate state. To cater for this scenario, symconfigure has an abort option that lets you back out uncompleted changes.
symconfigure itself has a fairly small set of parameters, it does most of its powerful processing by reading a command file. The simplest command is symconfigure -h, the online help facility. The other symconfigue commands require a -sid parameter which identifies the Symmetrix that you are going to change. Before you want to start to make changes you will probably want to see your existing Symmetrix configuration.
If the query command shows that a hung session exists, then no more updates will be possible as any session puts a lock 15 on the symm.
Checking VMAX status using symconfigure and managing reserves
These examples commands are running against a VMAX with a symmetrix ID of 123
Query VMAX 123 to see what total freespace is available
symconfigure -sid 123 -freespace -unit mb list
Display the version number of the SYMCLI, SYMAPI and the configuration server. -sid is optional, leave it off and the versions for all attached symms are displayed.
symconfigure -sid 123 -version -v
The query command will check for any existing active configuration activity.
If this command cannot get the information, it will keep retrying.
You can control this with the -i and -c options which are interval
between retries and number of retries.
Query a VMAX 8 times at 5 second intervals to see if any updates are running
symconfigure -sid 123 -i 5 -c 8 -v query
Query a VMAX for reserves
symconfigure -sid 123 -reserved list
Query a given reserve to get more details
symconfigure -sid 123 -reserve-id 4567 show
Safely attempt to release reserve 4567
symconfigure -sid 123 -reserve-id 4567 -noprompt release
Symconfigure examples using the command file
If you are planning updates to your VMAX configuration, then generally the
best way to do this is to put all your updates into a command file,
then run that file through the symconfigure command. The advantages
of doing this is that you can get your commands peer checked by a colleague
and syntax checked by the system before you run them. Each command has
'preview' which checks the syntax of your command list;
'prepare', which also checks your syntax, then checks that the VMAX is in a healthy enough state to process the commands, with enough free resources to process the command,
'commit' which does the first two, then applies the updates.
The basic syntax for running symconfigure updates using a command file called command.txt is
symconfigure -sid 123 -v -file command.txt preview symconfigure -sid 123 -v -file command.txt prepare symconfigure -sid 123 -v -file command.txt commit
Some optional parameters are -noprompt which suppresses the 'do you really want to ...' messages and -v for verbose which means echo results back to the terminal
Command file examples
Create 2 small Gatekeeper devices. Gatekeepers are used to communicate with the VMAX. EMC recommends 4 gatekeepers per port and they are typically created with just 6 cylinders.
create dev count=2 size=6 emulation=fba;
Create 20 bigger Standard devices
create dev count=20, SIZE=50 GB, eMulation=FBA;
Note that the commands are not case sensitive, parameters can be separated by commas or spaces, can span more than one line, can contain extra white space, but must end with a semicolon ';' .
Add 6 a new spare devices
create spare count=4, format = 520;
Older symmetrix devices has 512 bytes in a block, new devices have 520 bytes in a block.
To delete disks use
delete dev Device-name
Working with Metas
EMC split a physical device into between 1 and 128 hyper volumes, which are then combined together to form meta devices. A meta corresponds to a LUN as presented to a host, so a LUN can be bigger than a physical device. A meta-device can consist of up to 1024 hypers, but all the hypers must be the same size and type and have the same protection. Valid hyper sizes range from between 0.5 and 32GB. A Meta can be concatenated, that is, it can consist of hypers strung together, or it can be striped, when the data is striped across the hypers. The first device in a meta is known as the meta head.
The starting point is to find any unmapped devices using the command symdev list -noport. If any of these devices are allocated as BCV pairs or defined to device groups, then split them out using commands like this
symmir -g group_name split symmir -g group_name rmall
Examples of symconfigure command files working with metas
define a concatenated meta and add 2 more devices to it. Concatenated metas are best for sequential data access, and they are easier to gorw or shrink that striped metas.
form meta from device 028 config=concatenated; add dev 015:016 to meta 028;
define a striped meta and add 2 more devices to it. Striped metas are best for random data access, but they can't be shrunk and are more difficult to grow.
form meta from device 02b config=striped stripe-size=1920; add dev 017:018 to meta 02b;
Split meta 02b back into it's constituent hypers - this will destroy any data on the meta!
dissolve meta dev 02b;
remove device 016 from meta 028
remove dev 016 from meta 028;
Examples of symconfigure command files for mainframe disks
Create a mainframe striped meta. This must include at least 4 meta devices. This example creates 4 * 500 cylinder metas, then uses them to create a 2000 cylinder striped CKD meta in a RAID1 configuration.
create dev count=4 size=2000 emulation=CKD-3390 config=2-way-mir attribute=CKD-meta;
PAV aliases are used to allow multiple concurrent access to mainframe devices. See the PAV section for details. The following commands can be used to allocate PAV aliases. The first command will add 4 aliases to a specific symm. device. The second command allocates a range of aliases to a sub system
add pav alias to dev 02b alias count=4 add pav alias range 127:255 to mvs ssid=B000
Some other useful commands
One of the main uses of the symdev command is to see what free hypers are available. The command to do this is
symdev list -noport symdev list -da all space symdev list -meta symdev show meta head address
The second command will show all backend space available
The third command will list out all the meta heads, and also tell you how many hypers are associated with each meta head.
The last command will list out all the details for one meta. The show command usually gives more detail than list, as it reads its information from the host database.
Returns a string with a detailed description of any return code generated by any SYMAPI function
To return a string for error number 10, enter:
The following will be output:
SYMAPI Error Symbol : SYMAPI-C-NO-DEVS-FND-UPGRADE SYMAPI Error Message: No Symmetrix devices found with microcode version 5x63 or up.
This command checks which devices are mapped to a host
To work out directory and port mappings enter: