Немного об именах дисковых устройств в Solaris

Так уж сложилось, что классическим в Solaris является c0t0d0s0-наименование, однако все устройства представляются ядром в виде имя драйвера - номер instance драйвера (для каждого уникального устройства в системе - оно индивидуально), например sd0 означает нулевой SCSI-диск в системе. Рассмотрим - каким образом можно поставить в соответствие эти два имени.

Имена драйверов:

  • sd - SCSI диски (в том числе и SAS, SATA)
  • ssd - FC-AL диски
  • dad - IDE-диски

1

Выяснить можно исходя из файлика /etc/path_to_inst (предполагая, конечно, что он консистентен к системе).
Он содержит строки вида

"/pci@780/pci@0/pci@9/scsi@0/sd@0,0" 1 "sd"


Соответственно 1 - номер инстанса, sd имя драйвера, а первый столбец - полное имя устройства, что дает имя вида sd1.
После этого смотрим в /dev/dsk:

myaut@sunray:~$ ls -l /dev/dsk | grep '/pci@780/pci@0/pci@9/scsi@0/sd@0,0'
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s0 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:a
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s1 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:b
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s2 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:c
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s3 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:d
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s4 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:e
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s5 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:f
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s6 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:g
lrwxrwxrwx   1 root     root          49 сент.  7  2007 c0t0d0s7 ->  ../../devices/pci@780/pci@0/pci@9/scsi@0/sd@0,0:h

2

Кое какую информацию можно почерпнуть из prtconf -vD. Тут есть даже непосредственный симлинк на устройство.

myaut@sunray:~$ /usr/sbin/prtconf -vD | egrep '(dev_|instance)'
                         sd, instance #17 (driver name: sd)
                                dev_path=/pci@7c0/pci@0/pci@1/pci@0,2/scsi@2/sd@0,0:a
                                     dev_link=/dev/dsk/c3t0d0s0
                                     dev_link=/dev/sd17a
                                     <cut>

3

Исходя из вывода команд iostat -En и iostat -E. Они отличаются как раз тем, что одна показывает имя устройства в /dev/dsk, а другая - в виде ssdXX, например:

myaut@sunray:~$ iostat -E
sd1       Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: FUJITSU  Product: MAY2073RCSUN72G  Revision: 0501 Serial No: 0620S02N5F
Size: 73.40GB <73400057856 bytes>                                              
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
и
myaut@sunray:~$ iostat -En
c0t0d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: FUJITSU  Product: MAY2073RCSUN72G  Revision: 0501 Serial No: 0620S02N5F
Size: 73.40GB <73400057856 bytes>                                              
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0                 
Illegal Request: 0 Predictive Failure Analysis: 0        

Напоследок отмечу, что приведенные способы крайне чувствительны к использумой версии Solaris.

К списку статей

Интересуюсь по большей части системным анализом программного обеспечения: поиском багов и анализом неисправностей, а также системным программированием (и не оставляю надежд запилить свою операционку, хотя нехватка времени сказывается :) ). Программированием увлекаюсь с 12 лет, но так уж получилось, что стал я инженером.

Основная сфера моей деятельности связана с поддержкой Solaris и оборудования Sun/Oracle, хотя в последнее время к ним прибавились технологии виртуализации (линейка Citrix Xen) и всякое разное от IBM - от xSeries до Power. Учусь на кафедре Вычислительной Техники НИУ ИТМО.

See you...out there!

http://www.facebook.com/profile.php?id=100001947776045
https://twitter.com/AnnoyingBugs