GNU/Linux >> Belajar Linux >  >> Linux

Memantau dan Menguji Kesehatan SSD di Linux

Apa itu S.M.A.R.T.?

PINTAR. –for Self-Monitoring, Analysis, and Reporting Technology— adalah teknologi yang tertanam di perangkat penyimpanan seperti hard disk drive atau SSD dan bertujuan untuk memantau status kesehatannya.

Dalam praktiknya, S.M.A.R.T. akan memantau beberapa parameter disk selama operasi hard disk normal, seperti jumlah kesalahan pembacaan, waktu pengaktifan hard disk, atau bahkan kondisi lingkungan. Selain itu, S.M.A.R.T. dan juga dapat melakukan pengujian sesuai permintaan pada drive.

Idealnya, S.M.A.R.T. akan memungkinkan antisipasi dapat diprediksi kegagalan seperti yang disebabkan oleh keausan mekanis atau degradasi permukaan disk, serta tidak dapat diprediksi kegagalan yang disebabkan oleh cacat yang tidak terduga. Karena drive biasanya tidak tiba-tiba gagal, S.M.A.R.T. memberikan opsi bagi sistem operasi atau administrator sistem untuk mengidentifikasi drive yang segera rusak sehingga dapat diganti sebelum terjadi kehilangan data.

Apa yang bukan S.M.A.R.T.?

Semua itu tampak indah. Namun, S.M.A.R.T. bukan bola kristal. Itu tidak dapat memprediksi dengan akurasi 100% kegagalan atau, di sisi lain, menjamin drive tidak akan gagal tanpa peringatan dini. Paling-paling, S.M.A.R.T. harus digunakan untuk memperkirakan kemungkinan dari kegagalan.

Mengingat sifat statistik prediksi kegagalan, S.M.A.R.T. teknologi khususnya kepentingan perusahaan menggunakan sejumlah besar unit penyimpanan, dan studi lapangan telah dilakukan untuk memperkirakan akurasi S.M.A.R.T. melaporkan masalah untuk mengantisipasi kebutuhan penggantian disk di pusat data atau kumpulan server.

Pada tahun 2016, Microsoft dan The Pennsylvania State University melakukan penelitian yang berfokus pada SSD.

Menurut penelitian itu, tampak beberapa S.M.A.R.T. atribut adalah indikator yang baik dari kegagalan yang akan segera terjadi. Makalah secara khusus menyebutkan:

Jumlah Sektor yang Dialokasikan Kembali (Alokasi Ulang):

Sementara teknologi yang mendasarinya sangat berbeda, indikator itu tampaknya sama pentingnya di dunia SSD daripada di dunia hard drive. Patut disebutkan karena algoritme level keausan yang digunakan dalam SSD, ketika beberapa blok mulai gagal, kemungkinan lebih banyak lagi akan segera gagal. Program/Erase (P/E) gagal menghitung:

Ini adalah gejala masalah dengan perangkat keras flash yang mendasarinya di mana drive tidak dapat menghapus atau menyimpan data dalam satu blok. Karena ketidaksempurnaan dalam proses manufaktur, hanya sedikit kesalahan yang dapat diantisipasi. Namun, memori flash memiliki jumlah siklus hapus/tulis yang terbatas. Jadi, sekali lagi, peningkatan jumlah kejadian yang tiba-tiba mungkin mengindikasikan bahwa hard disk telah mencapai batas akhir masa pakainya, dan kami dapat mengantisipasi lebih banyak sel memori yang akan segera rusak. Kesalahan CRC dan Tidak Dapat Dikoreksi (“Kesalahan Data”):

Peristiwa ini dapat disebabkan oleh kesalahan penyimpanan atau masalah dengan tautan komunikasi internal drive. Indikator ini memperhitungkan keduanya dikoreksi kesalahan (dengan demikian tanpa masalah apa pun yang dilaporkan ke sistem host) serta tidak dikoreksi kesalahan (sehingga memblokir drive yang dilaporkan tidak dapat membaca ke sistem host). Dengan kata lain, dapat diperbaiki kesalahan tidak terlihat oleh sistem operasi host, namun tetap memengaruhi kinerja drive karena data harus dikoreksi oleh firmware drive, dan kemungkinan relokasi sektor mungkin terjadi. Hitungan downshift SATA:

