เหตุใด SSD ไดรฟ์นี้จึงล้มเหลวด้วยเซกเตอร์เสียและสามารถคาดเดาได้


15

หมายเหตุ: คำถามนี้ถูกปิดก่อนหน้านี้เป็นนอกหัวข้อ คุณสามารถอ่านการอภิปราย เหตุผลของฉันสำหรับการถามที่นี่คือ:

  • ไดรฟ์นี้อยู่ในเซิร์ฟเวอร์แคชเนื้อหาออฟไลน์สำหรับโรงเรียนในชนบทแซมเบีย
  • เซิร์ฟเวอร์ถูกสร้างจากดิสก์อิมเมจและเนื้อหาทั้งหมดนั้นสามารถเปลี่ยนได้
  • จะต้องมีราคาถูกเพราะโรงเรียนแซมเบียมีงบประมาณ จำกัด และจะมีจำนวนมาก
  • นอกจากนี้ยังต้องเชื่อถือได้เพราะอาจใช้เวลา 8 ชั่วโมงในการเปลี่ยนถนนที่ไม่ดีในแต่ละครั้ง
  • ฉันไม่ได้รับอนุญาตให้ถามที่นี่ว่าไดรฟ์ไม่ใช่ "อึพิเศษราคาถูก"
  • ดังนั้นเราจึงทำการวิจัยและการทดลองกับไดรฟ์ที่ตรงกับเกณฑ์เหล่านี้
  • การไม่สามารถซ่อมแซมเซกเตอร์ที่ไม่ดีได้โดยเขียนทับพวกเขา (การจัดสรรอัตโนมัติ) ท้าทายสมมติฐานของฉันและฉันต้องการรู้ว่าทำไม
  • ฉันคิดว่าบางทีการลบความปลอดภัยอาจแก้ไขเซกเตอร์เสีย แต่ต้องการความคิดเห็นของผู้อื่นก่อนที่ฉันจะทิ้งไดรฟ์
  • ฉันคิดว่าฉันอาจพลาดบางสิ่งในข้อมูล SMART ที่สามารถทำนายความล้มเหลวได้

นี่คือดิสก์ Kingston 240GB SSD ที่ทำงานได้ดีในไซต์เป็นเวลาประมาณ 3 เดือนและมีการพัฒนาเซ็กเตอร์ที่ไม่ดี:

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.

ตอนนี้ฉันได้บล็อกที่ไม่ดีในบางที่บนดิสก์:

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.

ดูเหมือนว่าจะทำซ้ำได้และการจัดสรรอัตโนมัติล้มเหลวดังนั้นจึงไม่สามารถแก้ไขได้โดยเขียนถึง:

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.

และฉันได้รับข้อผิดพลาดเช่นนี้ในบันทึกของระบบ:

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

ตอนนี้ฉันไม่เข้าใจว่าเหตุใดการจัดสรรอัตโนมัติจึงล้มเหลวในดิสก์นี้ smartctlการส่งออกทั้งหมดดูดีกับผม มีเพียง 16 ภาคที่ได้รับการจัดสรรใหม่ซึ่งไม่มากเลย ฉันไม่เห็นเหตุผลที่ถูกต้องว่าทำไมไดรฟ์นี้ปฏิเสธที่จะจัดสรรภาคใหม่ SSD รุ่นนี้หักหรือออกแบบมาไม่ดีหรือไม่?

หมายเหตุ:

  • คุณลักษณะ 174 คือ "การสูญเสียพลังงานที่ไม่คาดคิด" ตามเอกสารของ Kingston
  • 131 การสูญเสียพลังงานที่ไม่คาดคิดค่อนข้างแย่
  • แอตทริบิวต์ 187 (Reported_Uncorrect) คือ 49900 จากค่าสูงสุดที่เป็นไปได้ 65535
  • อุณหภูมิสูงสุดที่เคยสูงมากที่ 78'C

ตัวนับ SMART ที่น่าสนใจที่สุดถูกซ่อนไว้โดย Kingston ในไดรฟ์นี้ แต่เราสามารถอนุมานจำนวนของเซกเตอร์สำรองได้จากจากแอตทริบิวต์ 196 Reallocated_Event_Count ซึ่งมีสูตรต่อไปนี้สำหรับค่าปกติ:

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

เนื่องจากค่าปกติคือ 100 นี่ก็หมายความว่า RBC << MRE ดังนั้นเราจึงไม่มีส่วนใดที่จะหมดการจัดสรรใหม่


3
ข้อมูล SMART ของคุณไม่ได้ระบุปัญหาสำคัญใด ๆ คุณได้ทดสอบดิสก์นี้บนคอนโทรลเลอร์ที่แตกต่างกันด้วยสายเคเบิลที่แตกต่างกันเพื่อลดความเป็นไปได้อื่น ๆ ของปัญหาฮาร์ดแวร์หรือไม่
Michael Hampton

1
ฉันยังไม่ได้ลองตัวควบคุม / สายเคเบิลอื่นเนื่องจากบางภาคอ่านได้ซ้ำ ๆ และข้อผิดพลาดอื่น ๆ ซ้ำ ๆ ฉันอนุมานว่านี่เป็นความผิดปกติในไดรฟ์ไม่ใช่กับคอนโทรลเลอร์หรือสายเคเบิล
qris

