LINUX.ORG.RU
ФорумAdmin

Помирают диски? Контроллер?

 , ,


0

2

Привет, ЛОР. Хочу почитать мнения и телепатию о моей железной проблеме с дисками.

У меня есть десктоп на Q670 и 12th Gen Intel Core i5, память не ECC. В этом десктопе на встроенном SATA контроллере висит пара энтерпрайз дисков intel 960GB, пара intel 1920GB. Диски парами были собраны в ZFS mirror.

В эту субботу я сначала получаю уведомление от smartctl о том, что у меня полезла вверх метрика End-to-End_Error_Count:

Device: /dev/sdd [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Device: /dev/sdd [SAT], Failed SMART usage Attribute: 184 End-to-End_Error_Count.

Через полчасика я получаю уведомление от мониторинга о том, что у меня массив intel-1920 ушел в состояние DEGRADED, в zpool status вижу ошибки и в READ и в WRITE и в CKSUM.

В логах сервера в kern.log я наблюдаю вот такие ошибки лог1. Принимаю решение перезагрузиться, обновиться, разломать ZFS и пересобрать его заново. Собственно лог1 покрывает события от «собираем zfs mirror из чистых дисков» до «zfs destroy».

Ничего не меняется и я иду дальше – интереса ради я делаю mkfs.ext4 на каждом из этих дисков и нагружаю их тестами fio. В это время в лог2 падает несколько аналогичных ошибок во время создания ФС, но вот после их маунта и нескольких нагрузочных тестов в течение дня – ни одной ошибки диска, нет никаких проблем с записью на них или чтением с них.

Уже заказны новая плата, новые пара intel и новые хвостики SATA, однако пока это ко мне едет – хотелось бы как-то еще помучать систему. Помогите понять что это? Оба диска (которым и года нет) умерли в один день? Контакты на двух хвостах SATA окислились в один день? Предпосылки к отвалу контроллера? Магнитные бури и non-ECC память?

Какие еще тесткейсы можно придумать на живой удалённой системе, доступной по ssh, которая выведена из работы?

★★★★

Ответ на: комментарий от BOOBLIK

Если бы не низкая степень вероятности, что два диска умерли за один присест, я бы грешил на них, а так не знаю.

Дело в том, что у меня было что-то подобное на Фряхе и с одним диском. Второй нормально себя чувствует.

sparkie ★★★★★
()

В одном логе я вижу упорную попытку прочитать sector 2080 с sdd, в другом — sector 9992 с sdc. Если первое ещё как-то приемлемо, образовался со временем нечитаемый блок так и будет, то второе как-то неправильно. Если ФС только создана, то все читаемые блоки должны быть свежезаписаными, remap'нутыми, если что.

Изучайте SMART, проверте версию/обновите прошивку. После отказа читать сектор в SMART должен вырасти счётчик Current Pending Sector или Reallocated sectors count.

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

Если ФС только создана, то все читаемые блоки должны быть свежезаписаными, remap'нутыми, если что.

С чего бы это? Если бы при создании fs происходило что-то в виде dd if=/dev/sdN ... то создание fs было бы достаточно мучительных процессом.

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

Со смартфона сильно неудобно писать :(

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

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

создание fs было бы достаточно мучительных

Я не про запись на весь накопитель. Я про то, что если ФС ранее ничего не писала в блок, значит там мусор, а читать мусор незачем. Конечно, есть ещё read-ahead, но, он обычно отключён для SSD.

В лог2 сразу после ошибки чтения идёт:

ext4lazyinit: Cannot read block bitmap

И для блоков этого block bitmap определён флаг:

EXT4_BG_BLOCK_UNINIT 0x0002 /* Block bitmap not in use */

Чтобы не использовать его, если он ещё не проинициализирован. Хотя, я толком нифига не понял, что там с этой отложеной инициализацией структур ФС происходит. Может они зачем-то и читают bitmap с мусорным содержимым.

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

Я не про запись на весь накопитель.

Тогда это:

Если ФС только создана, то все читаемые блоки должны быть свежезаписаными, remap'нутыми, если что.

читать как свеже-проштамповаными? И remap тоже?

anc ★★★★★
()
Ответ на: комментарий от u5er
=== START OF INFORMATION SECTION ===
Model Family:     Intel S4510/S4610/S4500/S4600 Series SSDs
Device Model:     INTEL SSDSC2KG019T8
Serial Number:    PHYG850001VQ1P9DGN
LU WWN Device Id: 5 5cd2e4 1506151a8
Firmware Version: XCV10100
User Capacity:    1,920,383,410,176 bytes [1.92 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        In smartctl database 7.3/5319
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Oct 10 22:34:29 2024 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

...

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       1
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       21533
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       30
170 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
174 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       27
175 Power_Loss_Cap_Test     0x0033   100   100   010    Pre-fail  Always       -       2579 (30 65535)
183 SATA_Downshift_Count    0x0032   100   100   000    Old_age   Always       -       83
184 End-to-End_Error_Count  0x0033   001   001   090    Pre-fail  Always   FAILING_NOW 132
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       169
190 Drive_Temperature       0x0022   071   058   000    Old_age   Always       -       29 (Min/Max 22/46)
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       27
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       29
197 Pending_Sector_Count    0x0012   100   100   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
225 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       858199
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       215
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       8
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       1291649
232 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   100   100   000    Old_age   Always       -       0
234 Thermal_Throttle_Status 0x0032   100   100   000    Old_age   Always       -       0/0
235 Power_Loss_Cap_Test     0x0033   100   100   010    Pre-fail  Always       -       2579 (30 65535)
241 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       858199
242 Host_Reads_32MiB        0x0032   100   100   000    Old_age   Always       -       79248
243 NAND_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       1599597

SMART Error Log Version: 1
No Errors Logged

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%     17034         -
# 2  Short offline       Aborted by host               00%     17034         -

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.
BOOBLIK ★★★★
() автор топика
Ответ на: комментарий от BOOBLIK

Второй диск:

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   099   099   000    Old_age   Always       -       9
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       21543
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       29
170 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
174 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       26
175 Power_Loss_Cap_Test     0x0033   100   100   010    Pre-fail  Always       -       2643 (29 65535)
183 SATA_Downshift_Count    0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error_Count  0x0033   078   078   090    Pre-fail  Always   FAILING_NOW 22
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       23
190 Drive_Temperature       0x0022   070   057   000    Old_age   Always       -       30 (Min/Max 22/45)
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       26
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       30
197 Pending_Sector_Count    0x0012   100   100   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
225 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       858138
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       215
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       7
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       1292408
232 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   100   100   000    Old_age   Always       -       0
234 Thermal_Throttle_Status 0x0032   100   100   000    Old_age   Always       -       0/0
235 Power_Loss_Cap_Test     0x0033   100   100   010    Pre-fail  Always       -       2643 (29 65535)
241 Host_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       858138
242 Host_Reads_32MiB        0x0032   100   100   000    Old_age   Always       -       72932
243 NAND_Writes_32MiB       0x0032   100   100   000    Old_age   Always       -       1596552
BOOBLIK ★★★★
() автор топика
Ответ на: комментарий от BOOBLIK

При этом в соседней ноде время наработки на таком же массиве:

Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       4543

Что-то у меня закрадываются подозрения в том, что когда «менее года назад» делали инсталл, то взяли диски не из той стопочки…

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

Оба всё крышка имхо.
Available_Reservd_Space по нулям у обоих.
Uncorrectable_Error_Cnt есть у обоих.
Reallocated_Sector_Ct есть у обоих.

Короче делай бекапы и на диски не пиши больше ничего ценного.

u5er
()
Последнее исправление: u5er (всего исправлений: 1)
Ответ на: комментарий от anc

Не знаю, что значит «свеже-проштамповаными». Я под «все читаемые» подразумевал «все читаемые драйвером ФС». NAND флеш, вроде как, может вернуть ошибку записи (program error) и в этом случае контроллер SSD пометит этот блок плохим и запишет в другой и даже Reallocated_Sector_Ct не должен увеличивать.

Хотя, если End-to-End_Error_Count означает проблемы с электроникой, то вобще пофиг, что я там писал.

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

Если ФС только создана, то все читаемые блоки должны быть свежезаписаными, remap'нутыми, если что.

Но с чего бы это должно произойти? «Создание фс» != «мы запишем во все сектора носителя».

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

Да почему все сектора? Мы же не можем считать произвольный сектор через вызовы ФС (read, mmap). Может считать содержимое файла, куда ранее записали. При чтении файла будет считано содержимое каталога, куда ранее было записано его имя. Будут прочитаны другие метаданные, но их ранее тоже записали. Иначе как ФС работает? Дравер что, читает сектор, куда он ранее ни разу ни писал, получает мусор, распихивает его по своим структурам?

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

Дак, ещё поди и SMART после инсталла не сохранили :) ИМХО, лучше всегда сохранять SMART сразу после ввода в эксплуатацию, чтобы потом было с чем сравнивать текущие показатели.

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

Available_Reservd_Space по нулям

У этих моделей так с завода, всегда RAW по нулям, нужно смотреть на нормализированое, а там всё хорошо. И по объёму записи этим SSD сильно далеко до заявленого ресурса.

А вот что именно End-to-End_Error_Count никто не знает, якобы там в буфер, который на SSD, данные (сектора) сохраняются с избыточной информацией, как на флеше. И, если, при чтении данных с этого буфера они не совпадают, то растёт это счётчик.

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

End-to-End_Error_Count

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

Ещё можешь селф-тест прогнать до кучи, но в первую очередь бекап.

u5er
()
Ответ на: комментарий от anc

Повторю ещё раз.

Я под «все читаемые» подразумевал «все читаемые драйвером ФС»

Я не считаю нормальной ситуацию, когда сначала делают mke2fs /dev/sdc1, а потом начинают тестировать с помощью dd if=/dev/sdc1 или fio /dev/sdc1. Если уж создали ФС, то и все тесты через драйвер ФС, всё чтение данных, ведущее к чтению секторов, через драйвер ФС.

mky ★★★★★
()

184 End-to-End_Error это скорее проблема хоста, кабеля.
С ssd скорее всего будет норм.
Во всяком случае, когда у меня такое было, переставил SSD в другой аппарат, и там он живет замечательно.
Правда до этого нахватал ошибок до FAILING_NOW.
Как сбросить - не знаю. Но на это можно забить, если не растут.

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

Тестами пусть ТС занимается, это его SSD. Хотя, если это конторские, то чего зря время тратить на тесты, замена на новые и всё, контора платит. Мне вот стало интерестно, неужели в мире SSD контроллеров и DRAM-буферов всё настолько плохо, что для серверных SSD, где железо должно быть поприличнее, изобрели End-to-End Data Protection.

И в этом топике пример отказа через 21 килочас (2,5 года). Что же тогда в потребительском сегменте? Мои любымые фоточки мутируют, а я даже не узнаю об этом :))

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

Я не считаю нормальной ситуацию, когда сначала делают mke2fs /dev/sdc1, а потом начинают тестировать с помощью dd if=/dev/sdc1 или fio /dev/sdc1.

Оно и без mkfs не очень правильно для тестирования диска.

Если уж создали ФС, то и все тесты через драйвер ФС, всё чтение данных, ведущее к чтению секторов, через драйвер ФС.

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

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

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

Они скорее всего просто сдохнут, но вы об этом таки узнаете. :)

anc ★★★★★
()