Karena gangguan sementara, masalah dengan hubungan komunikasi antara drive dan host, atau karena masalah drive internal, antarmuka SATA dapat beralih ke tingkat pensinyalan yang lebih rendah. Menurunkan link di bawah tingkat link nominal memiliki dampak yang jelas pada kinerja drive yang diamati. Memilih tingkat pensinyalan yang lebih rendah bukanlah hal yang aneh, terutama pada drive yang lebih tua. Jadi indikator ini paling signifikan bila dikorelasikan dengan keberadaan satu atau beberapa indikator sebelumnya.

Menurut penelitian, 62% dari SSD yang gagal menunjukkan setidaknya salah satu gejala di atas. Namun, jika Anda membalikkan pernyataan itu, itu juga berarti 38% dari SSD yang dipelajari gagal tanpa menunjukkan salah satu gejala di atas. Studi tersebut tidak menyebutkan apakah drive yang gagal telah menunjukkan S.M.A.R.T. dilaporkan gagal atau tidak. Jadi ini tidak dapat dibandingkan secara langsung dengan 36% kegagalan-tanpa-pemberitahuan sebelumnya yang disebutkan untuk hard drive dalam makalah Google.

Makalah Microsoft/Pennsylvania State University tidak mengungkapkan model drive yang dipelajari secara tepat, tetapi menurut penulis, sebagian besar drive berasal dari vendor yang sama yang mencakup beberapa generasi.

Studi ini melihat perbedaan yang signifikan dalam keandalan antara model yang berbeda. Misalnya, model "terburuk" yang dipelajari menunjukkan tingkat kegagalan 20% sembilan bulan setelah kesalahan relokasi pertama dan tingkat kegagalan hingga 36% sembilan bulan setelah terjadinya kesalahan data pertama. Model "terburuk" juga terjadi pada generasi drive yang lebih tua yang dipelajari di koran.

Di sisi lain, untuk gejala yang sama, drive milik perangkat generasi termuda hanya menunjukkan tingkat kegagalan masing-masing 3% dan 20% untuk kesalahan yang sama. Sulit untuk mengetahui apakah angka-angka tersebut dapat dijelaskan dengan perbaikan dalam desain drive dan proses manufaktur, atau apakah ini hanya efek dari penuaan drive.

Yang paling menarik, dan saya memberikan beberapa kemungkinan alasan sebelumnya, makalah tersebut menyebutkan bahwa, alih-alih nilai mentah, ini adalah peningkatan tiba-tiba dalam jumlah kesalahan yang dilaporkan yang harus dianggap sebagai indikator yang mengkhawatirkan:

""" Ada kemungkinan gejala yang lebih tinggi sebelum kegagalan SSD, dengan manifestasi intens dan perkembangan cepat yang mencegah kemampuan bertahannya lebih dari beberapa bulan """

Dengan kata lain, satu kali S.M.A.R.T. kesalahan yang dilaporkan mungkin tidak dianggap sebagai sinyal kegagalan yang akan segera terjadi. Namun, ketika SSD yang sehat mulai melaporkan semakin banyak kesalahan, kegagalan jangka pendek hingga menengah harus diantisipasi.

Tetapi bagaimana cara mengetahui apakah hard drive atau SSD Anda sehat? Baik untuk memuaskan rasa ingin tahu Anda atau karena Anda ingin mulai memantau drive Anda dengan cermat, sekarang saatnya untuk memperkenalkan smartctl alat pemantauan:

Menggunakan smartctl untuk Memantau Status SSD Anda di Linux

Ada beberapa cara untuk membuat daftar disk di Linux tetapi untuk memantau S.M.A.R.T. status disk Anda, saya sarankan smartctl alat, bagian dari smartmontool paket (setidaknya di Debian/Ubuntu).

sudo apt install smartmontools

