Назад | Перейти на главную страницу

Могу ли я обнаружить информацию об аппаратном RAID изнутри Linux?

Находясь в Linux, я могу получить следующую информацию от lsblk (нерелевантные диски удалены из вывода):

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda     8:0    0   298G  0 disk 
sdb     8:16   0   2.7T  0 disk

Когда я вручную извлекаю диски из сервера, я могу сказать, что физически использую следующие диски:

0  Seagate 320GB
1  Seagate 320GB
2  Hitachi 1TB
3  Hitachi 1TB
4  Hitachi 1TB
5  Hitachi 1TB
6  [empty]
7  [empty]

Поскольку на сервере больше физического хранилища, чем свободного места в Linux, это означает, что я, очевидно, использую какую-либо систему RAID. С помощью математики я часто могу понять, какой тип RAID-системы используется.

Есть ли способ определить, использую ли я аппаратный RAID из внутри Linux, и выясните всю информацию о нем (например, тип RAID, доступные диски) без выключить сервер, физически вытащить диски и прочитать их метки?

Может ли эта информация быть собрана изнутри Linux, или смысл аппаратного RAID заключается в том, чтобы сделать базовую систему «невидимой» для операционной системы?

Как получить информацию о RAID будет полностью зависеть от используемого RAID-контроллера. Часто у производителей есть инструменты, которые можно загрузить с их веб-сайтов, которые можно использовать для запроса RAID-контроллера и получения этой информации.

Чтобы узнать, какой RAID-контроллер вы используете, попробуйте одну из следующих команд:

lspci

# lspci -knn | grep 'RAID bus controller'
08:00.0 RAID bus controller [0104]: 3ware Inc 9690SA SAS/SATA-II RAID PCIe [13c1:1005] (rev 01)

Здесь мы ищем информацию «3ware Inc 9690SA SAS / SATA-II RAID PCIe».

lsscsi

Эта команда недоступна в Debian и Ubuntu, но быстро sudo apt-get install lsscsi получит его из репозиториев. Обратите внимание: если вы не используете RAID-контроллер, здесь будут указаны производитель и номер модели вашего жесткого диска.

# lsscsi
[2:0:0:0]    disk    AMCC     9690SA-8I  DISK  4.08  /dev/sda 
[2:0:1:0]    disk    AMCC     9690SA-8I  DISK  4.08  /dev/sdb 

Здесь мы видим, что производитель «АМСС» а номер модели карты RAID - «9690СА-8И». Быстрый поиск в Google показывает, что эта карта также известна как "AMCC 3Ware 9690SA-8I".

lshw

Третий метод (который дает довольно много выходных данных) - использовать lshw команда. Бегать lshw -class disk как root, чтобы отображать только сведения о жестких дисках (включая информацию о RAID).

Поиск инструментов RAID-контроллера

Теперь, когда у нас есть производитель и номер модели, должно быть возможно найти инструменты на их веб-сайте или, по крайней мере, получить подробную информацию о том, как найти и использовать инструменты для этого конкретного контроллера.

Если производитель указан в этом списке, см. Эти ответы для получения дополнительных сведений о том, как получить информацию о RAID для вашей карты:

Запустите что-то вроде lspci -knn | grep 'RAID bus controller'.

Используя этот вывод, Google (например) для LSI Logic / Symbios Logic MegaRAID SAS 2208.

Найти использует storcli утилита для опроса RAID-контроллера.

Скачайте и установите.

storcli64 show дает вам конкретно модель контроллера, индекс контроллера, количество групп дисков и виртуальных дисков.

storcli64 /c0/d0 show показывает первый контроллер, первую группу приводов. Сообщает вам уровни рейда, включая вложение.

storcli64 /c0/eall/sall show all показывает вам всю информацию по всем дискам.

Дополнительные справочные данные для этих команд можно найти здесь:

http://mycusthelp.info/LSI/_cs/AnswerPreview.aspx?sSessionID=&inc=8275

Должно быть все, что тебе нужно сделать. Просто используйте обычный аппаратный анализ в Linux, затем в Google, затем загрузите и установите прилагаемые к нему утилиты.

