Информация о дисках в системе Linux

hdd_info

Периодически любому, кто соприкасается профессионально с аппаратным обеспечением IT систем, приходится сталкиваться с вопросами оценки работоспособности жестких дисков. В свое время плотно занимался системами хранения данных EMC. И опыт эксплуатации даже этих самых продвинутых стораджей корпоративного уровня показывает, что после трех — пяти лет их использования, жесткие диски начинают выходить из строя с неотвратимой регулярностью. Эти компоненты серверов, СХД или даже обычных компьютеров с моей точки зрения представляют собой расходный материал, которые нужно быть готовым менять постоянно в долгосрочной перспективе. Если использование корпоративных стораджей по своей философии предполагает постоянную покупку сервисов технической поддержки, и соответственно замену дисков вендором в случае проблем с ними. То в случае использования серверных решений на базе стандартных операционных систем Linux или Windows, вопросом обслуживания жестких дисков нам придется заниматься полностью самим.

Все современные нормальные жесткие диски и диски SSD имеют на борту систему мониторинга S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology или SMART). Если такой поддержки на имеющихся у Вас дисках нет, то стоит задумать сразу же о целесообразности их использования. Система SMART встроена в микросхемы контроллера диска и содержит в себе информацию о показателях жизнедеятельности данного драйва. Что хорошо, так это то, что из операционной системы сервера или компьютера, где установлены диски, можно легко получить доступ к данным этой системы. Это позволяет администратору быть постоянно в курсе состояния используемых драйвов. Также с помощью имеющейся информации можно проводить заблаговременно замену дисков, там где находятся критически важные данные.

Использование S.M.A.R.T. Monitoring Tools

Давайте посмотрим, как воспользоваться возможностями системы S.M.A.R.T. в операционной системе Ubuntu Linux. Для этого нам нужно установить пакет smartmontools. Это делается с помощью следующей команды.

# apt-get install smartmontools

После завершения установки пакета в ОС, можно приступить к работе с дисками. Так, чтобы получить информацию о драйве, который виден у нас в системе как /dev/sda нам нужно выполнить команду указанную ниже.

# smartctl -a /dev/sda

smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-53-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     xxxx
Serial Number:    YYYY
LU WWN Device Id: zzzz
Firmware Version: SN01
User Capacity:    12,002,350,252,032 bytes [12.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-4 (minor revision not indicated)
SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Nov 26 11:17:24 2020 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (  567) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 557) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x70bd) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   100   100   044    Pre-fail  Always       -       8909
  3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       154
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   100   253   045    Pre-fail  Always       -       732
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       2012
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       1
 18 Unknown_Attribute       0x000b   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   253   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   063   063   040    Old_age   Always       -       37 (Min/Max 27/37)
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       7
194 Temperature_Celsius     0x0022   037   040   000    Old_age   Always       -       37 (0 27 0 0 0)
195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       8909
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       0 (25 69 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       0
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       8909

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Из выводимой информации, наиболее ценная для использования — таблица с Vendor Specific SMART Attributes with Thresholds. У каждого вендора эта табличка может отличаться тем или иным количеством атрибутов. Также ряд атрибутов у SSD дисков может отличаться от атрибутов у драйвов со шпинделем, что обусловленно технологией работы. Как правило, основные атрибуты общие для дисков разных производителей.

Например, в приведенном примере рассмотрим первый атрибут Raw_Read_Error_Rate. Он показывает уровень ошибок при чтении с диска. Для данного атрибута значение поля RAW_VALUE малопоказательно и зависит от фирмы производителя диска. Мы должны смотреть на поле VALUE. В данном случае VALUE равно 100. С учетом того, что значение THRESH, обозначающее порог корректной работы диска, выставлен в 044, можно сделать заключение, что на данный момент с диском все хорошо.

Среди отображаемых атрибутов есть те, которые могут дать полезную информацию в поле RAW_VALUE. Так Spin_Up_Time покажет сколько часов шпиндель работал, а Power_On_Hours отобразит время подключения диска к питанию с самого первого его включения. Эти параметры позволяют примерно оценить сколько диск уже отработал и время, когда его нужно будет поменять.

Также бывает полезным периодически проводить тесты работоспособности дисков с помощью smartctl. Такие тесты позволяют выявлять проблемы с драйвом на более глубоком уровне. Так, чтобы запустить быстрый тест, нам нужно выполнить следующую команду:

# smartctl -t short /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-53-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Fri Nov 27 21:33:49 2020 UTC
Use smartctl -X to abort test.

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

# smartctl -l selftest /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-53-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%         2015         -
# 2  Short offline       Completed without error       00%         2014         -

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

Заключение

Попытался в статье показать, как с помощью небольшой утилиты в ОС Linux узнавать информацию о показателях жизнедеятельности жестких дисков. Для системных администраторов, работающих с большой IT инфраструктурой, это бывыет крайне полезно и необходимо.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *