Every time I release a tool or write a blog post there is a voice in the back of my head saying, “Dude, no one is going to like this”. I think this is the first time that voice never said a word. From the beginning it was more of a question of how to make this work the way I wanted. And when I started to be able to play with it myself, I was blown away with how lucky I got in the final product.
I am not saying this was easy. Lost sleep, a good portion of my twitter feed, and calluses on my finger-tips are all symptoms of me trying to get this bad-boy out. I have been working in a new capacity in the vSpecialist team and working on some secret sauce for some of our bigger customers. As part of that work I realized I could reuse some of the code I was creating to fill a gap.
So after two weeks of late-night and weekend work I excited to present UBERShell: Powershell cmdlets for managing EMC Celerra storage.
This Powershell Snapin is written from the ground up to be as easy and extendible as possible. From the beginning I didn’t know if I could pull this off and I must say as it started to come to fruition I started to get really excited with the results. I went a different direction that some integrations with the Celerra have gone and I opted to do 100% of the code myself instead of borrowing from other libraries.
Here are some of the cool features:
- Easy install for x86 or x64 Powershell. Just install the version you want. Open the Powershell or PowerCLI (x86 or x64) command window and type “Add-PSnapin UBERShell”. This includes the PowerCLI command window.
- The workstation/server running UBERShell just needs HTTPS access to Unisphere. No extra ports or heavy connections. Everything is lightweight secure calls through HTTPS.
- Every component is object based(no flat strings). This means wide-open possibilities for you Powershell-maniacs.
- Right now there are cmdlets for Datamover, Storage Pool, Filesystem, Mounts, NFS Exports, ISCSI Luns/Masks/Service/Targets, Checkpoints, and DHSM.
- Login is preserved in a session and you can change Celerra systems mid-script.
- All command calls are tuned giving very quick responses even on the Celerra UBER VSA.
- 100% compatible with the Celerra UBER VSA.
- You can combine with VMware’s PowerCLI to provision storage to vSphere environments all in automated scripts.
And here are a list of Cmdlets:
- Connect-Celerra : Connects to a Celerra system and caches login in the Powershell session.
- Create-Export : Creates an NFS Export on the supplied File System(s) and Datamover(s).
- Create-FilesystemUsingPool : Create a new File System on the supplied Storage Pool.
- Create-Interfaces : Creates new Interface with supplied Netwoprk Device and Datamover.
- Create-iSCSILUN : Creates an iSCSI LUN on the supplied Target and Datamover.
- Create-iSCSITarget : Creates an iSCSI Target on the supplied Datamover(s).
- Create-Mount : Mounts supplied File System on the supplied Datamover(s).
- Delete-Export : Deletes the supplied NFS Export (requires confirmation).
- Delete-Filesystem : Delete the supplied File System from the Celerra (requires confirmation).
- Delete-Interfaces : Deletes existing supplied Interface from Datamover(requires confirmation).
- Delete-iSCSILUN : Deletes an iSCSI LUN on the supplied Target and Datamover(requires confirmation).
- Delete-iSCSITarget : Deletes an iSCSI Target on the supplied Datamover(s)(requires confirmation).
- Delete-Mount : Unmounts supplied File System on the supplied Datamover(s).
- Get-CelerraInfo : Retrieve information on currently connected Celerra.
- Get-Checkpoint : Retrieve list of Checkpoints for supplied File System(s).
- Get-DataMovers : Retrieve list of Datamovers for connected Celerra Storage System.
- Get-Export : Retrieve list of Exports for supplied File System(s).
- Get-FileSystem : Retrives list of File Systems. Use the ‘-ShowRoot’ for root/system file systems.
- Get-Interfaces : Gets a list of Interfaces on supplied Datamover(s).
- Get-Interfaces : Retrieve list of Network Interfaces for supplied Datamover(s).
- Get-iSCSIISNSInfo : Retrieve information on iSCSI/ISNS for supplied Datamover(s).
- Get-iSCSILUNs : Retrieve list of iSCSI LUNs for supplied Datamover(s).
- Get-iSCSIMasks : Retrieve list of iSCSI Masks for supplied Datamover(s).
- Get-iSCSIServiceInfo : Retrieve information on iSCSI Service for supplied Datamover(s).
- Get-iSCSITargets : Retrieve list of iSCSI Targets for supplied Datamover(s).
- Get-Mount : Retrieve list of Mounts for supplied Datamover(s).
- Get-NetworkDevices : Gets a list of physical Datamover Network Devices on supplied Datamover(s).
- Get-UBERShellCommands : Show this list.
- Get-UBERShellHelp : Information on the UBERShell Powershell Snapin.
- Get-UBERShellInfo : Open community support websites for UBERShell.
- Set-iSCSIMaskClearInitiator : Clears Initiator from mask lists.
- Set-iSCSIMaskDeny : Removes access for Initiator on supplied LUN(s).
- Set-iSCSIMaskGrant : Grants access for Initiator on supplied LUN(s).
- Set-MountOptions : Allows changes to Mount options on supplied Mount(s).
- Start-iSCSIService : Starts the iSCSI Service on the supplied Datamover(s).
- Stop-iSCSIService : Stops the iSCSI Service on the supplied Datamover(s).
Without a doubt I think this is my favorite tool that I have been lucky enough to create. I had so much fun playing with it while I was writing it. It is crazy how fast you can create/modify/delete(with confirmation) configurations using this.
Below I have a couple videos demonstrating the UBERShell. Watch them to get an introduction to how UBERShell works.
You can download UBERShell from here:
If you have comments or questions drop them below. Or hit the EMC Community site.
I hope this helps some peeps looking to accelerate their EMC Journey