Dlaczego ten dysk SSD ulega awarii przy uszkodzonych sektorach i czy był przewidywalny?

15

Uwaga: to pytanie zostało wcześniej zamknięte jako nie na temat. Możesz przeczytać dyskusję . Oto moje powody, dla których o to pytam:

  • Ten dysk znajduje się na serwerze pamięci podręcznej treści offline dla szkół w wiejskiej Zambii.
  • Serwery są tworzone z obrazów dysków, a cała zawartość jest wymienna.
  • To musi być tanie, ponieważ zambijskie szkoły mają ograniczony budżet i będzie ich dużo.
  • Musi być również niezawodny, ponieważ wymiana na złych drogach może zająć 8 godzin w jedną stronę.
  • Nie wolno mi tutaj pytać, które dyski nie są „ultra tanie badziewie”.
  • Więc prowadzimy własne badania i eksperymenty na dyskach, które spełniają te kryteria.
  • Moja niezdolność do naprawy uszkodzonych sektorów poprzez ich zastąpienie (automatyczne przeniesienie) była sprzeczna z moimi założeniami i chciałem wiedzieć, dlaczego.
  • Pomyślałem, że może USUWANIE BEZPIECZEŃSTWA może naprawić złe sektory, ale chciałem opinii innych, zanim wyrzucę dysk.
  • Myślałem, że mogłem coś przeoczyć w danych SMART, co mogło przewidzieć awarię.

Jest to dysk SSD Kingston 240 GB, który działał dobrze na miejscu przez około 3 miesiące i nagle rozwinął złe sektory:

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.

Teraz dostaję złe bloki w niektórych miejscach na dysku:

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.

Wyglądają na powtarzalne, a automatyczna realokacja kończy się niepowodzeniem, więc nie można ich naprawić, pisząc do nich:

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.

I dostaję takie błędy w dziennikach systemowych:

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

Teraz nie rozumiem, dlaczego automatyczne przeniesienie kończy się niepowodzeniem na tym dysku. smartctlWyjście wszystko wygląda dobrze do mnie. Przydzielono tylko 16 sektorów, to niewiele. Nie widzę żadnego uzasadnionego powodu, dla którego ten dysk odmawia realokacji sektorów. Czy ten model dysku SSD jest zepsuty lub źle zaprojektowany?

Uwagi:

  • atrybut 174 to „Nieoczekiwana utrata mocy” według dokumentów Kingstona.
  • 131 nieoczekiwanych strat mocy jest dość zła.
  • atrybut 187 (Reported_Uncorrect) to 49900 z możliwego maksimum 65535
  • najwyższa jak dotąd temperatura jest dość wysoka w 78'C

Najwięcej ciekawych SMART liczniki są ukryte przez Kingston na tym dysku. Możemy jednak wnioskować o liczbie wolnych sektorów na podstawie atrybutu 196. Reallocated_Event_Count, który ma następującą formułę dla wartości znormalizowanej:

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

Ponieważ znormalizowana wartość wynosi 100, oznacza to, że RBC << MRE, więc nie jesteśmy bliscy wyczerpania wszystkich dostępnych sektorów do realokacji.

qris
źródło
3
Twoje dane SMART nie wskazują na żadne znaczące problemy. Czy przetestowałeś ten dysk na innym kontrolerze za pomocą innego kabla, aby wyeliminować inne możliwości problemów ze sprzętem?
Michael Hampton
1
Nie próbowałem jeszcze innego kontrolera / kabla, ponieważ niektóre sektory powtarzają się poprawnie, a inne powtarzają błędy. Wnioskuję z tego, że usterka dotyczy napędu, a nie kontrolera lub kabla.
qris
1
Twoje odliczenie jest błędne, ponieważ dokładnie to samo może się zdarzyć przy złym kontrolerze lub kablu (choć kabel powinien być nieco bardziej chaotyczny, ale i tak warto spróbować).
gparent
3
@ rodzicem Odliczenie niekoniecznie jest złe; tylko logika, która doprowadziła do wniosku. Przyczyną może być popęd, ale jego powody do myślenia są niewielkie. W każdym razie powinien przetestować inny kontroler / kabel zgodnie z sugestią.
Chris S
Tak, właśnie tak powiedziałem. Myślę, że możesz bezpiecznie rozważyć wszelkie różnice jako część bariery językowej, ponieważ całkowicie zgadzam się z twoim komentarzem.
gparent

Odpowiedzi:

2

Tanie dyski SSD wydają się mieć poważne problemy z jakością. Znajdziesz wielu użytkowników, którzy mają problemy z konkretnym dyskiem. Myślę jednak, że producenci sprzedają również różne dyski (np. Z innymi układami / kontrolerami NAND) pod tą samą etykietą. Dlatego każdy dysk może zachowywać się inaczej.

Wartości SMART nie wskazują, że dysk wkrótce się zepsuje. Z mojego doświadczenia wynika, że ​​to samo: nagle pojawiają się błędy napędu, a następnie dysk ulega awarii.

Z jakich powodów korzystasz z dysków SSD? Widzę zalety dysków SSD, ponieważ nie ma części mechanicznych i są one pyłoszczelne i wytwarzają mniej ciepła. Widzę jednak również wiele wad.

np. liczba zapisów do pojedynczej komórki pamięci, która nawet przy wyrównywaniu zużycia może być szybko osiągnięta na zajętym wolumenie, np. gdy używasz systemu plików z kronikowaniem.

Na elektronikę wpływa również wysoka wilgotność lub wysokie temperatury - tak samo jak w przypadku tradycyjnych dysków twardych.

Zamiast tego skorzystaj z tańszych konwencjonalnych dysków twardych i (jeśli nie jest wymagany RAID) dostarcz serwer z zapasowymi dyskami, które nie są podłączone, dopóki nie będą potrzebne jako zamienniki (już obecne w obudowie serwera lub zamontowane w klatce typu hot-swap, dzięki czemu dysk może być używany na różnych serwerach). Następnie mogą zostać przygotowani przez skrypt w terenie lub zdalnie (jeśli to możliwe).

Dopóki konwencjonalne dyski twarde nie są zasilane, transport do miejsca docelowego może być trudny ...

Jeśli istnieje wiele szkolnych serwerów / stałych klientów i niezawodna / redundantna sieć, być może rozproszony system plików może również pomóc w stworzeniu bezpiecznego serwera pamięci podręcznej (np. Przy użyciu glusterfs).

Reiner Rottmann
źródło
Dzięki Brian, akceptuję tę odpowiedź, ponieważ nie mam lepszych. Moje doświadczenie z dyskami twardymi polega na tym, że sektory mogą być ponownie przydzielane, a zatem odzyskiwanie jest możliwe. Masz rację co do powodów korzystania z dysków SSD. Odporność na kurz to duży problem dla Zambii. Dyski nie będą zapisywane często, większość treści jest statyczna. Na elektronikę półprzewodnikową ma mniejszy wpływ ciepła i wilgoci niż wirująca rdza. Przyszło nam do głowy dyski twarde RAID, ale mieliśmy nadzieję, że dyski SSD będą bardziej niezawodne, a tym samym zaoszczędzą pieniądze. Być może się myliliśmy. A szkoły mają bardzo słabą łączność, więc glusterfs jest niedostępny.
qris