Introduction to EMC´s ESIPSTOOLKIT, the hidden Weapon for your Private Cloud Deployment
By Karsten Bott, EMC Germany

One of a more hidden secret to many of our Users / Customers is the Power of EMC´s ESI PowerShell Toolkit.
For those of you who do not know ESI, here is a Brief Overview of ESI:
ESI for Windows provides capabilities for viewing and provisioning storage. ESI helps IT Administrators by Simplifying Storage Provisioning by
- Displaying Storage Mapping of Windows disk resources.
- simplifying the various steps involved in creating and preparing a LUN, including the steps of partitioning, formatting, and creating a drive letter
- creating a file share and mount that file share as a network-attached drive in a Windows environment
- Create Virtual Disks ( VHD´s, VMDK´s )
- Map raw Devices into VM´s
You can find an ESI Overview Video on YouTube
But ESI comes with much more Power.
ESI includes a set of PowerShell cmdlets known as ESIPSToolKit to provision storage from the command line. The cmdlets are written for the PowerShell 2.0 Platform. They are implemented on according Microsoft´s verb/noun Convention and always start with EMC in the noun. So you will find all cmdlets form various Modules by simply typing Get-Command -Noun EMC*.
Important to mention, we work Agentless, utilizing Windows Standards like WMI and PowerShell Remoting
The PowerShell toolkit provides cmdlets to manage:
- Connections to host and storage systems and to provision Block storage.
- Disk devices in hypervisor environments, such as VMware vSphere, Microsoft Hyper-V, and Citrix XenServer.
- Block device snapshots for EMC Symmetrix VMAX® storage family, EMC VNX® Series, EMC VNXe® series, and EMC CLARiiON®CX4 series of storage systems.
These cmdlets are Helping Customers in their Windows Management Automation on the Way to the Private Cloud.
The Toolkit has a Broad List of Commands and is still growing from Version to Version
A Basic Provisioning Process might look like
| Provisioning Task | Traditional Step | ESIPSToolKit Example |
| Identify Storage System | Use Element Manager / Storage CLI Tool | $MyStorage = Get-EmcStorageSystem VNXe |
| Identify Pool | Use Element Manager / Storage CLI Tool | $MyPool = Get-EmcStoragePool performance -StorageSystem $MyStorage -PoolType Block |
| Identify Cluster System | Cluster.Exe / MMC | $MyClus = Get-EmcClusterSystem W2K* |
| Create Lun in Pool | Use Element Manager / Storage CLI Tool ( Multiple Steps ) | $MyLun = New-EmcLun -Pool $MyPool -Name mylun_test_1 -Capacity 10GB -Silent –Thin |
| Unmask Luns to Cluster Hosts | Use Element Manager / Storage CLI Tool ( Multiple Steps ) | Set-EmcLunAccess -Lun $MyLun -ClusterSystem $MyClus -Available |
| Find Drive on Host | Diskpart, Array Commandline Tools, INQ Command | $MyDrive = Find-EmcHostDisk -ClusterSystem $MyClus -Lun $MyLun |
| Initialize Drive | Diskpart, Diskmgmt or other Host Tool | Initialize-EmcHostDisk -HostDisk $MyDrive -ClusterSystem $MyClus -PartitionStyle gpt |
| Create and Format Volume | Diskpart, Diskmgmt or other Host Tool | New-EmcVolume -ClusterSystem $MyClus -HostDisk $MyDrive -Label CluDis1 |
| Add Volume to Cluster Group | Cluster.exe, Cluster MMC | $MyCluDisk = Add-EmcHostDiskToCluster -ClusterSystem $MyClus -HostDisk $MyDrive -ClusterGroupName AvailableStorage |
You Might want to use our Toolkit in your Orchestrating Tools (aka SCO, VMO) to Automate most of your Provisioning Tasks in your Private Cloud Deployment
You will find some Examples of what you can do with ESIPSToolKit on ECN.
If you find that helpful, you may want to follow me on https://twitter.com/ESIPSToolKit for frequent updates
You also can Contact me on ECN https://community.emc.com/people/bottkars .
Thanks to Giri, Sanjay, Ataa and everyone in the ESI Team !

