LINUX.ORG.RU

smart power on hours rollover ~78190

 ,


0

2

Диски Seagate ST8000AS0002 (несколько штук, были куплены вместе, работали тоже вместе). По логам обнаружил, что power on hours у них обнулился после примерно 78190 часов, то есть без 4 недель 9 лет. Что это за странное число такое? В побайтовом дампе смарта оно у этих дисков хранится в младших 32 битах поля «raw» в виде часов, то есть это не из-за того что там были минуты или секунды или ещё что-то.

Кто-нить сталкивался?

★★★★★

Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от ALiEN175

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

Вот собственно дамп

09 32 00 60 0B 54 0F 00 00 00 00 00
54 0F это power on hours обнулившееся полгода назад, дальше идут нули.

09 - номер атрибута, 3200 - флаги (не знаю что значат), 60 и 0B это value и worst, что они значат для power-on-hours тоже не знаю (у всех дисков одинаковые).

firkax ★★★★★
() автор топика
Ответ на: комментарий от ALiEN175

У меня только дамп есть, smartctl не запустить.

Но то что выводит smartctl про атрибут - берётся только из этих 12 байт и больше ниоткуда, так что новой информации там бы не было.

raw48:54 выводит предпоследний и предпредпоследний байты, там нули.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

У меня только дамп есть, smartctl не запустить.

Жаль.

берётся только из этих 12 байт и больше ниоткуда

Сомнительно. Чем дамп создавали?

ALiEN175
()
Последнее исправление: ALiEN175 (всего исправлений: 1)

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

  9 Power_On_Hours          0x0032   015   015   000    Old_age   Always       -       75235

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

ALiEN175

с -v 9,raw48:54 показывает ожидаемый ноль.

-l farm неизвестная опция (smartctl 7.2)

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)

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

Пример для WD: https://www.opennet.ru/openforum/vsluhforumID15/4862.html#29

Есть софт под винду PC-3000, который умеет дампить прошивки дисков разных производителей. Можно посмотреть какие операционные коды и команды используют они.

anonymous
()

Не сталкивался, но топики гуглятся, и один для SAS, но всё Seagate.

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

mky ★★★★★
()
Ответ на: комментарий от mky

Я пытался найти но что-то не нашёл упоминаний, можешь дать ссылку?

Интересно, какие должны быть единицы чтобы на таком числе переполнялось.

Кажется догадался

2^48/1000000/3600 = 78187

там наверно 48-битное поле с микросекундами. Странное решение.

Могли бы уж его в смарте и показывать а не прятать точность.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Вот ссылки, но там нет ответа «почему так», только подтверждени.

https://www.reddit.com/r/DataHoarder/comments/15dvj3s/power_on_hours_rollover...
https://forums.servethehome.com/index.php?threads/rolled-the-odometer-over.37...
https://serverfault.com/questions/880240/s-m-a-r-t-power-on-hours-wrap-around...

Вроде, ещё пару находил, но пока только эти три.

его в смарте и показывать

Ну это же другой формат поля, значит всякие утилиты переписывать. ИМХО, в SMART'е у всех НЖМД измеряется часах и у Seagate часах (для SATA), у SAS, ЕМНИП, минуты. А микросекунды — это внутреннее время НЖМД, его часы, с которого берётся время для всех событий. Не знаю, сознательно они его в 48 бит или хотели 64, но где-то ошиблись.

Ещё можно бы посмотреть, что происходит с этим значеним в SMART, если, допустим, включать НЖМД 4 раза по 15 минут, если оно изменится на 1, значит где-то сохраняется время работы точнее, чем в часах. И при сохранении и может 64->48 бит, ну это просто для объяснения, почему 48 бит, ведь у современных микроконтроллеров обычно 16, 32, 64 бит, обычно нет типа данных 48 бит...

mky ★★★★★
()
Ответ на: комментарий от mky

Да нет, некоторые диски в минутах или в секундах там выдают (а smartctl уже в часы конвертирует). Не думаю что микросекунды тут чем-то отличались бы.

С включением 4 раза по 15 минут не получится. Хотя с другими дисками можно попробовать, но лень.

Кстати из этих трёх ссылок только в последней число похожее 78190 фигурирует, в остальных просто отмечается факт что счётчик иногда переполняется (по-моему общеизвестный и так).

Вот тут примеры того что разные диски в разных единицах показывают.

https://www.smartmontools.org/wiki/FAQ#smartctlreportstheageasthousandsofhour...

А ниже, там где про таймстамп селфтестов, становится ясно что даже какие-то очень старые WD уже хранили настоящий power-on как минимум в минутах, но конвертировали его в часы при показывании наружу.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

Ну по второй ссылке про SAS 70 тыс. часов упомянаются:

I tried with 3 different drives and same thing on , ~1900 hours power on but errors logged at over 70k hours.

То есть, счётчик мото-часов сбросился, а в логах есть записи, что он до 70+ тыс. доходил.

старые WD уже хранили настоящий power-on как минимум в минутах, но конвертировали его в часы при показывании наружу.

Ну, дак и seagate, может где-то хранит моточасы в микросекундах, а то, что он в разных местах обрезает до часов — дак им так проще. У SAS в минутах. И лог температур у Seagate, вроде, с минутами.

В принципе, можно и не выключать комп, если последняя загрузка была точно с отключеним питания. Тогда можно регулярно опрашивая SMART определить, когда меняется значение power on hours и сравнить это с uptime системы, если не 59 минут, значит точно Seagate где-то хранит не в часах, а в большем разрешении.

mky ★★★★★
()