CPU, GPU И RAM

NVMe: unsafe shutdowns и media errors означают разное

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

Историческое число unsafe shutdowns не доказывает повреждение носителя; разные SMART-поля требуют отдельных определений и временной связи.

Разделить события и последствия

Unsafe shutdowns показывает события завершения работы без предусмотренного уведомления контроллера перед потерей питания. Media errors относится к другому классу наблюдений. Структура SMART libnvme определяет эти поля отдельно, поэтому их нельзя объединять в один счётчик «плохих выключений диска». Большое историческое значение unsafe shutdowns не устанавливает, что каждая такая ситуация повредила данные. Отсутствие media errors тоже не доказывает отсутствие потери несохранённого состояния приложения. Сначала следует записать смысл конкретного поля и вопрос расследования: питание, ошибки целостности, поведение приложения или история обслуживания. Иначе одно число начинает отвечать сразу на несколько технически разных вопросов без достаточных оснований.

Сохранить идентичность и версию

В снимок включают serial, модель, firmware, controller, область запроса и версию nvme-cli. История изменений nvme-cli показывает развитие команд и форматов; parser должен опираться на поддерживаемую версию, а не на случайную колонку из старого вывода. При обновлении инструмента сохраняют контрольный пример и проверяют, что смысл полей не изменился из-за преобразования данных. Непрочитанное значение отличается от нуля. Также число error log entries не следует автоматически приравнивать к media errors: журнал может отражать другие ошибки команд. Сравнивают соответствующие определения и исходный ответ, прежде чем приписать любое новое число физическому повреждению накопителя в текущем окне наблюдения.

Считать изменения за известное окно

Исторические totals полезны для паспорта, но расследованию текущего события нужны baseline и последующий снимок. Оба должны относиться к одному контроллеру и совместимой области. В журнале обслуживания отмечают перезапуск, замену устройства и изменение firmware. Если значение уменьшилось, сначала проверяют идентичность и источник данных, не публикуя отрицательное количество событий. Временной ряд показывает интервалы между опросами, а не обязательно точный момент каждого shutdown. Поэтому совпадение двух дельт в широком окне является корреляцией. Для причинного вывода потребуется более точная хронология питания, журнал ядра и сведения о состоянии приложения, которые не содержатся автоматически в накопленном SMART счётчике.

Проверить диагностические развилки

Если растёт только unsafe shutdowns, исследуют порядок остановки, питание и события платформы. Если растут media errors без новых shutdowns, изучают отдельный путь ошибок хранения и рекомендации производителя. Если растут оба поля, сохраняют оба факта и проверяют временную связь, не объявляя причинность заранее. Намеренное отключение питания действующего сервера не является обычным способом уточнить такую статистику. Для лабораторного опыта потребовался бы отдельный контролируемый стенд и план восстановления. В большинстве случаев начальная диагностика строится на чтении состояния и существующих журналах. Это позволяет сохранить доказательства и не создавать новое событие, которое затем смешается с исходной историей проблемы.

Подготовить фактическое заключение

Отчёт содержит исходные SMART snapshots, дельты отдельных полей, версии, окно наблюдения и подтверждённые события обслуживания. Полезны NVMe для моделей и реестр изменений обслуживания GPU. Формулировка должна различать установленное наблюдение, предполагаемую связь и непроверенную причину. Нельзя обещать сохранность данных по нулевому счётчику или назначать замену диска только по историческому числу shutdowns без дополнительных условий. Такой пакет облегчает обращение к документации конкретной модели и сравнение будущих окон. Его задача — уменьшить неопределённость исследования, сохранив различия между питанием, учётом ошибок и реальным состоянием данных на уровне приложения.

← Все материалы