Как проанализировать работоспособность жесткого диска или твердотельного накопителя на серверах Linux и NAS

Когда у нас есть сервер с Linux или сервер NAS (который также имеет операционную систему на базе Linux) с большим количеством информации внутри, как самой операционной системы, так и личных или рабочих файлов и папок, важно контролировать, чтобы жесткие диски и SSD диски находятся в добром здравии и не собираются ломаться в ближайшее время без предупреждения. По этой причине очень важно постоянно контролировать жесткий диск или SSD нашего сервера, чтобы избежать потери данных из-за его поломки. Сегодня в этой статье мы собираемся показать вам все, что вы должны проверить на своем сервере Linux, чтобы проверить работоспособность ваших дисков.

Анализ состояния жесткого диска или твердотельного накопителя на серверах Linux и NAS

Что такое SMART дисков

Все жесткие диски и SSD-накопители оснащены технологией SMART, также известной как SMART, что означает «Технология самоконтроля, анализа и отчетности». Эта технология, включенная в прошивку жестких дисков и твердотельных накопителей, заключается в обнаружении возможных сбоев в жестком диске с целью прогнозирования физических ошибок на жестком диске или неожиданных сбоев в твердотельных накопителях из-за записи во внутреннюю флэш-память. . Цель SMART — предупредить пользователей, чтобы они могли создать резервную копию и заменить диск без потери данных. Если мы будем игнорировать SMART, придет время, когда жесткий диск сломается, и мы потеряем данные, поэтому важно всегда обращать внимание на данные SMART дисков.

Чтобы использовать SMART, абсолютно необходимо, чтобы BIOS или UEFI сервера были совместимы с этой технологией и чтобы она была активирована, кроме того, также абсолютно необходимо, чтобы диски включали ее. Сегодня все серверы, операционные системы и диски используют эту технологию для обнаружения проблем с жестким диском, можно сказать, что она «универсальна» и используется всегда.

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

Внутренне SMART имеет диапазон значений, которые мы можем считать «нормальными», и когда параметр выходит за эти значения, то есть когда срабатывает сигнал тревоги, BIOS/UEFI обнаружит это и уведомит операционную систему о сбое. в системе. диск, и это может быть серьезно. В операционных системах Linux у нас есть возможность проводить тесты SMART, чтобы проверить, правильно ли работает диск, кроме того, у нас есть возможность запрограммировать эти тесты, чтобы минимизировать влияние на производительность.

Как посмотреть состояние диска

В большинстве дистрибутивов на базе Linux есть пакет под названием smartmontools. Иногда этот пакет предустановлен в нашем дистрибутиве, а иногда нам приходится устанавливать его самостоятельно. Этот пакет состоит из двух разных программ:

  • смартктл : это программа командной строки, которая позволяет нам проверять жесткие диски и твердотельные накопители по запросу, или мы можем запрограммировать ее работу с помощью обычного cron в операционной системе.
  • умный : это демон или процесс, который проверяет, что жесткие диски или твердотельные накопители в указанный интервал времени не имели сбоев. Он способен регистрировать любой тип предупреждений или ошибок диска в основной системный журнал сервера, а также позволяет отправлять эти же предупреждения и ошибки по электронной почте администратору, чтобы он мог убедиться, что все правильно.

Пакет smartmontools отвечает за мониторинг жестких дисков и SSD-накопителей, независимо от того, используют ли они интерфейсы SATA, SCSI, SAS или NVME, он поддерживает любой тип интерфейса данных. Разумеется, эта программа совершенно бесплатна.

Установка

Установка этой программы, если она не установлена ​​по умолчанию в вашем дистрибутиве Linux, осуществляется с помощью менеджера пакетов вашего дистрибутива. Например, в операционных системах Debian с apt это будет так:

sudo apt install smartmontools

В зависимости от менеджера пакетов вашего дистрибутива вам придется использовать ту или иную команду, важно то, что этот пакет доступен для всех дистрибутивов на основе Unix, а также для Linux, поэтому вы также можете без проблем установить его на FreeBSD.

Использование смартктл

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

df -h

Мы также можем использовать fdisk для получения списка дисков, которые есть на нашем сервере:

sudo fdisk -l

Эти команды покажут нам список устройств, а также разделов. Мы должны использовать эту программу на уровне жесткого диска или SSD, а не на уровне раздела. Обычно в системах Linux мы находим диски по пути /dev/sdX.

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

  • Короткий тест – Этот тест чаще всего используется для выявления проблем с дисками. При выполнении этого теста он покажет нам самые важные ошибки и предупреждения, без необходимости подробно анализировать весь диск. Мы можем запланировать этот короткий тест через cron еженедельно, таким образом, один раз в неделю он будет выполнять этот анализ и уведомлять нас, если обнаружит какие-либо ошибки. Желательно делать этот тест в то время, когда толку мало или совсем нет, не рекомендуется делать его в рабочее время, лучше на рассвете.
  • Длинный тест – Этот тест может занять довольно много времени, в зависимости от накопителя и его емкости. Выполнив этот комплексный тест, он покажет нам все предупреждения или ошибки, обнаруженные на всем диске. Мы можем запланировать этот длинный тест с cron, чтобы он выполнялся ежемесячно, то есть один раз в месяц мы будем выполнять этот тест для проверки работоспособности диска. Желательно делать этот тест в то время, когда диск мало используется, например, на рассвете, потому что в противном случае производительность чтения и записи, а также задержка доступа к данным значительно возрастут.

