Start a Conversation

Unsolved

This post is more than 5 years old

1334

March 28th, 2011 07:00

How to Identify TDATA Devices for thin Pool

Hi,

We have new VMAX and we want to use the thin Pool. I would like to know when we create data devices for thin pool and add them. I want to know what details of the data devices will show that each Data device is from different physical Disk so that I will select data devices from diferent pysical devices for performance.

Is there any way we can identify the device numbers and tell that these are from diferent spindles.

Thanks

Gouda.

27 Posts

March 28th, 2011 12:00

to list the Tdats...

#symdev list -datadev

then show the detail for each device...

#symdev show

1 Rookie

 • 

20.4K Posts

March 28th, 2011 12:00

you create data devices (TDAT) from regular disk groups so if you want to see which physical drives a partuclar TDAT resides on you can run :

symdev show -sid 0BAD

20 Posts

March 28th, 2011 14:00

thank you.

15 Posts

March 28th, 2011 14:00

If possible I would recommend having a vmax disk group dedicated to a  particular virtual pool.  If you create a ton of small pools you lose  alot of the benifit of having those pools in the first place.  It's okay  for your pool to contain datadevs from the same spindles.  There are  alot of best practices with allocating datadevs, and almost all of them  can be solved by having large "Disk groups" filled with large datadevs.

e.g.

Disk_Group 1 - 3+1 EFDs - All datadevs assinged to pool1

Disk_Group 2 - Raid 10 FC drives - All datadevs assigned to pool2

Disk_Group 3 - Raid 5 SATA - All datadevs assigned to pool3

(btw naming your pools like above is a crime in most countries)

But if you REALLY care that much then yes you can identify which tdats are on which spindles it just takes some creative programming..  I threw this together in perl, you'll have to write your own command line parsing and sub routing passing....


$SYMDISK="/path/to/symdisk";

sub getSymDisks() {
        ## Runs a symdisk list -v for an array, throws all lines for a disk into a parsing subroutine
    ## Pass this function your arrayname and serial

    my ($myarray,$myserial)=@_; ## Pass in your array name and serial number

    clearExistsFlag($myarray,"array_disks","disk_lun_exists");

    my $runme="$SYMDISK -sid $myserial list -v 2>&1";

    my @results=`$runme`;

    my @thisdisk=();

    my $firstdisk=1;

    print "## Auditing disk info for $myarray\n";

    foreach (@results) {

        if(/^\s*Director\s*:/) {

            ## First line of a new disk

            if($firstdisk) {

                ## We found a new disk throw the last disk to parse

                parseSymDisk($myarray,@thisdisk);

                undef(@thisdisk);

                }

            else { $firstdisk=0; }

            push (@thisdisk,$_);

            }

        else { push(@thisdisk,$_); }

        }

    ## Throw the last disk we found for parsing

    parseSymDisk($myarray,@thisdisk);

    undef(@thisdisk);   
    }

sub parseSymDisk() {
    ## Parses the symdisk lines and looks for fun and interesting stuff
    ## Takes arguments arrayname and an array with symdisk output

    my ($myarray,@mysymdisklines) = @_;

    my $dik_group="";my $disk_size = 0;my $disk_speed=0;my $disk_group=none;

    my $director_name="";my $interface_name="";my $tid_name="";

    foreach (@mysymdisklines) {

        if(/^\s*Director\s*:\sDF\-(\w*)/) { $director_name = $1; }

        if(/^\s*Interface\s*:\s(\w*)/) { $interface_name = $1; }

        if(/^\s*Target ID\s*:\s(\w*)/) { $tid_name = $1; }

        if(/^\s*Disk Group Name\s*:\s(\w*)/) { $disk_group = $1; }

        if(/^\s*Speed \(RPM\)\s*:\s(\w*)/) { $disk_speed = $1; }

        if(/^\s*Total Disk Capacity \(MB\)\s*:\s(\w*)/) { $disk_size = $1; }

        if(/^.{27}\s(\w\w\w\w)\s(\S*)\s*\d\s.{13}\s*(\d*)/) {
            ## This saves each hyper as $1 it's Raid type as $2 and it's size as $3
            ## prints out comma separated info
            ## disk,disk_group,speed,disk size, device ID, raid level, device size
    print "$director_name$interface_name:$tid_name,$disk_group,$disk_speed,$disk_size,$1,$2,$3";
            }

        }

    }

(I wrote it in notepad only to find out you cant paste code in here, so feel free to change to your own formatting).

1 Rookie

 • 

20.4K Posts

March 28th, 2011 14:00

not that i know off, you might have to write a script to automate that.

20 Posts

March 28th, 2011 14:00

Thanks you very Much for your extended reply on this, I will take look at this.

27 Posts

March 28th, 2011 14:00

If you can identify the various disk groups, you can reduce things down further.

#symdev list -datadev -disk_group

20 Posts

March 28th, 2011 14:00

Hi,

I would agree with your answer. If I have lot of Data Device, I would end up in spending lot of time in show command.

Is there anyway that I can say that the Device list i can identify them from diferent spindles.

Thanks

Gouda

1.3K Posts

April 28th, 2011 19:00

symdisk -sid xxx show 12d,d,11  if you know the spindle and get the LUN

No Events found!

Top