Accepted Solution

Counting the # of disks in an aggregate

I'm looking for a way to identify the number of disks in an aggregate and, if it's a flash-pool aggr, I want to be able to count the number of SSDs involved as well.  Is there a way to do this?

The goal is to figure out how many disks are in each aggr to assign them a possible "max ops" value to keep them from getting oversubscribed performance wise.

So I want to create something like:

aggr_name   flash_pool?  #_of_HDD     #_of_SDD     #_of_ops_actual     #_of_ops_possible

aggr1                n                   56               0                    2000                    7480

aggr2               y                    56          10                    4000                    31480

I hope the format above stays like it appears on my screen

At any rate, the closest I've come in identifying the number of disks in an aggregate is looking at the disk group member in the Inventory package, but the aggr name is enclosed within "filer name:/", followed by "/plexX/rgX' number(ex: filer1:/aggr1/plex1/rg0).  If this were a scripting language I'd just split by a delimiter;in this case I'd use "/", but I don't yet have enough Cognos-Fu to pull that off, and I'm not sure if that's the appropriate approach here.

Is there a simpler way to count the number of HDDs/SDDs in an aggregate(and know the type?  7200rpm, 10k, SDD)?



Re: Counting the # of disks in an aggregate

I hope someone else provides a more direct answer, because I'd like to be able to pull this right out of the database. 

In the meanwhile, I think you can get this done using some MySQL in a query expression.

substring_index(substring_index([Storage Assets].[Disk].[Disk Group],'/',2),'/',-1)

See attached for a quick report. 

Re: Counting the # of disks in an aggregate


Looks like it could do the trick from a SQL perspective.However, I don't know if that is exposed in the Cognos drag and drop model.

Worth knowing that on some storage platforms the disk to pool relationship is not 1:1 , it can be 1:many.

Re: Counting the # of disks in an aggregate

Thanks for that.  That's a part of OCI I haven't quite grasped.  I had used substring method outside of SQL/OCI before but I didn't quite know how to use it here.  Anyway, I was able to pull the numbers I needed together(somewhat).  I got the HDD count of aggrs.  I also got the SDD count for flashpool aggrs, but I can't seem to do an "Or" type of query when I join those two queries together.  I've got 9 aggrs and 2 of them are flash pool aggrs.  When I join the queries, The only output I get are the 2 aggrs with both types of disks.  I guess it makes sense in that the output is something that has data in all the data items, but this seems like an "AND" type of join.  I poked around with union and allowing outer-join but that didn't quite do the trick for me.   


Re: Counting the # of disks in an aggregate

If you'd like to get something like

StorageAggregateSSD countHDD count

then you will probably want to use a full outer join.  When you set up the join, include zero's in your cardinality. 

If you're doing this in SQL and not at the Cognos layer, add "outer" to your join statement. 

Re: Counting the # of disks in an aggregate

You know you're awesome.  It got me exactly what I was looking for.