Как только мы узнаем два типа тестов, которые мы можем использовать, первое, что нам нужно знать, это то, включен ли SMART на жестком диске или твердотельном накопителе:

sudo smartctl -i /dev/sda

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

sudo smartctl -s on /dev/sda

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

sudo smartctl -a /dev/sda

Чтобы выполнить короткий тест, мы выполняем следующее:

sudo smartctl -t short /dev/sda

Чтобы выполнить длинный тест, мы выполняем следующее:

sudo smartctl -t long /dev/sda

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

sudo smartctl -H /dev/sda

Мы рекомендуем прочитать справочные страницы smartctl, где вы найдете все команды, которые мы сможем выполнить, чтобы использовать возможности SMART, однако основные команды — это те, которые мы вам объяснили.

На какие значения мне смотреть?

Когда мы проведем SMART-тест, появится большое количество атрибутов нашего жесткого диска или SSD. Некоторые из этих значений являются критически важными, на которые мы обращаем пристальное внимание, потому что они могут дать нам «подсказки» о том, что диск очень скоро выйдет из строя:

  • Reallocated_Sector_Ct: количество секторов, которые были перераспределены в другие области диска из-за ошибок чтения. Эта ошибка очень типична, когда диск очень старый и срок его полезного использования подходит к концу.
  • Spin_Retry_Count: это количество попыток, которые были необходимы для загрузки диска, это указывает на серьезную аппаратную проблему на диске, и он может не загрузиться в следующий раз.
  • Reallocated_Event_Count — количество успешно или неудачно выполненных перераспределений. Чем выше число, тем хуже состояние жесткого диска.
  • Current_Pending_Sector: количество секторов, ожидающих скорого перераспределения.
  • Offline_Uncorrectable: количество неисправимых ошибок при доступе (чтении или записи) к различным секторам диска.
  • Multi_Zone_Error_Rate: общее количество ошибок при записи сектора.

На следующем изображении вы можете увидеть состояние жесткого диска WD Red 4 ТБ из нашего NAS с операционной системой XigmaNAS:

На предыдущем снимке экрана вы можете увидеть много информации, но мы должны знать, является ли это изолированным сбоем или наш диск может скоро выйти из строя.

Состояние дисков в QNAP NAS

Если у вас есть NAS-сервер QNAP, Synology или ASUSTOR, вы также сможете видеть SMART-статус ваших жестких дисков и твердотельных накопителей через операционную систему с веб-доступом, нет необходимости входить через SSH или Telnet и выполнять какие-либо команды . В приведенном ниже примере мы использовали NAS-сервер QNAP, но процесс с другими производителями был бы очень похож.

Первое, что нам нужно сделать, это перейти в « Хранилище и снимки », оказавшись здесь, нажмите « Хранилище / Диски » и мы увидим что-то вроде этого:

Если мы нажмем на « Состояние диска », нам придется выбирать, какой диск из всего мы хотим посмотреть. Мы можем выбрать как жесткие диски HDD, так и SSD-диски, независимо от их типа, потому что они также имеют внутреннюю информацию SMART, чтобы увидеть, есть ли ошибка диска.

В меню «Сводка» мы можем увидеть общее состояние диска, если есть какая-либо ошибка или серьезное предупреждение, мы также можем легко и быстро увидеть общее состояние, без необходимости проводить подробный анализ SMART. значения . Конечно, мы также можем увидеть историю доступа к диску и узнать, были ли какие-либо проблемы.

Хотя QNAP предоставляет нам очень простую для понимания информацию, если мы хотим увидеть все необработанные значения, мы также сможем сделать это без проблем. Кроме того, у нас будет дополнительный столбец, который сообщает нам «Статус» и хороший он или плохой.

Здесь мы сможем проводить быстрые или полные тесты, нам просто нужно выбрать метод тестирования, а затем нажать кнопку «Тест».

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

Как видите, проверка состояния жестких дисков и твердотельных накопителей на сервере очень важна для предотвращения потери данных. При возникновении любой ошибки очень важно купить новый диск и сделать резервную копию, чтобы избежать потери данных. Кроме того, мы также должны проверить состояние RAID, потому что мы можем привести к потере всего пула хранения, особенно если мы настроили ZFS RAID 0 или Stripe.