This information is not exposed using PowerShell. I got around the issue by using querying the Data Collector database directly and parsing out one of the fields that holds this information. Also, this information is not live data, it's a snapshot of a single point in time.
The table that holds the volume information is [compmsadb].[compmsauser].[StorageVolume]. There are a couple of columns that hold the tier information for each volume. I *** now that I had wrote an SSIS package to parse out the columns for me, as they are not in any nice format. I will try and find this for you and give you the script code I used to extract the information.
The columns that hold the information are called [ClassWritableArray] and [ClassHistoricalArray]. If I remember correctly, these are the number of blocks assigned to each tier type at the time the statistics were collected. Most Compellent SANs are configured with a default 2MB block size.
While I know my page size is 2MB I'm unable to see a pattern in the above values to the tier allocation for the volume. I look forward to seeing the code sample you mentioned as i'm missing something.
You've misunderstood what we are trying to do here. We are looking for a way to programmatically (ideally with PowerShell) see the tier distribution of a volume. In EM this can be seen on at Storage >
I took a long look at the DellStoragePowerShellSDK_v2_0_1_327B that was released with EM 2015 and am pleased to report the 'Get-DellScVolumeConfigurationStorageTypeClassDistributionListAssociation' cmdlet (and possibly the longest named cmdlet I've seen!) outputs the distribution of volume space across storage type classes. This also provides live data where the sql table only seem to be updated daily.
I was able to find my original SQL Integration Services package which I used to pull the data from the DC database. The package is make up of a single "Data Flow" task with the following 3 objects. OLE DB source pointing to the DC database (see T-SQL below as the source). A "Script Component" to parse the array columns to calculate the tier usage) and a "Flat file" destination that writes the output to a CSV file.
Source: Pulls the last entry (run daily)
******** T-SQL STARTS HERE *********
SELECT SystemSN, TimeStmp, Name, ClassWritableArray, ClassHistoricalArray from compmsadb.compmsauser.StorageVolume
WHERE SystemSN = ' ' AND DATEDIFF(day, TimeStmp, GETDATE()) < 1
ORDER BY SystemSN, Name
********* T-SQL ENDS HERE **********
Script Component "ScriptMain". You will need to add output columns named within the OutputBuffer. I also only pull the tiers and classes we have configured on the SAN. You may need to adjust these to match your configuration.
******** ScriptMain START HERE *********
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim SystemSN As Integer = Row.SystemSN
Dim TimeStamp As Date = Row.TimeStmp
Dim Name As String = Row.Name
Dim ClassWritableArray As String = Row.ClassWritableArray
Dim ClassHistoricalArray As String = Row.ClassHistoricalArray
Dim delimiter As String = " "
If Not (String.IsNullOrEmpty(ClassWritableArray)) Then
After looking at the code above, the array is actually the MB used, not the number of blocks. The active space is a calculation of the active column minus the history column, and the "replays" are the history column. As a side note, the position in the array for the different classes of storage are the same if you have single or double redundancy configured on a tier (e.g Tier 3 RAID 5-9 standard is the same as Tier 3 RAID 6-10 standard, array position 18). We don't have any RAID 5-5 configured, so I'm not sure what positions they would be.
Now that Dell has released the new SDK, this SSIS package is now a little dated. I will probably look at moving towards using the SDK myself.
jfrmilner
12 Posts
2009
0
Posted March 3rd, 2015 03:00
+1. I'm also trying to find this information without success.