alex_aldo - Fotolia
Manage a multitude of VMware datastores using PowerCLI
Discover how you can use PowerCLI to boost your storage by monitoring and managing VMware datastores across multiple hosts. This tool has many advantages over the typical GUI.
You can manage singular datastores in VMware vSphere through the vSphere Web Client, the HTML5 client or the GUI, but you might find PowerCLI more efficient when working with multiple hosts or datastores.
PowerCLI has many advantages over a traditional GUI in vSphere. For instance, you can quickly view VMware datastore information across many hosts with PowerCLI due to its automation capabilities, which are backed by PowerShell.
Get datastore information
You can directly access ESXi hosts with PowerCLI, but you can also connect to vCenter, which gives you access to any host associated with the vCenter instance you connect to. In addition, PowerCLI and PowerShell now work across platforms, so you can use PowerCLI on a Mac.
To start, connect to vCenter with Connect-ViServer:
Use the Get-Datastore command in PowerCLI to display datastore specifics. Piping this cmdlet to show all of the properties of a VMware datastore displays a lot of data, such as the IP, path, authentication and capacity information.
PowerCLI provides fast, instant reporting. Here, you can get a report on every datastore in your vCenter and choose the property's name, type, capacity and free space:
Add a datastore
Add a VMware datastore to ESXi hosts by using the New-Datastore cmdlet. You can see the available parameters by typing a dash and hitting the Tab key twice:
To add a Network File System datastore, specify the –Nfs switch in your cmdlet, along with the path and -nfshost parameters:
Modify a datastore
The Set-Datastore cmdlet enables you to modify a VMware datastore in multiple ways, such as renaming a datastore or putting the datastore into maintenance mode.
To rename a datastore, simply pipe the Get-Datastore cmdlet to Set-Datastore, and specify the new name via the –Name parameter:
You can also change multiple datastores at once. For example, you can take every datastore in your vCenter and set storage I/O to true:
Putting a datastore in maintenance mode and setting the parameter –EvacuateAutomatically will move all VMs located on the datastore to another datastore via vMotion. This means you can perform maintenance on multiple datastores in one action.
For example, you can take all of the datastores with the name starting with New_York by using a wildcard and pipe the output to Set-Datastore. This specifies that you want to put them in maintenance mode and evacuate the VMs.
Remove a datastore
You can easily remove datastores from ESXi hosts using Remove-Datastore. The parameters for Remove-Datastore are similar to the other cmdlets, as you have to specify the name of the datastore and the host to remove it from.
For example, you can remove the datastore Test-1 from host Testhost-1:
In a more complex scenario, you might remove the same datastore from any host starting with Test by using a ForEach loop in PowerCLI:
Because PowerCLI is built on PowerShell, its automation capabilities provide you with easy methods to accomplish many tasks instantaneously. In addition, PowerCLI provides you with valuable reporting and discovery abilities, especially for large virtual environments.