Datastore SIOC Statistics Collection Functions
Created two functions to monitor and manage the SIOC statistic collection of a datastore
This commit is contained in:
108
Scripts/DatastoreSIOCStatistics.ps1
Normal file
108
Scripts/DatastoreSIOCStatistics.ps1
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
function Get-DatastoreSIOCStatCollection {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Gathers information on the status of SIOC statistics collection for a datastore
|
||||||
|
.DESCRIPTION
|
||||||
|
Will provide the status on a datastore's SIOC statistics collection
|
||||||
|
.NOTES
|
||||||
|
Author: Kyle Ruddy, @kmruddy, thatcouldbeaproblem.com
|
||||||
|
.PARAMETER Datastore
|
||||||
|
Datastore to be ran against
|
||||||
|
.EXAMPLE
|
||||||
|
Get-DatastoreSIOCStatCollection -Datastore ExampleDatastore
|
||||||
|
Retreives the status of SIOC statistics collection for the provided datastore
|
||||||
|
#>
|
||||||
|
[CmdletBinding()]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)]
|
||||||
|
$Datastore
|
||||||
|
)
|
||||||
|
|
||||||
|
Process {
|
||||||
|
|
||||||
|
#Collect information about the desired datastore/s and verify existance
|
||||||
|
$ds = Get-Datastore $datastore -warningaction silentlycontinue -erroraction silentlycontinue
|
||||||
|
if (!$ds) {Write-Warning -Message "No Datastore found"}
|
||||||
|
else {
|
||||||
|
|
||||||
|
$report = @()
|
||||||
|
|
||||||
|
#Loops through each datastore provided and feeds back information about the SIOC Statistics Collection status
|
||||||
|
foreach ($item in $ds) {
|
||||||
|
|
||||||
|
$tempitem = "" | select Name,SIOCStatCollection
|
||||||
|
$tempitem.Name = $item.Name
|
||||||
|
$tempitem.SIOCStatCollection = $item.ExtensionData.IormConfiguration.statsCollectionEnabled
|
||||||
|
$report += $tempitem
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Returns the output to the user
|
||||||
|
return $report
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Set-DatastoreSIOCStatCollection {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Configures the status of SIOC statistics collection for a datastore
|
||||||
|
.DESCRIPTION
|
||||||
|
Will modify the status on a datastore's SIOC statistics collection
|
||||||
|
.NOTES
|
||||||
|
Author: Kyle Ruddy, @kmruddy, thatcouldbeaproblem.com
|
||||||
|
.PARAMETER Datastore
|
||||||
|
Datastore to be ran against
|
||||||
|
.EXAMPLE
|
||||||
|
Set-DatastoreSIOCStatCollection -Datastore ExampleDatastore -Enable $true
|
||||||
|
Enables SIOC statistics collection for the provided datastore
|
||||||
|
#>
|
||||||
|
[CmdletBinding(SupportsShouldProcess)]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true,Position=0,ValueFromPipelineByPropertyName=$true)]
|
||||||
|
$Datastore,
|
||||||
|
[Switch]$Enable,
|
||||||
|
[Switch]$Disable
|
||||||
|
)
|
||||||
|
|
||||||
|
Process {
|
||||||
|
|
||||||
|
#Collect information about the desired datastore/s and verify existance
|
||||||
|
$ds = Get-Datastore $datastore -warningaction silentlycontinue -erroraction silentlycontinue
|
||||||
|
if (!$ds) {Write-Warning -Message "No Datastore found"}
|
||||||
|
else {
|
||||||
|
|
||||||
|
$report = @()
|
||||||
|
|
||||||
|
#Loops through each datastore provided and modifies the SIOC Statistics Collection status
|
||||||
|
foreach ($dsobj in $ds) {
|
||||||
|
|
||||||
|
$_this = Get-View -id 'StorageResourceManager-StorageResourceManager'
|
||||||
|
$spec = New-Object vmware.vim.storageiormconfigspec
|
||||||
|
|
||||||
|
if ($Enable) {
|
||||||
|
|
||||||
|
$spec.statsCollectionEnabled = $true
|
||||||
|
|
||||||
|
} elseif ($Disable) {
|
||||||
|
|
||||||
|
$spec.statsCollectionEnabled = $false
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$_this.ConfigureDatastoreIORM_Task($dsobj.ExtensionData.MoRef,$spec) | out-null
|
||||||
|
start-sleep -s 1
|
||||||
|
$report += Get-View -Id $dsobj.ExtensionData.MoRef -Property Name,Iormconfiguration.statsCollectionEnabled | select Name,@{N='SIOCStatCollection';E={$_.Iormconfiguration.statsCollectionEnabled}}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Returns the output to the user
|
||||||
|
return $report
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user