Unsolved
1 Rookie
•
7 Posts
0
438
October 23rd, 2020 08:00
Compellent Statisics and statuses using PowerShell
Hello
I hope this thread is stil lalive and people are reading it
I was asked to create a simple Compellent status report and, actually, it's PowerShell is very good. Except...I can't figure out why I can't "refresh" data I get.
So, I am using Get-DellScDiskClassStorageUsage cmdlet. During the process of writing the script everything worked well. Now there were some changes (we deleted some volumes) I see that DSM's data refreshed, but PowerShell output remains the same.
Here is the code I was using for it:
# Import DellEMC PowerShell module
Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\DellStoragePowerShellSDK-5.2.0.4\DellStorage.ApiCommandSet.psd1
# Check connection. If state is NOT Connected - connect to the server
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$conn = Connect-DellApiConnection -HostName myDSMserver.com -User "viewer" -Password $password
$compellents = Get-DellScConfiguration -Connection $conn
.....
$array_disks_sizes = @()
foreach ($compellent in $compellents)
{
$info7K = Get-DellScDiskClassStorageUsage -Instance "$($compellent.ScSerialNumber).4" -Connection $conn
[math]::Round($info7K.TotalSpace.ByteSize /1TB, 2) #Total Space
[math]::Round($info7K.AllocatedSpace.ByteSize /1TB, 2) #Allocated Space
[math]::Round($info7K.SpareSpace.ByteSize /1TB, 2)
[math]::Round($info7K.FreeSpace.ByteSize /1TB, 2)
$free_percent_HDD = [math]::Round($info7K.FreeSpace.ByteSize / $info7K.TotalSpace.ByteSize * 100, 2)
$infoSSD = Get-DellScDiskClassStorageUsage -Instance "$($compellent.ScSerialNumber).10" -Connection $conn
[math]::Round($infoSSD.TotalSpace.ByteSize /1TB, 2) #Total Space
[math]::Round($infoSSD.AllocatedSpace.ByteSize /1TB, 2) #Allocated Space
[math]::Round($infoSSD.SpareSpace.ByteSize /1TB, 2)
[math]::Round($infoSSD.FreeSpace.ByteSize /1TB, 2)
$free_percent_SSD = [math]::Round($infoSSD.FreeSpace.ByteSize / $infoSSD.TotalSpace.ByteSize * 100, 2)
$record = New-Object -TypeName PSObject
$record | Add-Member -MemberType NoteProperty -Name "Compellent" -Value $($compellent.ScName)
$record | Add-Member -MemberType NoteProperty -Name "HDD Total Space, TB" -Value $([math]::Round($info7K.TotalSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "HDD Allocated Space, TB" -Value $([math]::Round($info7K.AllocatedSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "HDD Spare Space, TB" -Value $([math]::Round($info7K.SpareSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "HDD Free Space, TB" -Value $([math]::Round($info7K.FreeSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "HDD Free Space, %" -Value $free_percent_HDD
$record | Add-Member -MemberType NoteProperty -Name "SSD Total Space, TB" -Value $([math]::Round($infoSSD.TotalSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "SSD Allocated Space, TB" -Value $([math]::Round($infoSSD.AllocatedSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "SSD Spare Space, TB" -Value $([math]::Round($infoSSD.SpareSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "SSD Free Space, TB" -Value $([math]::Round($infoSSD.FreeSpace.ByteSize /1TB, 2))
$record | Add-Member -MemberType NoteProperty -Name "SSD Free Space, %" -Value $free_percent_SSD
if ($free_percent_HDD -lt 10)
{
$record | Add-Member -MemberType NoteProperty -Name "HDD Status" -Value "PROBLEM"
}
else
{
$record | Add-Member -MemberType NoteProperty -Name "HDD Status" -Value "OK"
}
if ($free_percent_SSD -lt 10)
{
$record | Add-Member -MemberType NoteProperty -Name "SSD Status" -Value "PROBLEM"
}
else
{
$record | Add-Member -MemberType NoteProperty -Name "SSD Status" -Value "OK"
}
$array_disks_sizes += $record
}