SUMMARY 2: recognizing iostat disk names

From: Mariel Feder (mfeder@central.meralco.com.ph)
Date: Tue Mar 10 1998 - 18:08:44 CST


After posting my summary, I've received some usefull new answers
that I wanted to include here also:

1- Casper Dik says that under solaris the iostat command displays
the c*t*d* as the device name, instead of sd*.
That's really great, but for now I am stuck with Solaris 2.5.1

2- Casper Dik and Rick Reineman, suggested to use
SE toolkit, downloadable from
http://www.sun.com/sun-on-net/performance/se3/
and Rick pointed that after that I have to run:
/opt/RICHPse/examples/disks.se
I've just downloaded the files, and I am going to test it.

3- Gert Marais sent me a script to automatize the looking I did
manually under
/dev/osa/....
David Thournbour and Alun P Gwinne als0 suggested to use scripts
for this

Thanks to all of you for your replies
Mariel

ORIGINAL QUESTION:

> Hello managers!!!
>
> Probably this is very simple, but not for me.
>
> I have an E6000 with a lot of internal disks and an external
> raid array.
>
> I use Disksuite to manage the internal disks and create
> virtual disks.
> I use Raid Manager to do the same with the external raid
> array.
>
> I want to use iostat to check if any of the disks is overloaded.
>
> How do I know to which disks each line of the output
> of iostat refers to:
>
> iostat -txc 5
> extended disk statistics
> tty cpu
> disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b tin tout us

> sy wt id
> md0 0.0 0.1 0.1 1.8 0.0 0.0 222.2 0 0 1 253 1

> 2 25 73
> md1 0.2 1.2 2.2 10.9 0.0 0.0 36.1 0 1
> md2 0.0 0.0 0.0 0.0 0.0 0.0 33.1 0 0
> sd0 0.1 2.5 0.7 15.7 0.0 0.3 116.9 0 3
> sd1 1.2 0.1 35.0 0.8 0.0 0.0 9.1 0 1
> sd2 0.0 0.1 0.1 1.5 0.0 0.0 175.6 0 0
> sd30 0.0 0.0 0.0 0.0 0.0 0.0 5.5 0 0
> sd31 0.0 0.0 0.0 0.3 0.0 0.0 324.7 0 0
> sd32 0.2 1.2 2.2 10.9 0.0 0.0 36.0 0 1
> sd33 0.0 0.0 0.0 0.0 0.0 0.0 8.6 0 0
> sd34 0.0 0.0 0.0 0.0 0.0 0.0 25.9 0 0
> sd35 0.0 0.0 0.0 0.0 0.0 0.0 1.9 0 0
> sd36 0.0 0.0 0.0 0.0 0.0 0.0 1.3 0 0
> sd51 0.0 0.0 0.0 0.0 0.0 0.0 6.7 0 0
> sd325 18.4 0.2 587.3 1.7 0.0 0.1 4.0 0 7
> sd370 0.0 0.2 0.2 1.5 0.0 0.0 4.6 0 0
> sd371 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
> sd372 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
> sd373 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
> sd374 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0 0
> sd388 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
> sd427 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
> sd428 0.1 0.1 1.7 0.6 0.0 0.0 4.9 0 0
> sd429 18.2 0.1 582.0 0.9 0.0 0.1 3.7 0 7
> sd430 22.4 0.0 715.3 0.0 0.0 0.1 3.9 0 9
> sd431 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
>

ANSWER:

Sorry this is a long story, and kind of confusing.
The answer was not as simple as one could expect, and it took me a long
time and a lot of patience to browse /dev definitions to get to some
conclusions.
If someone knows a better or simpler way, please let me know.

1- For the disks managed normally, the answer is easy:

For each local disk, for example c0t0d0, try:

ls -l /dev | grep c0t0d0

and you will get something like:

lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3a ->
rdsk/c0t0d0s0
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3b ->
rdsk/c0t0d0s1
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3c ->
rdsk/c0t0d0s2
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3d ->
rdsk/c0t0d0s3
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3e ->
rdsk/c0t0d0s4
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3f ->
rdsk/c0t0d0s5
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3g ->
rdsk/c0t0d0s6
lrwxrwxrwx 1 root root 13 Sep 7 1997 rsd3h ->
rdsk/c0t0d0s7
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3a ->
dsk/c0t0d0s0
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3b ->
dsk/c0t0d0s1
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3c ->
dsk/c0t0d0s2
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3d ->
dsk/c0t0d0s3
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3e ->
dsk/c0t0d0s4
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3f ->
dsk/c0t0d0s5
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3g ->
dsk/c0t0d0s6
lrwxrwxrwx 1 root root 12 Sep 7 1997 sd3h ->
dsk/c0t0d0s7

Thus, it's easy to conclude that sd3 corresponds to c0t0d0.

The same with the rest of the local disks.

This will include also the local disks that are part of a disksuite
bigger
virtual disk, and you can see statistics of each of its components.

2- For a virtual disk managed by disksuite, if you want to see it
the components one by one, just do the same as in item 1.
If you want to see it as a whole, the output of iostat will show them
as md0 ..... which corresponds with the definitions of d0, d1 ...
you did under disksuite.
Thus, you only have to see the mount point for
/dev/md/dsk/d0 on /etc/vfstab, to see where the virtual disk is
mounted.

3- The real nice game started, when I got to the disks administered
with Raid Manager.
We have a RAID manager with 35 disks arranged into 6 virtual
big disks.

I can see them from the format command as follows:

       3. c1t4d2 <SYMBIOS-RSMArray2000-0204 cyl 17268 alt 2 hd 64 sec
64>
          /pseudo/rdnexus@1/rdriver@4,2
       4. c1t4d3 <SYMBIOS-RSMArray2000-0204 cyl 17268 alt 2 hd 64 sec
64>
          /pseudo/rdnexus@1/rdriver@4,3
       5. c1t4d4 <SYMBIOS-RSMArray2000-0204 cyl 21586 alt 2 hd 64 sec
64>
          /pseudo/rdnexus@1/rdriver@4,4
     13. c3t5d0 <SYMBIOS-RSMArray2000-0204 cyl 17268 alt 2 hd 64 sec 64>

          /pseudo/rdnexus@3/rdriver@5,0
      14. c3t5d1 <SYMBIOS-RSMArray2000-0204 cyl 17268 alt 2 hd 64 sec
64>
          /pseudo/rdnexus@3/rdriver@5,1
      15. c3t5d5 <SYMBIOS-RSMArray2000-0204 cyl 21586 alt 2 hd 64 sec
64>
          /pseudo/rdnexus@3/rdriver@5,5

Now, for each of this big disks, you have to look for it under
/dev/osa/dev/dsk.
For example, let's see disk nr. 3 c1t4d2:

ls -l /dev/osa/dev/dsk | grep c1t4d2

You get something like:

lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s0 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:a
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s1 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:b
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s2 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:c
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s3 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:d
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s4 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:e
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s5 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:f
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s6 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:g
lrwxrwxrwx 1 root root 48 Feb 17 18:19 c1t4d2s7 ->
../../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:h

>From here, you can asociate this disk to
../../device/sbus@6,0/QLGC,isp@2,10000/sd@4,2:*
which means /dev/osa/device/sbus@6,0/QLGC,isp@2,10000/sd@4,2:*

/dev/osa/devices is just a link to /devices
so from here, you can associate this disk (c1t4d2) with
/devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:*

And the last step:

ls -l /dev | grep /devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:

and you get:

lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428a ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:a,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428b ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:b,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428c ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:c,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428d ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:d,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428e ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:e,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428f ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:f,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428g ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:g,raw
lrwxrwxrwx 1 root root 49 Sep 11 15:26 rsd428h ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:h,raw
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428a ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:a
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428b ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:b
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428c ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:c
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428d ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:d
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428e ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:e
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428f ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:f
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428g ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:g
lrwxrwxrwx 1 root root 45 Sep 11 15:26 sd428h ->
../devices/sbus@6,0/QLGC,isp@2,10000/sd@4,2:h

>From there, you can conclude that the disk name for c1t4d2 is sd428.

Thus, you can get the iostatistics of the virtual disks created by the
raid manager.
You can't use iostat to monitor disk by disk in the array.

Hope this helps someone somewhere
Regards and thanks for your reply. They were helpful for almost all the
situations,
except for the disks in the RAID manager.

Mariel



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:33 CDT