จะตรวจสอบชีวิตที่เหลืออยู่ใน SSD หรือระดับการสึกหรอของสื่อได้อย่างไร?


31

เราทุกคนรู้ว่า SSD มีช่วงชีวิตที่กำหนดไว้อย่าง จำกัด ฉันจะตรวจสอบ Linux ได้อย่างไรสถานะสุขภาพปัจจุบันของ SSD คืออะไร

ผลการค้นหาของ Google ส่วนใหญ่จะขอให้คุณค้นหาข้อมูล SMART สำหรับฟิลด์เปอร์เซ็นต์ที่ชื่อว่า Media_Wearout_Indicator หรือตัวบ่งชี้ศัพท์แสงอื่น ๆ เช่น Longterm Data Endurance - ซึ่งไม่มีอยู่ - ใช่ฉันตรวจสอบ SSD สองตัวแล้วทั้งสองไม่มีฟิลด์เหล่านี้ ฉันสามารถค้นหา SSD ตัวที่สามได้ แต่ฉันรู้สึกว่าฟิลด์ไม่ได้มาตรฐาน

เพื่อแสดงให้เห็นถึงปัญหาที่นี่เป็นสองตัวอย่าง


ด้วย SSD ตัวแรกมันไม่ชัดเจนว่าฟิลด์ใดแสดงถึงระดับการสึกหรอ อย่างไรก็ตามมี Unknown_Attribute เพียงหนึ่งรายการที่มีค่า RAW VALUE อยู่ระหว่าง 1 ถึง 100 ดังนั้นฉันสามารถสรุปได้ว่านั่นคือสิ่งที่เรากำลังมองหา:

    $ sudo smartctl -A /dev/sda                                             
    smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-14-generic] (local build)
    Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

    === START OF READ SMART DATA SECTION ===                                 
    SMART Attributes Data Structure revision number: 1                       
    Vendor Specific SMART Attributes with Thresholds:                        
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      5 Reallocated_Sector_Ct   0x0002   100   100   000    Old_age   Always       -       0
      9 Power_On_Hours          0x0002   100   100   000    Old_age   Always       -       6568
     12 Power_Cycle_Count       0x0002   100   100   000    Old_age   Always       -       1555
    171 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       0
    172 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       0
    173 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       57
    174 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       296
    187 Reported_Uncorrect      0x0002   100   100   000    Old_age   Always       -       0
    230 Unknown_SSD_Attribute   0x0002   100   100   000    Old_age   Always       -       190
    232 Available_Reservd_Space 0x0003   100   100   005    Pre-fail  Always       -       0
    234 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       350
    241 Total_LBAs_Written      0x0002   100   100   000    Old_age   Always       -       742687258
    242 Total_LBAs_Read         0x0002   100   100   000    Old_age   Always       -       1240775277

ดังนั้น SSD นี้ใช้ 57% ของอายุการใช้งานของการเขียนใหม่ถูกต้องหรือไม่


เมื่อใช้ดิสก์อื่น SSD_Life_Left ATTRIBUTE โดดเด่น แต่ค่าดิบ 0 ซึ่งบ่งชี้ว่า 0% อายุการใช้งานเหลือ 0% ไม่น่าเป็นไปได้สำหรับ SSD ที่มีสุขภาพดีเว้นแต่ว่ามันจะอยู่ในอันตราย (เราจะเห็นในไม่กี่วัน) และ ถ้ามันใช้ "0% อายุการใช้งาน" ก็เป็นไปไม่ได้สำหรับฮาร์ดดิสก์ที่ชำรุด (สึก = ใช้มานานกว่าหนึ่งปี)

    > sudo /usr/sbin/smartctl -A /dev/sda
    smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.11.6-4-desktop] (SUSE RPM)
    Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

    === START OF READ SMART DATA SECTION ===
    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   104   100   050    Pre-fail  Always       -       0/8415644
      5 Retired_Block_Count     0x0033   100   100   003    Pre-fail  Always       -       0
      9 Power_On_Hours_and_Msec 0x0032   100   100   000    Old_age   Always       -       4757h+02m+17.130s
     12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       1371
    171 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0
    172 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0
    174 Unexpect_Power_Loss_Ct  0x0030   000   000   000    Old_age   Offline      -       52
    177 Wear_Range_Delta        0x0000   000   000   000    Old_age   Offline      -       2
    181 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0
    182 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0
    187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
    194 Temperature_Celsius     0x0022   030   030   000    Old_age   Always       -       30 (Min/Max 30/30)
    195 ECC_Uncorr_Error_Count  0x001c   104   100   000    Old_age   Offline      -       0/8415644
    196 Reallocated_Event_Count 0x0033   100   100   000    Pre-fail  Always       -       0
    231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0
    233 SandForce_Internal      0x0000   000   000   000    Old_age   Offline      -       3712
    234 SandForce_Internal      0x0032   000   000   000    Old_age   Always       -       1152
    241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always       -       1152
    242 Lifetime_Reads_GiB      0x0032   000   000   000    Old_age   Always       -       3072

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

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