1
การหักเงินของคุณผิดเพราะสิ่งเดียวกันอาจเกิดขึ้นกับคอนโทรลเลอร์หรือสายเคเบิลที่ไม่ดี (แม้ว่าสายเคเบิลนั้นควรจะเอาแน่เอานอนไม่ได้อีกแล้ว
ร่าเริง

3
@ ใสการหักเงินไม่จำเป็นต้องผิด เป็นเพียงตรรกะที่ทำให้เกิดข้อสรุป แรงขับอาจเป็นสาเหตุของความผิดพลาด แต่เหตุผลของเขาในการคิดมีพื้นฐานเพียงเล็กน้อย ไม่ว่าในกรณีใดเขาควรทดสอบตัวควบคุม / สายเคเบิลอื่นตามที่แนะนำ
Chris S

ใช่นั่นคือสิ่งที่ฉันคิดว่าฉันเพิ่งพูดไป ฉันคิดว่าคุณสามารถพิจารณาความแตกต่างได้อย่างปลอดภัยเป็นส่วนหนึ่งของกำแพงภาษาเพราะฉันเห็นด้วยกับความคิดเห็นของคุณอย่างสมบูรณ์
ใจดี

คำตอบ:


2

SSD ราคาถูกดูเหมือนจะมีปัญหาคุณภาพอย่างร้ายแรง คุณจะพบผู้ใช้จำนวนมากที่มีปัญหากับไดรฟ์เฉพาะของคุณ อย่างไรก็ตามฉันคิดว่าผู้ขายยังขายไดรฟ์ที่แตกต่างกัน (เช่นกับชิป / ตัวควบคุม NAND อื่น ๆ ) ภายใต้ป้ายกำกับเดียวกัน ดังนั้นไดรฟ์แต่ละตัวอาจทำงานแตกต่างกัน

ค่าสมาร์ทไม่ได้บ่งชี้ว่าไดรฟ์จะล้มเหลวในไม่ช้า ในประสบการณ์ของฉันมันเหมือนกัน: ข้อผิดพลาดไดรฟ์เกิดขึ้นแล้วดิสก์ล้มเหลว

อะไรคือสาเหตุที่ทำให้คุณใช้ SSD? ฉันเห็นข้อดีของ SSD เนื่องจากไม่มีชิ้นส่วนเครื่องจักรและเนื่องจากมีฝุ่นและผลิตความร้อนน้อยลง อย่างไรก็ตามฉันก็เห็นข้อเสียมากมายเช่นกัน

เช่นจำนวนของการเขียนไปยังเซลล์หน่วยความจำเดียวที่ถึงแม้จะมีระดับการสึกหรอสามารถเข้าถึงได้อย่างรวดเร็วในปริมาณไม่ว่างเช่นเมื่อคุณใช้ระบบไฟล์ที่มีการทำเจอร์นัล

และอิเล็กทรอนิกส์ก็ยังได้รับผลกระทบจากความชื้นสูงหรืออุณหภูมิสูง - เช่นเดียวกับฮาร์ดไดรฟ์ธรรมดา

ทำไมไม่ใช้ฮาร์ดไดรฟ์ทั่วไปที่ราคาถูกกว่าแทนและ (ถ้าไม่ต้องการการจู่โจม) จัดส่งเซิร์ฟเวอร์ที่มีไดรฟ์สำรองที่ไม่ได้เชื่อมต่อจนกว่าจะต้องการเปลี่ยน (มีอยู่แล้วในกรณีเซิร์ฟเวอร์หรือติดตั้งในกรงฮอตสว็อป) ดิสก์อาจใช้ในเซิร์ฟเวอร์อื่น) จากนั้นพวกเขาจะได้รับการจัดทำโดยสคริปต์ในสนามหรือจากระยะไกล (ถ้าเป็นไปได้)

ตราบใดที่ฮาร์ดไดรฟ์ทั่วไปไม่ได้ถูกเปิดใช้งานการขนส่งไปยังปลายทางของพวกเขาอาจจะขรุขระ ...

หากมีเซิร์ฟเวอร์โรงเรียนหลายแห่ง / ไคลเอนต์ถาวรและเครือข่ายที่เชื่อถือได้ / ซ้ำซ้อนระบบไฟล์แบบกระจายอาจช่วยในการสร้างแคชเซิร์ฟเวอร์ที่ไม่ปลอดภัย (เช่นโดยใช้ glusterfs)


ขอบคุณ Brian ฉันยอมรับคำตอบนี้เพราะฉันไม่มีคำตอบที่ดีกว่านี้ ประสบการณ์ของฉันกับฮาร์ดดิสก์คือภาคที่สามารถจัดสรรใหม่และการกู้คืนเป็นไปได้ คุณพูดถูกเกี่ยวกับเหตุผลในการใช้ SSD พิสูจน์อักษรฝุ่นเป็นปัญหาใหญ่สำหรับแซมเบีย ไดรฟ์จะไม่ถูกเขียนบ่อยเนื้อหาส่วนใหญ่เป็นแบบคงที่ อุปกรณ์อิเล็กทรอนิกส์ที่เป็นของแข็งจะได้รับผลกระทบจากความร้อนและความชื้นน้อยกว่าการเกิดสนิมหมุน ฮาร์ดดิส RAIDing นั้นเกิดขึ้นกับเรา แต่เราหวังว่า SSD จะมีความน่าเชื่อถือมากกว่าและประหยัดกว่า บางทีเราผิด และโรงเรียนมีการเชื่อมต่อที่ไม่ดีนักดังนั้น glusterfs จึงไม่ทำงาน
qris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.