Mac OS X,  VMware,  Xsan

Scripting Compellent

As with EMC, Compellent allows you to manage servers, volumes, server folders, volume folders, views, and of course mappings programatically. This provides the automation minded engineer with a full-on suite for managing their Compellent-based SAN. All of this is made possible using CompCU.jar. I keep a scripts folder and keep the jar file there, which can initially be downloaded from the Compellent site. Unlike a traditional shell script the scripts are to be placed into a text file and replayed against the SAN.

If you are using VMware or Xen then you can combine the automation in Compellent along with the automation available with the command line interface for those solutions to accomplish some pretty nifty tasks. Simply call up the CompCU.jar inside shell scripts (or powershell scripts) doing automation in VMware to automatically duplicate LUNs and therefore virtual machines. Useful in lab environments and a number of other scenarios, CompCU.jar provides a nice environment and it’s pretty straight forward to use if you understand the underlying architecture that Compellent uses. For example, the following would run the commands listed in the file called myfile in sequence:
java -jar /scripts/CompCU.jar -s /scripts/myfile

  • c: run command
  • create x:Creates a LUN of -name
  • -s replay x:Runs verb against the Compellent of x type
  • createview: Verb used to create a view based on a replays
  • force: force event to occur
  • host: define
  • last: Repeats the last replay
  • move: Moves mapped views
  • name: Names a LUN
  • password: password to be used when user option is indicated
  • purge: Delete items from your Recycle Bin
  • readcache True/False: enables or disables readcache on a LUN
  • server x: x indicates the name or address of the server you are running your verb against
  • size x: indicates the size of a LUN
  • user: user to perform action as
  • view x: name views
  • viewexpire x: x sets the expiry for your views
  • volume x: identifies the volume to use with the verb
  • writecache True/False: enables or disables writecache on a LUN

One thing I’ve been doing is automating the creation of a volume, mounting it, backing up to it, unmounting it, vaulting it and then after an expiry time, deleting the volume. Without using CompCU.jar I’m not really sure it would have been possible! Although, Compellent also has a PowerShell command set that offers up even more granularity and can help keep you from having to send data into a text file for the command to run in java while offering more functionality in less commands. I am finding it a little more complicated to use so I just haven’t played with using PowerShell with it much, but will get back once I get around to it – but if you have any good commands feel free to post in the comments…