Предложения и комментарии @Gen абсолютно точны.

Этот ответ полностью зависит от результата, который вы получаете от lspci команда, а также возможность поиска в Google определить производителя и выбрать нужный инструмент командной строки.

Но он показывает, что вы можете получить все это с сервера в командной строке, не останавливая машину, не открывая корпус и не извлекая диски, что, я надеюсь, полезно.

Это не универсальный ответ и не дает вам всей необходимой информации, но мы использовали его на одном аппаратном RAID-контроллере Adaptec. Это давало некоторый доступ к самим накопителям через специальные устройства. /dev/sg1, /dev/sg2, и т.д.

Мы могли бежать smartctl -a /dev/sg1 чтобы получить много информации об этом физическом диске, включая производитель, номер модели, интерфейс, серийный номер, размер, и другие данные.

Что касается определения того, какой контроллер используется, я согласен с комментарием Джина о dmidecode, dmesg, и lspci - это я тоже попробую в первую очередь.

Для создания профиля хранилища я бы сделал следующее перед запуском lspci или скачивая что-нибудь.

cat /etc/fstab         # What partitions get mounted at boot?

sudo pvs               # Are you running LVM? List the physical volumes

cat /proc/mdstat       # List software RAID devices & status

for D in /dev/sd?; do parted $D print; done
                       # If hardware RAID is being used, the "Model" field will list
                       # the Mfr. name, otherwise the hard drive Mfr.

3ware

Это было протестировано на следующих RAID-контроллерах: 9690SA-8I

Пожалуйста, дайте мне знать в комментариях, работает ли он для вашего конкретного контроллера, или если инструкции требуют обновления для вашей модели.

Скачивание

Во-первых, вам нужно скачать инструмент tw_cli. Его можно найти на веб-сайте Avago Technologies *:

* Не волнуйтесь, это не сторонний веб-сайт; 3ware было куплено AMCC, а затем продано LSI Corporation, которая позже стала частью Avago [источник]. Чтобы подтвердить это, обратите внимание, что 3ware.com перенаправляет на соответствующую страницу на avagotech.com.

Тип tw_cli в панель поиска, затем перемещайтесь по ней, пока не найдете загрузку с именем CLI Linux - from the 10.2.2.1/9.5.5.1 code sets (номер последней версии может отличаться от указанного здесь)

Распакуйте zip-файл и в любой x86 или x86_64 вы найдете tw_cli двоичный файл, который вам нужен. Сохраните этот двоичный файл на свой сервер или компьютер.

Запуск tw_cli

НОТА: (1) Утилиту командной строки может потребоваться запускать от имени пользователя root. (2) Запустите его, как любой другой двоичный файл, либо добавив его в путь, либо запустив непосредственно из текущего каталога с помощью ./tw_cli.

Первый забег tw_cli show чтобы перечислить, какие RAID-контроллеры доступны в вашей системе:

# tw_cli show
Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c2    9690SA-8I    6         6        2       0       1       1      Charging 

Здесь мы видим, что к нему подключен один контроллер с идентификатором c2 (запомните этот идентификатор!), к которому подключено 6 физических дисков. Чтобы получить более подробную информацию о том, какие диски подключены к устройству, запустите tw_cli /c2 show (заменяя /c2 с идентификатором вашего контроллера):

# tw_cli /c2 show
Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       298.013   Ri     ON     
u1    RAID-5    OK             -       -       64K     2793.94   Ri     ON     

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   298.09 GB SATA  0   -            ST3320613AS         
p1    OK             u0   298.09 GB SATA  1   -            ST3320613AS         
p2    OK             u1   931.51 GB SATA  2   -            Hitachi HDS721010CL 
p3    OK             u1   931.51 GB SATA  3   -            Hitachi HDS721010CL 
p4    OK             u1   931.51 GB SATA  4   -            Hitachi HDS721010CL 
p5    OK             u1   931.51 GB SATA  5   -            Hitachi HDS721010CL 

Первая группа показывает используемые настройки RAID. Вторая группа показывает, какие диски в настоящее время физически подключены к серверу.

