If you have experience with IBM DS serial storage systems(previously called FastT), then probably you family with GUI based Storage Manager.

However, you can also use Command line interface and the script commands for DS3000, DS4000™, and DS5000 Storage Manager software to configure, operate, and maintain a storage subsystem.

 

There is a reference book call 'Command Line Interface and Script Commands Programming Guide', describes all the commands, here I only show you most used commands.

In the article Command line interface for ibm DS Storage Manager, I showed you useful command examples, here I will show you a whole system setup script using command line interface

First, you need your hardware installed and ip configured.

 

Set storage subsystem parameters.

SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storagesubsystem mediaScanRate=30;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storagesubsystem cacheBlockSize=32;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storagesubsystem cacheFlushStart=80;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storagesubsystem cacheFlushStop=80;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storageSubsystem defaultHostType="LNXALUA";'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storageSubsystem failoverAlertDelay=60;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storageSubsystem learnCycleDate day=Monday;'
SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password ""; set storageSubsystem learnCycleDate daysToNextLearnCycle=20120220;'

Create array and logical units

The following script creates 11 logical drives in each storage subsystem, total 11 identical sub systems

## create array and logic unit, switch echo and eval to have dry run or real. loop for 11 identical storage subsystems
for u in 01 02 03 04 05 06 07 08 09 10 11
{
        ## assign hot spare disk
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; set drive[1,5,5] hotSpare=true;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,1 1,2,2 1,3,1 1,4,2 1,5,1 2,1,2 2,2,1 2,3,2 2,4,1 2,5,2 3,1,1 3,2,2 3,3,1 3,4,2 3,5,1)raidLevel=6 arrayUserLabel=\"unit${u}_array0\" userLabel=\"unit${u}_lun0\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,2 1,2,1 1,3,2 1,4,1 1,5,2 2,1,1 2,2,2 2,3,1 2,4,2 2,5,1 3,1,2 3,2,1 3,3,2 3,4,1 3,5,2)raidLevel=6 arrayUserLabel=\"unit${u}_array1\" userLabel=\"unit${u}_lun1\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,3 1,2,4 1,3,3 1,4,4 1,5,3 2,1,4 2,2,3 2,3,4 2,4,3 2,5,4 3,1,3 3,2,4 3,3,3 3,4,4 3,5,3)raidLevel=6 arrayUserLabel=\"unit${u}_array2\" userLabel=\"unit${u}_lun2\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,4 1,2,3 1,3,4 1,4,3 1,5,4 2,1,3 2,2,4 2,3,3 2,4,4 2,5,3 3,1,4 3,2,3 3,3,4 3,4,3 3,5,4)raidLevel=6 arrayUserLabel=\"unit${u}_array3\" userLabel=\"unit${u}_lun3\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,5 1,2,6 1,3,5 1,4,6 2,1,6 2,2,5 2,3,6 2,4,5 2,5,6 3,1,5 3,2,6 3,3,5 3,4,6 3,5,5)raidLevel=6 arrayUserLabel=\"unit${u}_array4\" userLabel=\"unit${u}_lun4\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,6 1,2,5 1,3,6 1,4,5 1,5,6 2,1,5 2,2,6 2,3,5 2,4,6 2,5,5 3,1,6 3,2,5 3,3,6 3,4,5 3,5,6)raidLevel=6 arrayUserLabel=\"unit${u}_array5\" userLabel=\"unit${u}_lun5\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,7 1,2,8 1,3,7 1,4,8 1,5,7 2,1,8 2,2,7 2,3,8 2,4,7 2,5,8 3,1,7 3,2,8 3,3,7 3,4,8 3,5,7)raidLevel=6 arrayUserLabel=\"unit${u}_array6\" userLabel=\"unit${u}_lun6\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,8 1,2,7 1,3,8 1,4,7 1,5,8 2,1,7 2,2,8 2,3,7 2,4,8 2,5,7 3,1,8 3,2,7 3,3,8 3,4,7 3,5,8)raidLevel=6 arrayUserLabel=\"unit${u}_array7\" userLabel=\"unit${u}_lun7\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,9 1,2,10 1,3,9 1,4,10 1,5,9 2,1,10 2,2,9 2,3,10 2,4,9 2,5,10 3,1,9 3,2,10 3,3,9 3,4,10 3,5,9 )raidLevel=6 arrayUserLabel=\"unit${u}_array8\" userLabel=\"unit${u}_lun8\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,10 1,2,9 1,3,10 1,4,9 1,5,10 2,1,9 2,2,10 2,3,9 2,4,10 2,5,9 3,1,10 3,2,9 3,3,10 3,4,9 3,5,10)raidLevel=6 arrayUserLabel=\"unit${u}_array9\" userLabel=\"unit${u}_lun9\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,11 1,2,12 1,3,11 1,4,12 1,5,11 2,1,12 2,2,11 2,3,12 2,4,11 2,5,12 3,1,11 3,2,12 3,3,11 3,4,12 3,5,11)raidLevel=6 arrayUserLabel=\"unit${u}_array10\" userLabel=\"unit${u}_lun10\" segmentSize=128;'"
        echo $cmd
        #eval $cmd
        cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; create logicalDrive drives=(1,1,12 1,2,11 1,3,12 1,4,11 1,5,12 2,1,11 2,2,12 2,3,11 2,4,12 2,5,11 3,1,12 3,2,11 3,3,12 3,4,11 3,5,12)raidLevel=6 arrayUserLabel=\"unit${u}_array11\" userLabel=\"unit${u}_lun11\" segmentSize=128;'"  
        echo $cmd
        #eval $cmd
}       

LUN parameters setting

## lun mapping and configuration
for u in 01 02 03 04 05 06 07 08 09 10 11
{
        for l in 0 1 2 3 4 5 6 7 8 9 10 11
        {
                ## set lun configuration
                cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; set logicaldrive[\"unit${u}_lun${l}\"] redundancyCheckEnabled=true modificationPriority=highest  mediaScanEnabled=true preReadRedundancyCheck=true cacheWithoutBatteryEnabled=false mirrorEnabled=true writeCacheEnabled=true;'"
                echo $cmd
                #eval $cmd
        }
}

Setup host mapping(not suggest to use default group, setup your own)

## lun mapping and configuration
for u in 01 02 03 04 05 06 07 08 09 10 11
{
        for l in 0 1 2 3 4 5 6 7 8 9 10 11
        {
                ## set mapping
                cmd="/usr/bin/SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; set logicaldrive[\"unit${u}_lun${l}\"] LogicalUnitNumber=${l} hostGroup=defaultGroup;'"
                echo $cmd
                #eval $cmd
        }
}