ข้อมูลทั้งหมดมีค่า :) เราเริ่มจากหลักการนั้นจากนั้นไปยังข้อมูลที่มีค่ามากกว่า (เช่นภาพถ่ายดิจิตอลของช่างภาพ) และล้ำค่าน้อยกว่า (ระบบปฏิบัติการ - ง่ายต่อการเปลี่ยน แต่การหยุดทำงานและการสูญเสียเวลา / รายได้ถ้าคุณต้อง แทนที่).
Alexios

ไดรฟ์ทั้งสองนั้นอยู่ในขอบเขตความอดทน ไดรฟ์แรกมีเพียงประมาณ 350 GiB ในขณะที่ไดรฟ์ที่สองมี 1.1 TiB อยู่ ฉันไม่แน่ใจว่าเกิดอะไรขึ้นที่นี่ ...
bwDraco

คำตอบ:


19

ในตัวอย่างแรกของคุณสิ่งที่ฉันคิดว่าคุณหมายถึงคือ "Media Wearout Indicator" ในไดรฟ์ Intel ซึ่งเป็นแอตทริบิวต์ 233 ใช่มันมีช่วง 0-100 โดย 100 เป็นไดรฟ์ใหม่ที่ไม่ได้ใช้และ 0 กำลังเสื่อมสภาพอย่างสมบูรณ์ ตาม ouptut ของคุณฟิลด์นี้ดูเหมือนจะไม่อยู่

ในตัวอย่างที่สองของคุณโปรดอ่านเอกสารอย่างเป็นทางการเกี่ยวกับ SSD_Life_Left ตามหน้านั้น:

ค่า RAW ของคุณลักษณะนี้จะเป็น 0 เสมอและไม่มีความหมาย ตรวจสอบ VALUE ปกติแทน มันเริ่มต้นที่ 100 และระบุเปอร์เซ็นต์โดยประมาณของ SDD ชีวิตที่เหลือ โดยทั่วไปจะลดลงเมื่อบล็อก Flash ถูกทำเครื่องหมายว่าไม่ดีให้ดูค่า RAW ของ Retired_Block_Count

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

คุณควรจะสามารถค้นหารายละเอียดไดรฟ์ของคุณและกำหนดกระบวนการที่ใช้ในการทำชิป ชิปกระบวนการ 32nm จะมีความอดทนในการเขียนนานกว่าชิปกระบวนการ 24nm อย่างไรก็ตามดูเหมือนว่า "โดยเฉลี่ย" คุณอาจคาดหวังได้ว่าจะมีการเขียนประมาณ 3,000 ถึง 4,000 ครั้งโดยขั้นต่ำ 1,000 และสูงสุด 6,000 ดังนั้นหากคุณมี SSD ขนาด 64GB คุณควรคาดหวังว่าจะอยู่ที่ไหนสักแห่งในพื้นที่รวม 192TB ถึง 256TB ที่เขียนไปยัง SSD โดยสันนิษฐานว่าเป็นระดับการสึกหรอ

ตัวอย่างเช่นหากคุณใช้งานไดรฟ์ขนาด 11 KBps ไว้อย่างต่อเนื่องคุณอาจคาดว่าจะได้รับการเขียนประมาณ 40 MB ต่อชั่วโมง ที่ 6568 เวลาเปิดทำการคุณได้เขียนประมาณ 260 GB ลงดิสก์ การรู้ว่าคุณอาจจะรักษาประมาณ 200 TB ของการเขียนทั้งหมดก่อนเกิดข้อผิดพลาดคุณมีเวลาประมาณ 600 ปีก่อนความล้มเหลวเนื่องจากการสึกหรอของชิป ดิสก์ของคุณอาจล้มเหลวเนื่องจากตัวเก็บประจุหรือแรงดันไฟฟ้าเสื่อมสภาพ


9
ชัดเจนมากขอบคุณ ความรู้นี้ได้รับการพัฒนาให้เป็นเครื่องมือ GUI ที่ใช้ smartctl หรือ API หลังจากนั้นคำนวณด้วยเครื่องคิดเลขโดยใช้คอมพิวเตอร์เป็นอุปกรณ์อินพุตและนั่งอยู่ข้างหน้าเพราะโปรเซสเซอร์นั้นขัดต่อจิตวิญญาณที่คอมพิวเตอร์คิดค้นขึ้นมา!
Tankman 六四

ดูเหมือนว่าลิงก์ของคุณจะตาย
Skeleton Bow

15

