Co oznaczają te błędy dysku w syslog?

13

Właśnie zrestartowałem mój serwer monitorowania po raz pierwszy od jakiegoś czasu i następujące czynności wypełniają ekran:

Jul 11 23:52:30 monit kernel: [   25.255908] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jul 11 23:52:30 monit kernel: [   25.256170] ata1.00: BMDMA stat 0x24
Jul 11 23:52:30 monit kernel: [   25.256278] ata1.00: failed command: READ DMA
Jul 11 23:52:30 monit kernel: [   25.256410] ata1.00: cmd c8/00:c0:20:68:35/00:00:00:00:00/e0 tag 0 dma 98304 in
Jul 11 23:52:30 monit kernel: [   25.256416]          res 51/40:9f:41:68:35/00:00:00:00:00/e0 Emask 0x9 (media error)
Jul 11 23:52:30 monit kernel: [   25.256809] ata1.00: status: { DRDY ERR }
Jul 11 23:52:30 monit kernel: [   25.256933] ata1.00: error: { UNC }
Jul 11 23:52:30 monit kernel: [   25.304388] ata1.00: configured for UDMA/66
Jul 11 23:52:30 monit kernel: [   25.304430] ata1: EH complete

. . . 

Jul 11 23:52:30 monit kernel: [   25.552451] sd 0:0:0:0: [sda] Unhandled sense code
Jul 11 23:52:30 monit kernel: [   25.552462] sd 0:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jul 11 23:52:30 monit kernel: [   25.552475] sd 0:0:0:0: [sda]  Sense Key : Medium Error [current] [descriptor]
Jul 11 23:52:30 monit kernel: [   25.552490] Descriptor sense data with sense descriptors (in hex):
Jul 11 23:52:30 monit kernel: [   25.552498]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
Jul 11 23:52:30 monit kernel: [   25.552529]         00 35 68 41 
Jul 11 23:52:30 monit kernel: [   25.552543] sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
Jul 11 23:52:30 monit kernel: [   25.552559] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 00 35 68 20 00 00 c0 00
Jul 11 23:52:30 monit kernel: [   25.552587] end_request: I/O error, dev sda, sector 3500097
Jul 11 23:52:30 monit kernel: [   25.556607] ata1: EH complete

I już wiem, że trzeba wymienić HDD (koszt danych> Koszt HDD), ale chcę wiedzieć, dla własnej wiedzy, co się właściwie złego.

Tak, nasz serwer monitorowania nie ma RAID, tylko jeden dysk twardy ... Nie patrz na mnie ...

Soviero
źródło
3
„Tak, nasz serwer monitorowania nie ma macierzy RAID, tylko jeden dysk twardy… Nie patrz na mnie…” - nie patrząc zbyt wiele, jeśli masz dobre kopie zapasowe.
Janne Pikkarainen,
2
Mam nadzieję, że masz dobre kopie zapasowe. Prawdopodobnie będziesz ich potrzebować. Jeśli serwer monitorowania jest tak ważny, koszt wymiany dysku twardego na przynajmniej RAID 1 powinien być łatwo uzasadniony.
Michael Hampton
1
Nawet jeśli nie masz macierzy RAID, powinieneś monitorować dane SMART dla wszystkich swoich dysków.
James Youngman

Odpowiedzi:

16
sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed

Wygląda na to, że dysk ma uszkodzone sektory i nie może ich ponownie przydzielić (być może dlatego, że zabrakło wolnych sektorów). Dane wyjściowe smartctl -a /dev/sdapodają więcej informacji o stanie dysku.

mgorven
źródło
Widziałem także ten błąd występujący podczas prostego odczytu (powiedzmy, próbując do cppliku). W takim przypadku uszkodzenie pliku w sektorze, który się zepsuło, było na tyle poważne, że nie było nawet w stanie zrekonstruować danych, więc awaria „realokacji” naprawdę wystąpiła, zanim mogła nawet spróbować zapisać dane w innym miejscu.
Randall
12

Lassie mówi „arf! Arf arf! Arf!”. Co jest głupie, ponieważ nie ma to nic wspólnego z Timmy'm ani studniami. Dlatego nie bierzesz rady sysadmin od psów.

Na dysku pojawia się komunikat „Nieodkryty błąd odczytu - automatyczne przeniesienie nie powiodło się”, co w zasadzie oznacza „Próbowałem odczytać, nie udało mi się, próbowałem odzyskać (odczytać sektor jeszcze kilka razy, zastosować ECC i przenieść dane do sektor, który nie jest zepsuty) i nie działał ". Prawdopodobnie oznacza to (jak mówi mgorven), że dysk jest już wypełniony ponownie przeniesionymi sektorami, ponieważ dysk umiera od dłuższego czasu, ale myślę też, że może to oznaczać, że nie był w stanie odzyskać sektora (powtarzane odczyty) + ECC nie udało się uzyskać dobrze wyglądającego bloku danych).

Tak czy inaczej, tak, jazda to bardzo, bardzo kaktus. Twoje dane też nie wyglądają naprawdę zdrowo.

womble
źródło
1
Racja - dane SMART mogą również informować o tym, ile sektorów zostało już realokowanych.
James Youngman
3

Wiem, że to stare, ale na wypadek, gdyby ktoś nadal czytał ten post: „DD spróbuje również odczytać uszkodzony sektor (sektory)” - gddrescue jest tu przydatny. Nie robi tego (dobrze, ale tylko raz).

Wolfgang Noichl
źródło
1

Utwórz obraz dd lub kopię rsync tego dysku teraz ++, chyba że masz pełną kopię zapasową umożliwiającą wygodne przywrócenie tego pudełka. I zacznij szukać kompatybilnego i działającego dysku zastępczego.

BTW, UDMA / 66, czy to dziesięcioletni dysk PATA?

rackandboneman
źródło
2
DD spróbuje również odczytać uszkodzony sektor (sektory).
Hennes,
3
Zwykle nie w najlepszym przypadku ... istnieje zaawansowana wersja o nazwie ddrescue z lepszą kontrolą nad błędami.
rackandboneman
Zawsze tak jest conv=noerror, ale nie jestem pewien, jak dobrze działa to, co stanie się uszkodzonym systemem plików. Prawdopodobnie nie gorsze niż czytanie pliku danych po pliku, ale na pewno nie lepsze ...
CVn
0

Jak już wspomniano, najprawdopodobniej oznacza to, że dysk zbliża się do końca, ale niekoniecznie natychmiast - należy uruchomić fsckdysk na dysku i spróbować naprawić błędy ( porady na temat naprawy uszkodzonych bloków można znaleźć na wiki smartmontools ), a dysk może być w porządku jeszcze dłużej.

Ale powinieneś zacząć uruchamiać smartd(który jest częścią smartmontoolspakietu) i obserwować jego raporty i / lub konfigurować powiadomienia e-mail. Możesz także dodawać własne powiadomienia, tworząc skrypty (in /etc/smartmontools/run.d/), które są wywoływane przez smartd-runner.

Pierz
źródło