[Документация Yandex Cloud](../../index.md) > [Yandex BareMetal](../index.md) > [Концепции](index.md) > Серверы > Диски и RAID > Оценка состояния дисков

# Анализ состояния дисков серверов Yandex BareMetal

[Серверы Yandex BareMetal](servers.md) комплектуются [дисками](disks/disk-types.md), которые могут иметь некоторую историю эксплуатации. Это нормальная практика для серверного оборудования: диски рассчитаны на многолетнюю непрерывную работу, и их производительность в результате такой работы никак не снижается. Наработка сама по себе не является критерием замены диска — критерием является фактическое состояние накопителя.

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

## Диагностика состояния диска {#diagnostics}

Если в процессе работы с сервером BareMetal вы столкнулись с ошибками чтения/записи данных на диски, отказом диска или [RAID](disks/raid.md)-массива, а также если у вас есть подозрение на неисправность диска, его состояние можно проверить несколькими способами.

{% note tip %}

Чтобы дополнительно обезопасить себя от потери данных, [настройте](../operations/backup-baremetal.md) на вашем сервере резервное копирование с помощью сервиса [Yandex Cloud Backup](../../backup/index.md).

{% endnote %}

### SMART {#smart}

[SMART](https://ru.wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis and Reporting Technology) — встроенная система самодиагностики, реализованная в каждом современном диске: [HDD](disks/disk-types.md#hdd), [SSD](disks/disk-types.md#ssd) и [NVMe](disks/disk-types.md#nvme). В процессе эксплуатации диск непрерывно измеряет собственные параметры и накапливает статистику, доступную для чтения внешними инструментами мониторинга. Для чтения этих данных используются стандартные утилиты.

Ключевой принцип интерпретации SMART: критичным является не конкретное числовое значение счетчика, а его динамика и переход атрибута в состояние `FAILING_NOW`. Последнее означает, что диск сам сигнализирует об исчерпании встроенных механизмов восстановления.

Для NVMe-накопителей дополнительно отслеживается атрибут `percentage_used` — степень износа ресурса [NAND](https://ru.wikipedia.org/wiki/Флеш-память#NOR_и_NAND)-памяти диска.

### Утилита HWCheck {#hwcheck}

_HWCheck_ — утилита диагностики серверного оборудования. Она автоматически собирает SMART-показатели всех дисков, анализирует их по внутренним критериям и формирует отчет о состоянии накопителей в понятном пользователю виде без необходимости вручную интерпретировать исходные данные SMART.

Вы можете [выполнить](../operations/servers/use-hwatcher.md) диагностику сервера, которая позволит определить источник проблемы и сформирует отчет для отправки в службу технической поддержки.

{% note info %}

Использовать утилиту `HWCheck` можно только на серверах под управлением ОС [Linux](https://ru.wikipedia.org/wiki/Linux).

{% endnote %}

Информация о состоянии дисков сервера сохраняется в директории `drive` отчета, причем отчет по каждому из дисков сервера сохраняется в отдельном файле. Отчет о значении SMART-атрибутов диска представляет собой таблицу:

{% list tabs group=disks %}

- HDD-диски {#net-hdd}

  ```text
  ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
    1 Raw_Read_Error_Rate     POSR--   083   063   044    -    203094696
    3 Spin_Up_Time            PO----   093   093   000    -    0
    4 Start_Stop_Count        -O--CK   100   100   020    -    224
    5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    0
    7 Seek_Error_Rate         POSR--   084   060   030    -    293695131
    9 Power_On_Hours          -O--CK   074   011   000    -    23513
   10 Spin_Retry_Count        PO--C-   100   100   097    -    0
   12 Power_Cycle_Count       -O--CK   100   100   020    -    225
  184 End-to-End_Error        -O--CK   100   100   099    -    0
  187 Reported_Uncorrect      -O--CK   100   100   000    -    0
  188 Command_Timeout         -O--CK   100   099   000    -    65537
  189 High_Fly_Writes         -O-RCK   093   093   000    -    7
  190 Airflow_Temperature_Cel -O---K   068   051   045    -    32 (Min/Max 31/32)
  191 G-Sense_Error_Rate      -O--CK   100   100   000    -    0
  192 Power-Off_Retract_Count -O--CK   100   100   000    -    187
  193 Load_Cycle_Count        -O--CK   100   100   000    -    1816
  194 Temperature_Celsius     -O---K   032   049   000    -    32 (0 18 0 0 0)
  195 Hardware_ECC_Recovered  -O-RC-   023   003   000    -    203094696
  197 Current_Pending_Sector  -O--C-   100   100   000    -    0
  198 Offline_Uncorrectable   ----C-   100   100   000    -    0
  199 UDMA_CRC_Error_Count    -OSRCK   200   200   000    -    0
  ```

  Где:

  * `ID#` — идентификатор атрибута.
  * `ATTRIBUTE_NAME` — название атрибута:

      * `Raw_Read_Error_Rate` — частота возникновения вызванных аппаратной частью диска ошибок при чтении данных.
      * `Spin_Up_Time` — время раскрутки дисков из состояния покоя до рабочей скорости. Увеличивается по мере износа механической части диска, а также может говорить о проблемах с электропитанием диска.
      * `Start_Stop_Count` — общее количество циклов запуска/остановки диска.
      * `Reallocated_Sector_Ct` — общее количество секторов с ошибками чтения/записи, переназначенных в резервную область.
      * `Seek_Error_Rate` — частота возникновения ошибок при позиционировании блока магнитных головок. Чем их больше, тем хуже состояние диска. На значение параметра могут влиять перегрев и внешние вибрации.
      * `Power_On_Hours` — общее количество часов, которые диск провел во включенном состоянии.
      * `Spin_Retry_Count` — общее количество повторных попыток раскрутки диска до рабочей скорости в случаях, когда предыдущая попытка оказалась неудачной. Увеличивающееся значение атрибута свидетельствует о высокой вероятности проблем с механической частью диска.
      * `Power_Cycle_Count` — общее количество полных циклов включения/выключения диска.
      * `End-to-End_Error` — общее количество ошибок, возникающих в случае несоответствия между хостом и диском четности данных, передаваемых через кеш-память.
      * `Reported_Uncorrect` — общее количество ошибок, которые не удалось исправить с помощью аппаратной части диска.
      * `Command_Timeout` — общее количество операций, прерванных в связи с таймаутом диска.
      * `High_Fly_Writes` — общее количество зафиксированных случаев записи данных при высоте головки над поверхностью диска выше рассчитанной.
      * `Airflow_Temperature_Cel` — температура воздуха внутри корпуса диска.
      * `G-Sense_Error_Rate` — общее количество ошибок, возникших в результате ударных нагрузок на диск. 
      * `Power-Off_Retract_Count` — общее количество циклов аварийных выключений или отказов питания диска.
      * `Load_Cycle_Count` — общее количество циклов перемещения блока магнитных головок в область парковки.
      * `Temperature_Celsius` — температура диска.
      * `Hardware_ECC_Recovered` — общее количество случаев коррекции ошибок [ECC](https://ru.wikipedia.org/wiki/ECC-память), выполненных контроллером диска.
      * `Current_Pending_Sector` — общее количество так называемых _подозрительных_ секторов, которые еще не были определены как плохие, но считывание с которых отличается от считывания со стабильного сектора. В случае успешного последующего чтения из сектора он исключается из числа подозрительных. В случае повторных случаев чтения с ошибкой диск пытается восстановить его и выполняет операцию переназначения.
      * `Offline_Uncorrectable` — общее количество _подозрительных_ (`Current_Pending_Sector`) секторов, которые диску не удалось восстановить.
      * `UDMA_CRC_Error_Count` — общее количество ошибок, возникших при передаче данных по внешнему интерфейсу в режиме UltraDMA. Например: ошибки нарушения целостности пакетов.

  * `FLAGS` — флаги атрибутов, задаваемые производителем диска, характеризующие тип атрибута:
  
      * `P` (`prefailure warning`) — при достижении порогового значения таких атрибутов диск требует замены.
      * `O` (`updated online`) — такие атрибуты обновляют значения при выполнении встроенных тестов SMART онлайн и офлайн.
      * `S` (`speed/performance`) — такие атрибуты характеризуют производительность диска.
      * `R` (`error rate`) — такие атрибуты отражают значения счетчиков ошибок диска.
      * `C` (`event count`) — такие атрибуты отражают значения счетчиков событий.
      * `K` (`auto-keep`) — самосохраняющиеся атрибуты.
  * `VALUE` — текущее значение атрибута.
  * `WORST` — наихудшее значение атрибута за все время работы диска.
  * `THRESH` — минимальное пороговое значение атрибута, при достижении которого состояние диска считается критическим, и он может выйти из строя.
  * `FAIL` — состояние, сигнализирующее о выходе атрибута за пороговое значение `THRESH`.
  * `RAW_VALUE` — абсолютное значение атрибута.
  
  Если для любого из атрибутов таблицы с флагом `P` (`prefailure warning`) в поле `FAIL` указано значение `FAILING_NOW`, значит, ресурс диска исчерпан и диск нуждается в замене.

- SSD-диски {#net-ssd}

  ```text
  ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
    5 Reallocated_Sector_Ct   PO--CK   100   100   010    -    0
    9 Power_On_Hours          -O--CK   086   086   000    -    67710
   12 Power_Cycle_Count       -O--CK   099   099   000    -    108
  177 Wear_Leveling_Count     PO--C-   062   062   005    -    1182
  179 Used_Rsvd_Blk_Cnt_Tot   PO--C-   100   100   010    -    0
  180 Unused_Rsvd_Blk_Cnt_Tot PO--C-   100   100   010    -    17618
  181 Program_Fail_Cnt_Total  -O--CK   100   100   000    -    0
  182 Erase_Fail_Count_Total  -O--CK   100   100   000    -    0
  183 Runtime_Bad_Block       PO--C-   100   100   010    -    0
  184 End-to-End_Error        PO--CK   100   100   097    -    0
  187 Reported_Uncorrect      -O--CK   100   100   000    -    0
  190 Airflow_Temperature_Cel -O--CK   073   049   000    -    27
  195 Hardware_ECC_Recovered  -O-RC-   200   200   000    -    0
  199 UDMA_CRC_Error_Count    -OSRCK   100   100   000    -    0
  202 Unknown_SSD_Attribute   PO--CK   100   100   010    -    0
  235 Unknown_Attribute       -O--C-   099   099   000    -    68
  241 Total_LBAs_Written      -O--CK   099   099   000    -    2179262941271
  ```

  Где:

  * `ID#` — идентификатор атрибута.
  * `ATTRIBUTE_NAME` — название атрибута:

      * `Reallocated_Sector_Ct` — общее количество блоков с ошибками чтения/записи, переназначенных в резервную область.
      * `Power_On_Hours` — общее количество часов, которые диск провел во включенном состоянии.
      * `Power_Cycle_Count` — общее количество полных циклов включения/выключения диска.
      * `Wear_Leveling_Count` — максимальное количество операций стирания, выполненных над одним блоком флеш-памяти.
      * `Used_Rsvd_Blk_Cnt_Tot` — общее количество использованных блоков флеш-памяти в резервной области.
      * `Unused_Rsvd_Blk_Cnt_Tot` — общее количество доступных блоков флеш-памяти в резервной области.
      * `Program_Fail_Cnt_Total` — общее количество сбоев при попытке записать данные в блок флеш-памяти.
      * `Erase_Fail_Count_Total` — общее количество сбоев при попытке стереть данные из блока флеш-памяти.
      * `Runtime_Bad_Block` — общее количество блоков флеш-памяти с неисправимыми ошибками, выявленное за все время работы диска.
      * `End-to-End_Error` — общее количество ошибок, возникающих в случае несоответствия между хостом и диском четности данных, передаваемых через кеш-память.
      * `Reported_Uncorrect` — общее количество ошибок, которые не удалось исправить с помощью аппаратной части диска.
      * `Airflow_Temperature_Cel` — температура воздуха внутри корпуса диска.
      * `Hardware_ECC_Recovered` — общее количество случаев коррекции ошибок [ECC](https://ru.wikipedia.org/wiki/ECC-память), выполненных контроллером диска.
      * `UDMA_CRC_Error_Count` — общее количество ошибок, возникших при передаче данных по внешнему интерфейсу в режиме UltraDMA. Например: ошибки нарушения целостности пакетов.
      * `Total_LBAs_Written` — общее количество блоков данных, записанных на диск за все время его жизни.
      * `Unknown_SSD_Attribute` и `Unknown_Attribute` — атрибуты, специфичные для конкретного производителя.

  * `FLAGS` — флаги атрибутов, задаваемые производителем диска, характеризующие тип атрибута:
  
      * `P` (`prefailure warning`) — при достижении порогового значения таких атрибутов диск требует замены.
      * `O` (`updated online`) — такие атрибуты обновляют значения при выполнении встроенных тестов SMART онлайн и офлайн.
      * `S` (`speed/performance`) — такие атрибуты характеризуют производительность диска.
      * `R` (`error rate`) — такие атрибуты отражают значения счетчиков ошибок диска.
      * `C` (`event count`) — такие атрибуты отражают значения счетчиков событий.
      * `K` (`auto-keep`) — самосохраняющиеся атрибуты.
  * `VALUE` — текущее значение атрибута.
  * `WORST` — наихудшее значение атрибута за все время работы диска.
  * `THRESH` — минимальное пороговое значение атрибута, при достижении которого состояние диска считается критическим, и он может выйти из строя.
  * `FAIL` — состояние, сигнализирующее о выходе атрибута за пороговое значение `THRESH`.
  * `RAW_VALUE` — абсолютное значение атрибута.
  
  Если для любого из атрибутов таблицы с флагом `P` (`prefailure warning`) в поле `FAIL` указано значение `FAILING_NOW`, значит, ресурс диска исчерпан и диск нуждается в замене.

{% endlist %}

Подробнее о том, как запустить утилиту `HWCheck`, читайте в разделе [Проанализировать состояние сервера BareMetal с помощью утилиты HWCheck](../operations/servers/use-hwatcher.md).

### Нагрузочное тестирование {#load-testing}

SMART отражает состояние здоровья диска, но не всегда позволяет выявить деградацию производительности: диск с удовлетворительными SMART-показателями может работать значительно медленнее ожидаемого. Для проверки реальной производительности используется нагрузочное тестирование — искусственная нагрузка на диск с замером фактических показателей скорости и IOPS. Удобным инструментом для этого является утилита [fio](https://fio.readthedocs.io/en/latest/fio_doc.html).

{% note info %}

Если диск используется в составе [RAID-массива](disks/raid.md) или находится под активной нагрузкой, результаты нагрузочного тестирования могут оказаться неточными.

Использовать утилиту `fio` можно только на серверах под управлением ОС Linux.

{% endnote %}

## Замена диска {#disk-replacement}

Замена вышедших из строя дисков производится инженерами дата-центра в круглосуточном режиме бесплатно.

Подробнее о замене дисков в серверах BareMetal читайте в разделе [Заменить диск в RAID-массиве](../operations/servers/switch-raid-member.md#request-swap).

#### Полезные ссылки {#see-also}

* [Проанализировать состояние сервера BareMetal с помощью утилиты HWCheck](../operations/servers/use-hwatcher.md)
* [Заменить диск в RAID-массиве](../operations/servers/switch-raid-member.md)
* [Подключить сервер BareMetal к Yandex Cloud Backup](../operations/backup-baremetal.md)
* [Типы дисков в серверах Yandex BareMetal](disks/disk-types.md)
* [RAID-массивы в серверах Yandex BareMetal](disks/raid.md)