Mengapa drive SSD ini gagal dengan bad sector, dan apakah dapat diprediksi?

15

Catatan: pertanyaan ini sebelumnya ditutup sebagai di luar topik. Anda bisa membaca diskusi . Alasan saya untuk bertanya di sini adalah:

  • Drive ini ada di server cache konten offline untuk sekolah di pedesaan Zambia.
  • Server dibuat dari gambar disk, dan semua konten dapat diganti.
  • Itu harus murah karena sekolah-sekolah Zambia terbatas anggaran dan akan ada banyak.
  • Itu juga harus dapat diandalkan karena mungkin 8 jam setiap jalan di jalan yang buruk untuk menggantikan.
  • Saya tidak diizinkan bertanya di sini drive apa yang bukan "omong kosong ultra-murah".
  • Jadi kami sedang melakukan penelitian dan eksperimen kami sendiri pada drive yang memenuhi kriteria ini.
  • Ketidakmampuan saya untuk memperbaiki sektor-sektor buruk dengan menimpanya (merelokasi kembali) membantah asumsi saya dan saya ingin tahu mengapa.
  • Saya pikir mungkin ERASE KEAMANAN mungkin memperbaiki sektor buruk, tetapi menginginkan pendapat orang lain sebelum saya membuang drive.
  • Saya pikir saya mungkin telah melewatkan sesuatu dalam data SMART yang bisa memprediksi kegagalan.

Ini adalah disk Kingston 240GB SSD yang berfungsi dengan baik di situs selama sekitar 3 bulan, dan tiba-tiba mengembangkan sektor buruk:

smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.20-net6501-121115-1cw] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     KINGSTON SVP200S3240G
Serial Number:    50026B7228010E5C
LU WWN Device Id: 5 0026b7 228010e5c
Firmware Version: 502ABBF0
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ACS-2 revision 3
Local Time is:    Tue Mar  5 17:10:24 2013 CAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x02) Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  48) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x0021) SCT Status supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   084   084   050    Pre-fail  Always       -       10965286670575
  5 Reallocated_Sector_Ct   0x0033   100   100   003    Pre-fail  Always       -       16
  9 Power_On_Hours          0x0032   000   000   000    Old_age   Always       -       46823733462185
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       127
171 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
174 Unknown_Attribute       0x0030   000   000   000    Old_age   Offline      -       131
177 Wear_Leveling_Count     0x0000   000   000   000    Old_age   Offline      -       1
181 Program_Fail_Cnt_Total  0x0032   000   000   000    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   000   000   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   000   000   000    Old_age   Always       -       49900
194 Temperature_Celsius     0x0022   033   078   000    Old_age   Always       -       33 (Min/Max 21/78)
195 Hardware_ECC_Recovered  0x001c   120   120   000    Old_age   Offline      -       235163887
196 Reallocated_Event_Count 0x0033   100   100   003    Pre-fail  Always       -       16
201 Soft_Read_Error_Rate    0x001c   120   120   000    Old_age   Offline      -       235163887
204 Soft_ECC_Correction     0x001c   120   120   000    Old_age   Offline      -       235163887
230 Head_Amplitude          0x0013   100   100   000    Pre-fail  Always       -       100
231 Temperature_Celsius     0x0013   100   100   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0000   000   000   000    Old_age   Offline      -       363
234 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       208
241 Total_LBAs_Written      0x0032   000   000   000    Old_age   Always       -       208
242 Total_LBAs_Read         0x0032   000   000   000    Old_age   Always       -       1001

SMART Error Log not supported
SMART Self-test Log not supported
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.

Sekarang saya mendapatkan blok buruk di tempat-tempat tertentu pada disk:

root@iPad2:~# badblocks /dev/sda -v
Checking blocks 0 to 234431063
Checking for bad blocks (read-only test): 8394752 done, 1:15 elapsed
8394756 done, 1:21 elapsed
8394757 done, 1:23 elapsed
8394758 done, 1:24 elapsed
8394759 done, 1:27 elapsed
...
190882871one, 29:49 elapsed
190882888one, 29:53 elapsed
190882889one, 29:54 elapsed
190882890one, 29:56 elapsed
190882891one, 29:58 elapsed
done                                
Pass completed, 80 bad blocks found.

Mereka tampaknya dapat diulang, dan realokasi otomatis gagal, sehingga mereka tidak dapat diperbaiki dengan menulis kepada mereka:

root@iPad2:~# badblocks /dev/sda -wvf 8394756 8394756
/dev/sda is apparently in use by the system; badblocks forced anyway.
Checking for bad blocks in read-write mode
From block 8394756 to 8394756
Testing with pattern 0xaa: 8394756
done                                
Reading and comparing: done                                
Testing with pattern 0x55: done                                
Reading and comparing: done                                
Testing with pattern 0xff: done                                
Reading and comparing: done                                
Testing with pattern 0x00: done                                
Reading and comparing: done                                
Pass completed, 1 bad blocks found.

Dan saya mendapatkan kesalahan seperti ini di log sistem:

ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
ata1.00: irq_stat 0x40000000
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:00:08:30:00/00:00:01:00:00/40 tag 0 ncq 4096 in
         res 51/40:08:08:30:00/00:00:01:00:00/40 Emask 0x409 (media error) <F>
