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

Do you know that 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 ?

Here I show some most useful command examples, for more detail, you can check the a reference book called 'Command Line Interface and Script Commands Programming Guide', describes all the commands.

Suppose you have your hardware installed and controller ips configured.

 

List controller summary

SMcli  <Ctrl-a-ip> <Ctrl-b-ip> -c "show controller [a] summary;"
Performing syntax check...

Syntax check complete.

Executing script...

Controller in Enclosure 1, Slot A
 

   Status:                       Online                        
                                                               
   Current configuration                                       
      Firmware version:          07.84.46.00                   
         Appware version:        07.84.46.00                   
         Bootware version:       07.84.46.00                   
      NVSRAM version:            N1818D37R0784V04              
   Pending configuration                                       
      Firmware version:          None                          
         Appware version:        None                          
         Bootware version:       None                          
      NVSRAM version:            None                          
      Transferred on:            None                          
   Model name:                   2680                          
   Board ID:                     2660               
...


subcommand "show allcontrollers" will list all controllers

List all Drives

SMcli <Ctrl-A-ip> <Ctrl-B-ip>  -c 'show AllDrives;'

Show logical Drives

SMcli <Ctrl-A-ip> <Ctrl-B-ip>  -c 'show AllDrives;'
or you can specify a particular logical drive
SMcli <Ctrl-A-ip> <Ctrl-B-ip> -c "show logicaldrive [unit01_lun1];"

Show logical drive action progress, for example rebuilding, copy back etc..

SMcli <Ctrl-A-ip> <Ctrl-B-ip>  -c "show logicaldrive [unit01_lun1] actionprogress;"

Show Storage Subsystem

SMcli <Ctrl-A-ip> <Ctrl-B-ip>  -c "show storagesubsystem;"

Show host mapping

Show all lun mappings

SMcli <Ctrl-A-ip> <Ctrl-B-ip>  -c "show storagesubsystem lunmappings;"

Show lun mappings by host or hostgroup

$SMcli <Ctrl-A-ip> <Ctrl-B-ip> -c 'show storagesubsystem lunmappings host ["hpool01"];'
Performing syntax check...

Syntax check complete.

Executing script...

MAPPINGS (Storage Partitioning - Enabled (2 of 128 used))-------------------

   Logical Drive Name    LUN  Controller  Accessible by            Logical Drive status  Logical Drive Capacity  Type      
   Access Logical Drive  31   A,B         Host Group hpoolgroup  Optimal                                       Access    
   unit01_lun4_1         0    A           Host Group hpoolgroup  Optimal               8,192.000 GB            Standard  
   unit01_lun4_2         1    B           Host Group hpoolgroup  Optimal               8,192.000 GB            Standard  
   unit01_lun4_3         2    A           Host Group hpoolgroup  Optimal               8,192.000 GB            Standard  
   unit01_lun4_4         3    B           Host Group hpoolgroup  Optimal               4,476.000 GB            Standard  
   unit01_lun4_5         4    A           Host Group hpoolgroup  Optimal               4,476.234 GB            Standard  

Save event log

SMcli <Ctrl-A-ip> <Ctrl-B-ip> 'save storageSubsystem allEvents file="/home/backup/allevent;'

 Create array and logic unit

SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password "<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;'"

Where

put your storage password into the double quote 
driver location [#enclosure,#drawer,#disk slot]
Segment size means stripe size

Create a hot spare disk

SMcli Ctrl-A-ip Ctrl-B-ip  -c 'use password \"\"; set drive[1,5,5] hotSpare=true;'"

Set other overall parameters, such as media scah, cache block size etc..

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;'

Reassign all logical drives to their preferred path

SMcli Ctrl-A-ip Ctrl-B-ip  -c 'reset storageSubsystem logicalDriveDistribution'

Show drive channel stats

Show one drive channel

SMcli  Ctrl-A-ip Ctrl-B-ip -c 'show drivechannel [channel] stats;'

Show multiple drive channels

SMcli  Ctrl-A-ip Ctrl-B-ip -c 'show drivechannel [channel,channel2,channel3] stats;'

Show all drive channels

SMcli  Ctrl-A-ip Ctrl-B-ip -c 'show alldrivechannels stats;'
Performing syntax check...

Syntax check complete.

Executing script...

DRIVE CHANNELS----------------------------

   SUMMARY


      CHANNEL  PORT                                                               STATUS   
      1        1,ESM A In 1,ESM A In 2,ESM A Out,ESM A In 1,ESM A In 2,ESM A Out  Optimal  
      2        2,ESM B In 1,ESM B In 2,ESM B Out,ESM B In 1,ESM B In 2,ESM B Out  Optimal  

   DETAILS

      DRIVE CHANNEL 1
...

 In case you are interested, I have another article shows the script to Using command line interface to setup DCS3700 and DCS3860

There are also some commands you can delete, destroy logical drives, fail physical drives. To be safe, I don't list them here, please refer the SMcli command line reference, or consult your vendor support.

For disk impending failure, see How to manage disk impending failure error

Also, quite often you want also collect support data either from GUI interface or cli command line, see How to collect support data IBM DS/DCS storage systems