В данном конкретном случае у меня две конфигурации RAID:

  • u0 -> Диски p0 и p1 оба диска емкостью 300 ГБ от одного производителя, настроенные для использования RAID-1 (точные зеркала друг друга)
  • u1 -> У меня четыре диска Hitachi емкостью 1 ТБ (p2 через p5), настроенный с использованием RAID-5 («один из дисков» используется для обеспечения сохранения данных в случае выхода из строя любого из других дисков). Это означает (как видно сверху), u1 имеет 3 ТБ (точнее, 2793.94 GB) полезных данных.

Еще больше информации о состоянии и исправности дисков можно найти, запустив tw_cli /c2/u0 show или tw_cli /c2/p0 show. Более подробную информацию и команды можно найти в страницы руководства.

В добавок к lspci и lshw методы, описанные в другом ответе, вы можете проанализировать dmesg и использовать smartctl для получения информации о физических дисках. Например, взгляните на этот сервер с контроллером PERC H710p:

[root@localhost ~]# dmesg | grep -i scsi
[    0.946723] SCSI subsystem initialized
[    1.279256] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    2.853831] scsi host0: Avago SAS based MegaRAID driver
[    2.858058] scsi 0:2:0:0: Direct-Access     DELL     PERC H710P       3.13 PQ: 0 ANSI: 5
[    2.873982] scsi 0:2:1:0: Direct-Access     DELL     PERC H710P       3.13 PQ: 0 ANSI: 5
[    3.011376] sd 0:2:0:0: [sda] Attached SCSI disk
[    3.012031] sd 0:2:1:0: [sdb] Attached SCSI disk
[    7.915918] sd 0:2:0:0: Attached scsi generic sg0 type 0
[    7.916305] sd 0:2:1:0: Attached scsi generic sg1 type 0

Вы можете увидеть два определенных массива: sda и sdb. Бег smartctl против таких виртуальных устройств настраивается что-то вроде следующего:

[root@localhost ~]# smartctl --all /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               DELL
Product:              PERC H710P
Revision:             3.13
Compliance:           SPC-3
User Capacity:        9,930,501,324,800 bytes [9.93 TB]
Logical block size:   512 bytes
Logical Unit id:      REDACTED
Serial number:        REDACTED
Device type:          disk
Local Time is:        Fri May 29 14:46:48 2020 CEST
SMART support is:     Unavailable - device lacks SMART capability.

Чтобы проверить значения состояния физического диска, вы можете использовать smartctl --all -d <driver>,<disknum> <sddevice> синтаксис. Например, чтобы проверить первый диск второго массива:

[root@localhost ~]# smartctl --all -d megaraid,0 /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1062.12.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     REDACTED
Serial Number:    REDACTED
LU WWN Device Id: REDACTED
...                      
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   100   253   021    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       3
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       2251
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       3
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       1
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       3
194 Temperature_Celsius     0x0022   123   117   000    Old_age   Always       -       20
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

Наконец, чтобы получить информацию о структуре массива (например, тип RAID, запасные диски и т. Д.), Вам пришлось использовать специальные инструменты. megacli является универсальным инструментом для карт на основе LSI, но также существуют инструменты, настроенные производителем (например: omreport storage vdisk). Например, на сервере DELL:

[root@localhost ~]# omreport storage vdisk
List of Virtual Disks in the System

Controller PERC H710P Mini (Embedded)
ID                                : 0
Status                            : Ok
Name                              : REDACTED
State                             : Ready
Hot Spare Policy violated         : Not Assigned
Encrypted                         : No
Layout                            : RAID-6
Size                              : 64.00 GB (68719411200 bytes)
T10 Protection Information Status : No
Associated Fluid Cache State      : Not Applicable
Device Name                       : /dev/sda
Bus Protocol                      : SATA
Media                             : HDD
Read Policy                       : Adaptive Read Ahead
Write Policy                      : Write Back
Cache Policy                      : Not Applicable
Stripe Element Size               : 64 KB
Disk Cache Policy                 : Enabled