สำหรับ Samsung SSD ตรวจสอบคุณสมบัติ SMART 177 (Wear Leveling Count)

ID # 177 การนับจำนวนการสึกหรอ

แอ็ตทริบิวต์นี้แสดงถึงจำนวนของโปรแกรมสื่อบันทึกและการลบ (จำนวนครั้งที่บล็อกถูกลบ) ค่านี้เกี่ยวข้องโดยตรงกับอายุการใช้งานของ SSD มูลค่าดิบของคุณลักษณะนี้แสดงจำนวนรวมของรอบ P / E

ที่มา: http://www.samsung.com/global/business/sem Semiconductoror/minisite/SSD/M2M/download/07_Communicating_With_Your_SSD.pdf

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

ที่มา: http://www.anandtech.com/show/7173/samsung-ssd-840-evo-review-120gb-250gb-500gb-750gb-1tb-models-tested/3

ฉันขอแนะนำให้คุณอ่านประโยคสุดท้ายนี้เกี่ยวกับค่าที่เกินนั้นด้วยเม็ดเกลือ


การเชื่อมโยงจะตายตอนนี้
แคลคูลัสอัศวิน

ฉันคิดว่าพวกเขามีคำสั่งให้ Wear_Leveling_Count ย้อนหลัง ฉันมี Samsung SSD 2 ตัวและรุ่นที่มีอายุ ~ 4 ปีมี RAW_VALUE ที่ 42 และอีกรุ่นหนึ่งที่มีอายุ ~ 1 เดือนมี RAW_VALUE เท่ากับ 0 ดูเหมือนว่ามันจะเริ่มที่ 0 และเพิ่มขึ้นเรื่อย ๆ
John Eikenberry

4

หากคุณไม่มี SSD ยี่ห้อ Intel: ระวัง !! ฉันมี Samsung SSD และฉันเข้าใจผิดอย่างสิ้นเชิงจากการติดฉลากแอตทริบิวต์ที่ผิดพลาดโดย smartmontools / smartctl หากคุณมีอะไรนอกจาก Intel - คุณอาจพบเรื่องราวความเจ็บปวด (บ้า) ของฉันที่https://askubuntu.com/a/460463/65722 มี ประโยชน์

ขอให้อัตราส่วนของคุณภาพข้อมูลต่อเวลาที่ใช้ขุดดีกว่าของฉัน!


0

มีเซิร์ฟเวอร์ที่มีการ์ด RAID LSIฉันติดตั้ง Samsung SSD 7 ตัวแล้ว

มันเป็นเช่นนั้น

  • / dev / sda เป็นระบบปฏิบัติการ SSD ของฉันที่ทำเครื่องหมายเป็น JBOD โดย Raid Controller
  • SSD อีก 7 ตัวแสดงขึ้นเป็น / dev / sdb เนื่องจากเป็น RAID 0 (หรือ RAID-?)

เพื่อรับข้อมูลของดิสก์ที่อยู่เบื้องหลังตัวควบคุมการโจมตีเคล็ดลับคือการ

smartctl --scan

{output is}
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/bus/0 -d megaraid,8 # /dev/bus/0 [megaraid_disk_08], SCSI device
/dev/bus/0 -d megaraid,9 # /dev/bus/0 [megaraid_disk_09], SCSI device
/dev/bus/0 -d megaraid,10 # /dev/bus/0 [megaraid_disk_10], SCSI device
/dev/bus/0 -d megaraid,11 # /dev/bus/0 [megaraid_disk_11], SCSI device
/dev/bus/0 -d megaraid,12 # /dev/bus/0 [megaraid_disk_12], SCSI device
/dev/bus/0 -d megaraid,13 # /dev/bus/0 [megaraid_disk_13], SCSI device
/dev/bus/0 -d megaraid,14 # /dev/bus/0 [megaraid_disk_14], SCSI device
/dev/bus/0 -d megaraid,15 # /dev/bus/0 [megaraid_disk_15], SCSI device

จากนั้นเพื่อรับข้อมูล smartctl เช่น

  • WEAR_LEVELING_COUNT
  • POWER_ON_HOURS
  • TEMPERATURE_CELCIUS และสิ่งดีๆอื่น ๆ

สำหรับแต่ละดิสก์ทำ

smartctl -d megaraid,8 -all /dev/bus/0
smartctl -d megaraid,9 -all /dev/bus/0
smartctl -d megaraid,10 -all /dev/bus/0
{down to}
smartctl -d megaraid,15 -all /dev/bus/0

ไวยากรณ์ของsmartctlคือsmartctl [options] <device>

นี่คือวิธีที่คุณได้รับและผ่านการ์ดตรวจค้นเมื่อดิสก์หลายตัวไม่แสดงเป็นอุปกรณ์หลายชนิดเช่น / dev / sdb, / dev / sdc, / dev / sdd เป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.