Sergey Nivens - Fotolia
Useful PowerCLI cmdlets for managing hard disks
Users can more easily manage a VM's hard disk with a few common PowerCLI cmdlets. PowerCLI enables users to create, modify, move and remove disks so as to automate complex tasks.
With PowerCLI, admins can manage and automate many different facets of vSphere. Just a few cmdlets enable VMware admins to create, modify, move and remove disks.
The advantage VMware provides with PowerCLI is the ability to automate complex tasks without spending time in a GUI. But, before admins incorporate PowerCLI into their arsenal of tools, they must understand the different cmdlets that are used for this automation.
Viewing hard disks
Admins can use a number of methods to display information regarding vSphere hard disks, but the Get-HardDisk cmdlet provides insightful data, such as datastore, capacity, connection state and location.
To view all attached hard disks for a particular VM, an admin can use the following commands:
PS /Users/dan/ > Get-HardDisk -VM Test-VM | Select-Object Name,StorageFormat,Persistence,Filename,CapacityGB
Name : Hard disk 1
StorageFormat : Thin
Persistence : Persistent
Filename : [Test-1] Test-VM_1/Test-VM_3.vmdk
CapacityGB : 110
Name : Hard disk 2
StorageFormat : Thin
Persistence : Persistent
Filename : [Test-1] Test-VM_1/Test-VM_1_1.vmdk
CapacityGB : 1843
Admins can pipe the output to Select-Object, which enables them to see whatever property they wish to single out. Admins can also show disks for all VMs in a cluster by using the Get-Cluster cmdlet:
PS /Users/dan> Get-HardDisk -VM (Get-Cluster -Name 'Cluster' | Get-VM) | Select Parent,CapacityGB | Sort-Object -Property Parent
Parent CapacityGB
------ ----------
test 40
test-2 110
test-3 1843
test-4 380
test-5 1536
Creating hard disks
To create new hard disks from scratch, admins can use the New-HardDisk cmdlet. If admins want to create a new disk with 5 GB capacity on the VM Test-1, for example, they should also specify what datastore the disk should reside on, which is Test-1.
PS /Users/dan> New-HardDisk -VM Test-VM -CapacityGB 5 -DataStore Test-1
CapacityGB Persistence Filename
---------- ----------- --------
5.000 Persistent [Test-1] Test-VM_1/Test-VM.vmdk
Modifying hard disks
To modify an existing hard disk, admins should use the cmdlet Set-HardDisk. This cmdlet enables admins to modify such factors as the datastore a disk resides on, a disk's capacity and whether to inflate or zero out a disk.
Admins can use Set-HardDisk to increase a disk's capacity to 10 GB, for example:
PS /Users/dan> Get-HardDisk -VM Test-VM -Name 'Hard disk 3' | Set-HardDisk -CapacityGB 10
Confirm
Are you sure you want to perform this action?
Performing the operation "Setting CapacityGB: 10." on target "Hard disk 3".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): a
CapacityGB Persistence Filename
---------- ----------- --------
10.000 Persistent [Test-1] Test-VM_1/Test-VM.vmdk
Storage vMotion
These useful PowerCLI cmdlets enable admins to perform a storage VMotion migration to a separate datastore for a particular disk. Admins can also move many disks to different datastores at once. Admins can use the following command to move, for example, Hard disk 3 to the datastore Test-2:
PS /Users/dan> Get-HardDisk -VM Test-VM -Name 'Hard disk 3' | Move-HardDisk -Datastore 'Test-2'
Admins can even move all hard disks for a specified VM:
PS /Users/dan> Get-HardDisk -VM Test-VM | Move-HardDisk -Datastore 'Test-2'
Removing hard disks
When VMs stop being useful, admins might want to remove that data. Admins can remove hard disks by including the -DeletePermanently parameter when eliminating a VM with Remove-VM:
PS /Users/dan> Remove-VM -VM Test-VM -DeletePermanently
Admins can also use the Remove-HardDisk cmdlet. For example, an admin can remove all hard disks for the VM Test-VM:
Get-HardDisk -VM Test-VM | Remove-HardDisk