smartctl adalah alat baris perintah, tetapi ini sempurna, terutama jika Anda ingin mengotomatiskan pengumpulan data, khususnya di server Anda.

Langkah pertama saat menggunakan smartctl adalah untuk memeriksa apakah disk Anda memiliki S.M.A.R.T. diaktifkan dan didukung oleh alat:

sh$ sudo smartctl -i /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Momentus 7200.4
Device Model:     ST9500420AS
Serial Number:    5VJAS7FL
LU WWN Device Id: 5 000c50 02fa0b800
Firmware Version: D005SDM1
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Mar 12 15:54:43 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Seperti yang Anda lihat, hard drive internal laptop saya memang memiliki S.M.A.R.T. kemampuan, dan S.M.A.R.T. dukungan diaktifkan. Jadi, bagaimana dengan S.MA.R.T. status? Apakah ada beberapa kesalahan yang direkam?

Melaporkan “semua informasi SMART tentang disk” adalah tugas -a pilihan:

sh$ sudo smartctl -i -a /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Momentus 7200.4
Device Model:     ST9500420AS
Serial Number:    5VJAS7FL
LU WWN Device Id: 5 000c50 02fa0b800
Firmware Version: D005SDM1
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Mar 12 15:56:58 2018 CET
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
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
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:      (   2) minutes.
Extended self-test routine
recommended polling time:      ( 110) minutes.
Conveyance self-test routine
recommended polling time:      (   3) minutes.
SCT capabilities:            (0x103f)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control 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   111   099   006    Pre-fail  Always       -       29694249
  3 Spin_Up_Time            0x0003   100   098   085    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   095   095   020    Old_age   Always       -       5413
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       3
  7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       51710773327
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26423
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   096   037   020    Old_age   Always       -       4836
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   072   072   000    Old_age   Always       -       28
188 Command_Timeout         0x0032   100   096   000    Old_age   Always       -       4295033738
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   042   045    Old_age   Always   In_the_past 44 (Min/Max 21/44 #22)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       184
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       104
193 Load_Cycle_Count        0x0032   001   001   000    Old_age   Always       -       395415
194 Temperature_Celsius     0x0022   044   058   000    Old_age   Always       -       44 (0 13 0 0 0)
195 Hardware_ECC_Recovered  0x001a   050   045   000    Old_age   Always       -       29694249
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       25131 (246 202 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       3028413736
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       1613088055
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 3
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 3 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 08 ff ff ff 4f 00      00:45:12.580  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.580  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.579  READ FPDMA QUEUED
  60 00 08 ff ff ff 4f 00      00:45:12.571  READ FPDMA QUEUED
  60 00 20 ff ff ff 4f 00      00:45:12.543  READ FPDMA QUEUED

Error 2 occurred at disk power-on lifetime: 21171 hours (882 days + 3 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 ff ff ff 4f 00      00:45:09.456  READ FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:09.451  READ FPDMA QUEUED
  61 00 08 ff ff ff 4f 00      00:45:09.450  WRITE FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:08.878  READ FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      00:45:08.856  READ FPDMA QUEUED

Error 1 occurred at disk power-on lifetime: 21131 hours (880 days + 11 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 ff ff ff 4f 00      05:52:18.809  READ FPDMA QUEUED
  61 00 00 7e fb 31 45 00      05:52:18.806  WRITE FPDMA QUEUED
  60 00 00 ff ff ff 4f 00      05:52:18.571  READ FPDMA QUEUED
  ea 00 00 00 00 00 a0 00      05:52:18.529  FLUSH CACHE EXT
  61 00 08 ff ff ff 4f 00      05:52:18.527  WRITE FPDMA QUEUED

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     10904         -
# 2  Short offline       Completed without error       00%        12         -
# 3  Short offline       Completed without error       00%         0         -

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.

Memahami output dari perintah smartctl

Itu banyak informasi dan tidak selalu mudah untuk menafsirkan data tersebut. Bagian yang paling menarik mungkin adalah yang diberi label sebagai “Atribut SMART Khusus Vendor dengan Ambang Batas” . Ini melaporkan berbagai statistik yang dikumpulkan oleh S.M.A.R.T. perangkat dan memungkinkan Anda membandingkan nilai tersebut (saat ini atau yang terburuk sepanjang masa) dengan beberapa ambang batas yang ditentukan vendor.

Sebagai contoh, berikut adalah bagaimana disk saya melaporkan sektor yang dipindahkan:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       3

Anda dapat melihat ini sebagai atribut "pra-gagal". Itu hanya berarti bahwa atribut tersebut sesuai dengan anomali. Jadi, jika atribut itu melebihi ambang batas, yang bisa menjadi indikator kegagalan yang akan segera terjadi. Kategori lainnya adalah “Old_age” untuk atribut yang sesuai dengan atribut “normal wear”.

Bidang terakhir (di sini "3") sesuai dengan nilai mentah untuk atribut tersebut seperti yang dilaporkan oleh drive. Biasanya, angka ini memiliki arti fisik. Di sini, ini adalah jumlah sebenarnya dari sektor yang direlokasi. Namun, untuk atribut lainnya, bisa berupa suhu dalam derajat Celcius, waktu dalam jam atau menit, atau berapa kali drive mengalami kondisi tertentu.

Selain nilai mentah, sebuah S.M.A.R.T. drive yang diaktifkan harus melaporkan nilai "dinormalisasi" (nilai bidang, terburuk, dan ambang batas). Nilai-nilai ini dinormalisasi dalam kisaran 1-254 (0-255 untuk ambang batas). Firmware disk melakukan normalisasi itu menggunakan beberapa algoritma internal. Selain itu, produsen yang berbeda dapat menormalkan atribut yang sama secara berbeda. Sebagian besar nilai dilaporkan sebagai persentase, semakin tinggi menjadi yang terbaik, tetapi ini tidak wajib. Ketika parameter lebih rendah atau sama dengan ambang batas yang disediakan pabrikan, disk dikatakan gagal untuk atribut tersebut. Dengan semua cadangan yang disebutkan di bagian pertama artikel itu, ketika atribut "pra-gagal" gagal, kemungkinan kegagalan disk akan segera terjadi.

Sebagai contoh kedua, mari kita periksa “tingkat kesalahan pencarian”:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       51710773327

Sebenarnya, dan ini adalah masalah dengan S.M.A.R.T. pelaporan, arti yang tepat dari setiap nilai adalah khusus vendor. Dalam kasus saya, Seagate menggunakan skala logaritmik untuk menormalkan nilainya. Jadi "71" berarti kira-kira satu kesalahan untuk 10 juta pencarian (10 pangkat 7.1). Cukup lucu, yang terburuk sepanjang masa adalah satu kesalahan untuk 1 juta pencarian (10 pangkat 6.0). Jika saya menafsirkannya dengan benar, itu berarti kepala disk saya diposisikan lebih akurat sekarang daripada di masa lalu. Saya tidak mengikuti disk itu dengan cermat, jadi analisis ini harus berhati-hati. Mungkin drive hanya perlu beberapa periode berjalan saat pertama kali ditugaskan? Kecuali jika ini adalah konsekuensi dari keausan suku cadang mekanis, dan dengan demikian menentang gesekan yang lebih sedikit hari ini? Bagaimanapun, dan apa pun alasannya, nilai ini lebih merupakan indikator kinerja daripada peringatan dini kegagalan. Jadi itu tidak terlalu mengganggu saya.

Selain itu, dan tiga dugaan kesalahan yang dicatat sekitar enam bulan lalu, drive itu muncul dalam kondisi yang sangat baik (menurut S.M.A.R.T.) untuk drive laptop stok yang dihidupkan selama lebih dari 1100 hari (26423 jam):

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26423

Karena penasaran, saya menjalankan pengujian yang sama pada laptop terbaru yang dilengkapi dengan SSD:

sh$ sudo smartctl -i /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA THNSNK256GVN8
Serial Number:    17FS131LTNLV
LU WWN Device Id: 5 00080d 9109b2ceb
Firmware Version: K8XA4103
User Capacity:    256 060 514 304 bytes [256 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Form Factor:      M.2
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 (minor revision not indicated)
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Mar 13 01:03:23 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Hal pertama yang harus diperhatikan, meskipun perangkat itu adalah S.M.A.T. diaktifkan, itu tidak ada di smartctl basis data. Itu tidak akan mencegah alat untuk mengumpulkan data dari SSD, tetapi tidak akan dapat melaporkan arti yang tepat dari atribut khusus vendor yang berbeda:

sh$ sudo smartctl -a /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

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

General SMART Values:
Offline data collection status:  (0x00)    Offline data collection activity
                    was never started.
                    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:         (  120) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No 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:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  11) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000a   100   100   000    Old_age   Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   100   100   050    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0013   100   100   050    Pre-fail  Always       -       0
  7 Unknown_SSD_Attribute   0x000b   100   100   050    Pre-fail  Always       -       0
  8 Unknown_SSD_Attribute   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       171
 10 Unknown_SSD_Attribute   0x0013   100   100   050    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       105
166 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
167 Unknown_Attribute       0x0022   100   100   000    Old_age   Always       -       0
168 Unknown_Attribute       0x0012   100   100   000    Old_age   Always       -       0
169 Unknown_Attribute       0x0013   100   100   010    Pre-fail  Always       -       100
170 Unknown_Attribute       0x0013   100   100   010    Pre-fail  Always       -       0
173 Unknown_Attribute       0x0012   200   200   000    Old_age   Always       -       0
175 Program_Fail_Count_Chip 0x0013   100   100   010    Pre-fail  Always       -       0
192 Power-Off_Retract_Count 0x0012   100   100   000    Old_age   Always       -       18
194 Temperature_Celsius     0x0023   063   032   020    Pre-fail  Always       -       37 (Min/Max 11/68)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
240 Unknown_SSD_Attribute   0x0013   100   100   050    Pre-fail  Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

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.

Ini biasanya output yang dapat Anda harapkan untuk SSD baru. Meskipun, karena kurangnya normalisasi atau metainformasi untuk data khusus vendor, banyak atribut dilaporkan sebagai “Unknown_SSD_Attribute”. Saya hanya berharap versi smartctl yang akan datang akan menggabungkan data relatif terhadap model drive tertentu dalam database alat, sehingga saya dapat mengidentifikasi kemungkinan masalah dengan lebih akurat.

Uji SSD Anda di Linux dengan smartctl

Sampai sekarang kami telah memeriksa data yang dikumpulkan oleh drive selama operasi normalnya. Namun, S.M.A.R.T. protokol juga mendukung beberapa perintah "pengujian mandiri" untuk meluncurkan diagnosis sesuai permintaan.

Kecuali diminta secara eksplisit, pengujian mandiri dapat berjalan selama operasi disk normal. Karena pengujian dan permintaan I/O host akan bersaing untuk drive, kinerja disk akan menurun selama pengujian. S.M.A.R.T. spesifikasi menentukan beberapa jenis self-test. Yang paling penting adalah:

Tes mandiri singkat (-t short )

Tes ini akan memeriksa kinerja listrik dan mekanik serta kinerja membaca drive. Tes mandiri singkat biasanya hanya membutuhkan beberapa menit untuk diselesaikan (biasanya 2 hingga 10). Tes mandiri yang diperpanjang (-t long )

Tes ini membutuhkan waktu satu atau dua kali lipat lebih lama untuk diselesaikan. Biasanya, ini adalah versi tes mandiri singkat yang lebih mendalam. Selain itu, tes itu akan memindai seluruh permukaan disk untuk kesalahan data tanpa batas waktu. Durasi pengujian akan sebanding dengan ukuran disk. Uji mandiri konveyor (-t conveyance )

rangkaian pengujian ini dirancang sebagai cara yang relatif cepat untuk memeriksa kemungkinan kerusakan yang terjadi selama pengangkutan perangkat.

Berikut adalah contoh yang diambil dari disk yang sama seperti di atas. Saya membiarkan Anda menebak yang mana:

sh$ sudo smartctl -t short /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Mar 12 18:06:17 2018

Use smartctl -X to abort test.

Tes sekarang telah dinyatakan. Mari kita tunggu sampai selesai untuk menunjukkan hasilnya:

sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb'
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       171         -

Mari lakukan pengujian yang sama pada disk saya yang lain:

sh$ sudo smartctl -t short /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Mar 12 21:59:39 2018

Use smartctl -X to abort test.

Sekali lagi, tidur selama dua menit dan tampilkan hasil tes:

sh$ sudo sh -c 'sleep 120 && smartctl -l selftest /dev/sdb'
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     26429         -
# 2  Short offline       Completed without error       00%     10904         -
# 3  Short offline       Completed without error       00%        12         -
# 4  Short offline       Completed without error       00%         0         -

Menariknya, dalam kasus itu, tampaknya drive dan produsen komputer tampaknya telah melakukan beberapa tes cepat pada disk (pada masa pakai 0h dan 12h). Saya pasti jauh lebih peduli dengan pemantauan kesehatan drive sendiri. Jadi, karena saya menjalankan beberapa pengujian mandiri untuk artikel itu, mari kita mulai diperpanjang uji bagaimana kelanjutannya:

sh$ sudo smartctl -t long /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 110 minutes for test to complete.
Test will complete after Tue Mar 13 00:09:08 2018

Use smartctl -X to abort test.

Apparently, this time we will have to wait much longer than for the short test. So let’s do it:

sh$ sudo bash -c 'sleep $((110*60)) && smartctl -l selftest /dev/sdb'
[sudo] password for sylvain:
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       20%     26430         810665229
# 2  Short offline       Completed without error       00%     26429         -
# 3  Short offline       Completed without error       00%     10904         -
# 4  Short offline       Completed without error       00%        12         -
# 5  Short offline       Completed without error       00%         0         -

In that latter case, pay special attention to the different outcomes obtained with the short and extended tests, even if they were performed one right after the other. Well, maybe that disk is not that healthy after all! An important thing to notice is the test will stop after the first read error. So if you want an exhaustive diagnosis of all read errors, you will have to continue the test after each error. I encourage you to take a look at the very well written smartctl(8) manual page for the more information about the options -t select,N-max and -t select,cont for that:

sh$ sudo smartctl -t select,810665230-max /dev/sdb
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Selective self-test routine immediately in off-line mode".
SPAN         STARTING_LBA           ENDING_LBA
   0            810665230            976773167
Drive command "Execute SMART Selective self-test routine immediately in off-line mode" successful.
Testing has begun.
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Selective offline   Completed without error       00%     26432         -
# 2  Extended offline    Completed: read failure       20%     26430         810665229
# 3  Short offline       Completed without error       00%     26429         -
# 4  Short offline       Completed without error       00%     10904         -
# 5  Short offline       Completed without error       00%        12         -
# 6  Short offline       Completed without error       00%         0         -

Kesimpulan

Definitely, S.M.A.R.T. reporting is a technology you can add to your tool chest to monitor your servers disk health. In that case, you should also take a look at the S.M.A.R.T. Disk Monitoring Daemon smartd(8) that could help you automate monitoring through syslog reporting.

Given the statistical nature of failure prediction, I am a little bit less convinced however than aggressive S.M.A.R.T. monitoring is of great benefit on a personal computer. Finally, don’t forget whatever is its technology, a drive will fail— and we have seen earlier, in one-third of the case, it will fail without prior notices. So nothing will replace RAIDand offline backups to ensure your data integrity!

This article was written by Sylvain Leroux


Linux
  1. Pengujian integrasi berkelanjutan untuk kernel Linux

  2. Perintah Sed Linux:Penggunaan dan Contoh

  3. Cara Memeriksa kesehatan SSD/HDD di Linux

  1. Tonton perintah dan tugas dengan perintah jam tangan Linux

  2. 5 Klien Google Drive Teratas untuk Linux

  3. Cara memeriksa kesehatan hard drive

  1. Pengantar perintah Linux chgrp dan newgrp

  2. Siklus hidup pengujian kernel Linux

  3. Pantau dan Analisis Kesehatan Hard Drive dengan Smartctl di Linux