ata1.00: status: { DRDY ERR }
ata1.00: error: { UNC }
ata1.00: configured for UDMA/133
sd 0:0:0:0: [sda] Unhandled sense code
sd 0:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:0:0: [sda]  Sense Key : Medium Error [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
        72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
        01 00 30 08 
sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
sd 0:0:0:0: [sda] CDB: Read(10): 28 00 01 00 30 08 00 00 08 00
end_request: I/O error, dev sda, sector 16789512
Buffer I/O error on device sda, logical block 2098689
ata1: EH complete

Sekarang saya tidak mengerti mengapa auto reallocate gagal pada disk ini. The smartctlOutput semua tampak baik-baik saja dengan saya. Hanya 16 sektor yang telah dialokasikan kembali, itu tidak banyak sama sekali. Saya tidak dapat melihat alasan yang sah mengapa drive ini menolak untuk merealokasi sektor. Apakah model SSD ini hanya rusak atau dirancang dengan buruk?

Catatan:

  • atribut 174 adalah "Kehilangan Daya Tidak Terduga" menurut dokumen Kingston.
  • Kehilangan daya yang tidak terduga sangat buruk.
  • atribut 187 (Reported_Uncorrect) adalah 49900 dari kemungkinan maksimum 65535
  • suhu tertinggi yang pernah cukup tinggi pada 78'C

Counter SMART paling menarik disembunyikan oleh Kingston di drive ini. Tetapi kita dapat menyimpulkan jumlah sektor cadangan dari dari atribut 196. Reallocated_Event_Count, yang memiliki rumus berikut untuk nilai normal:

100 -(100* RBC / MRC)
RBC = Retired Block Count (Grown)
MRE = Maximum reallocation count

Karena nilai yang dinormalisasi adalah 100, ini menyiratkan bahwa RBC << MRE, jadi kami tidak pernah kehabisan semua sektor yang tersedia untuk realokasi.

qris
sumber
3
Data SMART Anda tidak menunjukkan masalah signifikan. Sudahkah Anda menguji disk ini pada pengontrol yang berbeda dengan kabel yang berbeda untuk menghilangkan kemungkinan masalah perangkat keras lainnya?
Michael Hampton
1
Saya belum mencoba pengontrol / kabel lain, karena beberapa sektor membaca dengan baik berulang-ulang dan yang lainnya kesalahan berulang. Saya menyimpulkan dari sini bahwa kesalahan ada di drive, bukan dengan controller atau kabel.
qris
1
Pengurangan Anda salah karena hal yang persis sama dapat terjadi dengan pengontrol atau kabel yang buruk (meskipun kabel harus sedikit lebih tidak menentu, tetapi tetap patut untuk dicoba).
gparent
3
@pihak Pengurangan tidak harus salah; hanya logika yang membawa kesimpulan. Dorongan itu mungkin saja penyebabnya, tetapi alasannya untuk berpikir demikian memiliki dasar yang kecil. Bagaimanapun, ia harus menguji pada pengontrol / kabel lain seperti yang disarankan.
Chris S
Ya, itu yang saya pikir baru saja saya katakan. Saya pikir Anda dapat dengan aman mempertimbangkan perbedaan sebagai bagian dari hambatan bahasa karena saya setuju sepenuhnya dengan komentar Anda.
gparent

Jawaban:

2

SSD murah tampaknya memiliki masalah kualitas yang serius. Anda akan menemukan banyak pengguna yang memiliki masalah dengan drive khusus Anda. Namun saya berpikir bahwa vendor juga menjual drive yang berbeda (mis. Dengan chip / pengontrol NAND lainnya) di bawah label yang sama. Jadi setiap drive mungkin berperilaku berbeda.

Nilai-nilai SMART tidak memberikan indikasi bahwa drive akan segera gagal. Dalam pengalaman saya itu sama: Tiba-tiba terjadi kesalahan drive dan kemudian disk gagal.

Apa alasan Anda mengapa Anda menggunakan SSD? Saya melihat kelebihan SSD karena tidak ada komponen mekanis dan karena tahan debu dan menghasilkan lebih sedikit panas. Namun saya juga melihat banyak kerugian.

mis., jumlah penulisan ke sel memori tunggal yang bahkan dengan tingkat keausan dapat dicapai dengan cepat pada volume yang sibuk misalnya ketika Anda menggunakan sistem file dengan penjurnalan.

Dan elektronik juga dipengaruhi oleh kelembaban tinggi atau suhu tinggi - sama dengan hard drive konvensional.

Mengapa tidak menggunakan hard drive konvensional yang lebih murah sebagai gantinya dan (jika tidak diperlukan razia) kirimkan server dengan drive cadangan yang tidak terhubung sampai mereka diperlukan sebagai pengganti (sudah ada di kasing server atau dipasang di kandang hot-swap sehingga disk dapat digunakan di server yang berbeda). Kemudian mereka bisa dipersiapkan oleh skrip di lapangan atau dari jarak jauh (jika memungkinkan).

Selama hard drive konvensional tidak dihidupkan, transportasi ke tujuan mereka dapat menjadi kasar ...

Jika ada beberapa server sekolah / klien permanen dan jaringan yang dapat diandalkan / redundan, mungkin sistem file terdistribusi juga dapat membantu untuk membuat server cache yang gagal (misalnya dengan menggunakan glusterfs).

Reiner Rottmann
sumber
Terima kasih Brian, saya menerima jawaban ini karena saya tidak punya jawaban yang lebih baik. Pengalaman saya dengan hard disk adalah bahwa sektor dapat dialokasikan kembali dan karenanya pemulihan dimungkinkan. Anda benar tentang alasan menggunakan SSD. Pemeriksaan debu adalah masalah besar bagi Zambia. Drive tidak akan sering ditulis, sebagian besar konten bersifat statis. Elektronik keadaan padat kurang terpengaruh oleh panas dan kelembaban dibandingkan karat yang berputar. RAIDing hard disk telah terjadi pada kami, tetapi kami berharap SSD akan lebih andal dan dengan demikian menghemat uang. Mungkin kita salah. Dan sekolah memiliki konektivitas yang sangat buruk sehingga glusterfs keluar.
qris