01 November 2010

Logical Disk Names In Solaris

Anyone familiar with Solaris instantly recognizes c1t3d0s4 and that
it identifies slice 4 on disk c1t3d0.  That's great, but what does the
rest mean.  On other UNIX OSes, you might get sdb3 or da2s1a to identify
a disk slice / partition and have to use a variety of means to determine
how it connects to the system.  Alternatively, Solaris provides a logical
disk name to easily identify the disk.  Using the above example:

                c1 => logical controller 1
                t3 => physical bus target 3
                d0 => disk 0
                s4 => slice 4

So, slice 4 on disk 0 of bus target 3 on controller 1.  This is a
disk with a bus oriented controller and can be seen on both sparc and
x86 hosts.  Since we mention x86 hosts, we can also have:

                c1 => logical controller 1
                t3 => physical bus target 3
                d0 => disk 0
                p0 => fdisk partition 0

Solaris also identifies disks with direct controllers (like IDE disks
on x86 hosts) by effectively eliminating the target:

                c2 => logical controller 2
                d0 => disk 0
                s5 => slice 5

Again with x86 hosts, for direct controllers we also have:

                c2 => logical controller 2
                d0 => disk 0
                p1 => fdisk partition 1

Of note, the controller ID on x86 hosts is assigned during system
initialization.  Because of how the x86 architecture functions, controller
IDs are only logical IDs and do not necessarily map directly to a physical
controller of the same ID.

As a final example, you can also get a disk name such as
c3t200500A0B8186895d23s3.  The large target ID is typically the result
of SAN storage or an internal fiber path on the host.  In these cases,
the target is the WWN of the presented LUN, thus:

                c3 => logical controller 3
                t200500A0B8186895 => WWN 200500A0B8186895
                d23 => disk 23
                s3 => slice 3

No comments: