Apa artinya kesalahan disk ini di syslog?

13

Saya baru saja reboot server pemantauan saya untuk pertama kalinya, dan mulai mengisi layar berikut:

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

Saya sudah tahu saya harus mengganti HDD (Biaya Data> Biaya HDD), tetapi saya ingin tahu sepengetahuan saya sendiri apa yang sebenarnya salah dengannya.

Ya, server pemantauan kami tidak memiliki RAID, hanya satu HDD ... Jangan lihat saya ...

Soviero
sumber
3
"Ya, server pemantauan kami tidak memiliki RAID, hanya satu HDD ... Jangan lihat saya ..." - tidak terlihat terlalu banyak, jika Anda memiliki cadangan yang baik.
Janne Pikkarainen
2
Saya harap Anda memiliki cadangan yang bagus. Anda mungkin akan membutuhkannya. Jika server pemantauan sangat penting, biaya penggantian hard drive dengan setidaknya RAID 1 harus mudah dibenarkan.
Michael Hampton
1
Bahkan jika Anda tidak memiliki RAID, Anda harus memantau data SMART untuk semua disk Anda.
James Youngman

Jawaban:

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

Sepertinya drive memiliki sektor buruk dan tidak dapat merealokasi ini (mungkin karena kehabisan sektor cadangan). Output dari smartctl -a /dev/sdaakan memberi Anda informasi lebih lanjut tentang keadaan drive.

Mgorven
sumber
Saya juga melihat kesalahan ini terjadi pada pembacaan sederhana (dari, katakanlah, mencoba ke cpfile). Dalam hal ini, kerusakan pada file di sektor yang memburuk cukup parah sehingga bahkan tidak dapat merekonstruksi data, sehingga kegagalan "realokasi" benar-benar terjadi sebelum bahkan dapat mencoba untuk menyimpan data di tempat lain.
Randall
12

Pepatah Lassie "arf! Arf arf! Arf!". Yang bodoh, karena ini tidak ada hubungannya dengan Timmy atau sumur. Inilah sebabnya mengapa Anda tidak menerima saran sysadmin dari anjing.

Drive memberi Anda "Kesalahan baca yang belum pulih - realokasi otomatis gagal", yang pada dasarnya berarti "Saya mencoba membaca, saya gagal, saya mencoba memulihkan (membaca sektor ini beberapa kali lagi, menerapkan beberapa ECC, dan memindahkan data ke sebuah sektor yang tidak rusak), dan tidak berfungsi ". Ini mungkin berarti (seperti yang dikatakan Mgorven) bahwa disk sudah penuh dengan sektor yang dialokasikan kembali, karena disk sudah sekarat untuk sementara waktu, tetapi saya juga berpikir itu bisa berarti bahwa ia tidak dapat memulihkan sektor sama sekali (berulang kali dibaca + ECC gagal mendapatkan blok data yang terlihat bagus).

Either way, ya, drive itu sangat, sangat kaktus. Data Anda juga tidak terlihat sehat.

womble
sumber
1
Benar - data SMART juga dapat memberi tahu Anda berapa banyak sektor yang telah dialokasikan kembali.
James Youngman
3

Saya tahu ini sudah tua, tetapi kalau-kalau ada yang masih membaca posting ini: "DD juga akan mencoba membaca sektor yang rusak" - gddrescue berguna di sini. Tidak (oke, memang, tapi hanya sekali).

Wolfgang Noichl
sumber
1

Buat gambar dd atau salin rsync dari disk tersebut sekarang ++, kecuali jika Anda memiliki cadangan lengkap yang memungkinkan pemulihan nyaman kotak itu. Dan mulailah mencari disk pengganti yang kompatibel dan berfungsi.

BTW, UDMA / 66, apakah itu disk PATA berusia sepuluh tahun?

pemeras dan prajurit
sumber
2
DD juga akan mencoba membaca sektor yang rusak.
Hennes
3
Biasanya tidak dengan efek terbaik ... ada versi lanjutan yang disebut ddrescue dengan kontrol yang lebih baik atas perilaku kesalahan.
rackandboneman
Selalu ada conv=noerror, tapi saya tidak yakin seberapa baik itu bekerja pada apa yang kemudian akan menjadi sistem file yang rusak. Mungkin tidak lebih buruk daripada membaca file data dengan file, tapi tentu saja tidak lebih baik ...
CVn
0

Seperti yang sudah disebutkan, kemungkinan drive Anda mendekati akhir masa pakainya tetapi tidak harus segera - Anda harus menjalankan fsckdiska dan mencoba memperbaiki kesalahan (lihat wiki smartmontools untuk saran memperbaiki blok buruk) dan disk mungkin tidak apa-apa untuk sementara lebih lama.

Tetapi Anda harus mulai menjalankan smartd(yang datang sebagai bagian dari smartmontoolspaket) dan mengawasi laporannya dan / atau mengatur pemberitahuan email. Anda juga dapat menambahkan pemberitahuan khusus sendiri dengan membuat skrip (dalam /etc/smartmontools/run.d/) yang dipanggil oleh smartd-runner.

Pierz
sumber