Как использовать smartctl с одним рейд-контроллером

Я использую рейд-контроллер PERC H730 Mini:

      # lspci -d::0104 -k
02:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] (rev 02)
        Subsystem: Dell PERC H730 Mini
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

и вот диски, подключенные к серверу:

      # lsscsi -s
[0:2:0:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sda    499GB
[0:2:1:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdb   8.00TB
[0:2:2:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdc   8.00TB
[0:2:3:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdd   8.00TB
[0:2:4:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sde   8.00TB
[0:2:5:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdf   8.00TB
[0:2:6:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdg   8.00TB
[0:2:7:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdh   8.00TB
[0:2:8:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdi   8.00TB
[0:2:9:0]    disk    DELL     PERC H730 Mini   4.28  /dev/sdj   8.00TB
[0:2:10:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdk   8.00TB
[0:2:11:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdl   8.00TB
[0:2:12:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdp   8.00TB
[0:2:13:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdm   8.00TB
[0:2:14:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdn   8.00TB
[0:2:15:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdq   8.00TB
[0:2:16:0]   disk    DELL     PERC H730 Mini   4.28  /dev/sdo    399GB

Я думал, что имя устройства былоdenoting which disk on the controller is monitored.

Но тогда при использовании одного RAID-контроллера также потребуетсяThe non-negative integer N (in the range of 0 to 127 inclusive) denotes which disk on the controller is monitored.и дает совершенно другой результат, когда значение отличается:

      # smartctl -i /dev/sdq -d megaraid,0 -j | jq -r .model_name,.user_capacity.bytes
INTEL SSDSC2BX400G4R
400088457216
# smartctl -i /dev/sdq -d megaraid,1 -j | jq -r .model_name,.user_capacity.bytes
SEAGATE ST8000NM0075
8001563222016

Кажется, используяN=0возвращает неправильный диск, поскольку емкость не соответствует емкостиlsscsi -sвыход.

Как выбрать правильныйNзначение сsmartctl?

1 ответ

Это нормально. Ваши результаты никогда не будут соответствовать выходным, поскольку устройства SCSI, которые вы видите в это вообще не ваши физические диски — это логические тома RAID, виртуальные «диски», эмулируемые вашим RAID-контроллером (которые не содержат данных SMART из-за того, что они виртуальные).

Фактические физические диски не видны операционной системе — они спрятаны «за» RAID-контроллером (это буквально работа контроллера), поэтому вам нужен«чит-код» для доступа к ним.

(Если бы контроллер работал как обычный адаптер HBA и напрямую открывал диски, вам не требовался бы какой-либо специальный синтаксис для доступа к ним, вы бы просто использовали их имена /dev; но тогда контроллер не мог бы реализовать RAID без вмешательства.)

Другие вопросы по тегам