Adding several vSphere 6.5 API examples
This commit is contained in:
68
Scripts/AutomaticVMFSUnmap.ps1
Executable file
68
Scripts/AutomaticVMFSUnmap.ps1
Executable file
@@ -0,0 +1,68 @@
|
||||
<#
|
||||
.SYNOPSIS Retrieve the current VMFS Unmap priority for VMFS 6 datastore
|
||||
.NOTES Author: William Lam
|
||||
.NOTES Site: www.virtuallyghetto.com
|
||||
.NOTES Reference: http://www.virtuallyghetto.com/2016/10/configure-new-automatic-space-reclamation-vmfs-unmap-using-vsphere-6-5-apis.html
|
||||
.PARAMETER Datastore
|
||||
VMFS 6 Datastore to enable or disable VMFS Unamp
|
||||
.EXAMPLE
|
||||
Get-Datastore "mini-local-datastore-hdd" | Get-VMFSUnmap
|
||||
#>
|
||||
|
||||
Function Get-VMFSUnmap {
|
||||
param(
|
||||
[Parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true)
|
||||
]
|
||||
[VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreImpl]$Datastore
|
||||
)
|
||||
|
||||
if($datastoreInfo -is [VMware.Vim.VmfsDatastoreInfo] -and $datastoreInfo.Vmfs.MajorVersion -eq 6) {
|
||||
$datastoreInfo.Vmfs | select Name, UnmapPriority, UnmapGranularity
|
||||
} else {
|
||||
Write-Host "Not a VMFS Datastore and/or VMFS version is not 6.0"
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.SYNOPSIS Configure the VMFS Unmap priority for VMFS 6 datastore
|
||||
.NOTES Author: William Lam
|
||||
.NOTES Site: www.virtuallyghetto.com
|
||||
.NOTES Reference: http://www.virtuallyghetto.com/2016/10/configure-new-automatic-space-reclamation-vmfs-unmap-using-vsphere-6-5-apis.html
|
||||
.PARAMETER Datastore
|
||||
VMFS 6 Datastore to enable or disable VMFS Unamp
|
||||
.EXAMPLE
|
||||
Get-Datastore "mini-local-datastore-hdd" | Set-VMFSUnmap -Enabled $true
|
||||
.EXAMPLE
|
||||
Get-Datastore "mini-local-datastore-hdd" | Set-VMFSUnmap -Enabled $false
|
||||
#>
|
||||
|
||||
Function Set-VMFSUnmap {
|
||||
param(
|
||||
[Parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true)
|
||||
]
|
||||
[VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreImpl]$Datastore,
|
||||
[String]$Enabled
|
||||
)
|
||||
|
||||
$vmhostView = ($Datastore | Get-VMHost).ExtensionData
|
||||
$storageSystem = Get-View $vmhostView.ConfigManager.StorageSystem
|
||||
|
||||
if($Enabled -eq $true) {
|
||||
$enableUNMAP = "low"
|
||||
$reconfigMessage = "Enabling Automatic VMFS Unmap for $Datastore"
|
||||
} else {
|
||||
$enableUNMAP = "none"
|
||||
$reconfigMessage = "Disabling Automatic VMFS Unmap for $Datastore"
|
||||
}
|
||||
|
||||
$uuid = $datastore.ExtensionData.Info.Vmfs.Uuid
|
||||
|
||||
Write-Host "$reconfigMessage ..."
|
||||
$storageSystem.UpdateVmfsUnmapPriority($uuid,$enableUNMAP)
|
||||
}
|
||||
Reference in New Issue
Block a user