Pantau kesehatan disk menggunakan smartd (dalam smartmontools) pada server RAID 1 perangkat lunak ketersediaan tinggi


8

Saya memiliki sebuah server dengan tiga identik SATA / 600 3TB drive: /dev/sda, /dev/sdb, /dev/sdc. Drive dipartisi, menggunakan GPT dengan masing-masing tiga partisi:

  • 1 MB: Partisi khusus untuk boot loader
  • 1 GB: RAID1 / dev / md0 (ext2 (/ boot))
  • 3 TB: RAID1 / dev / md1 (volume terenkripsi (LVM (grup volume (Swap, /, / etc, / home ...)))))

Salah satu dari tiga drive adalah cadangan panas dan dua lainnya aktif di set RAID. Ini berfungsi dengan baik dan saya bisa boot setelah melepaskan HDD apa pun. Saya ingin menggunakan smartd (bagian dari smartmontools) untuk memantau kesehatan drive dan melaporkan kesalahan ke syslog (yang saya monitor menggunakan logcheck ). Server ini harus memiliki ketersediaan setinggi mungkin, tetapi dapat diterima bahwa kinerja diturunkan selama pengujian.

Ini adalah output dari smartctl -a /dev/sda:

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-4-amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD30EZRX-00MMMB0
Serial Number:    WD-WMAWZ0412093
LU WWN Device Id: 5 0014ee 2b19fbdcd
Firmware Version: 80.00A80
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Sep 27 15:37:25 2013 CEST
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:  (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:        (50280) 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:    ( 255) minutes.
Conveyance self-test routine
recommended polling time:    (   5) minutes.
SCT capabilities:          (0x3035) SCT Status 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     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   148   148   021    Pre-fail  Always       -       9575
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       95
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       820
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       93
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       65
193 Load_Cycle_Count        0x0032   196   196   000    Old_age   Always       -       12824
194 Temperature_Celsius     0x0022   119   116   000    Old_age   Always       -       33
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

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%       787         -
# 2  Extended offline    Completed without error       00%       727         -

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.

Tampaknya pengujian offline didukung. Saat saya menerbitkan smartctl -o on, smartctl -cacara yang Offline data collection statustelah diatur ke (0x82). Jika saya menerbitkan smartctl -o offnilai yang sama menjadi (0x02).

Saya telah menyiapkan smartd untuk memulai dengan server dengan menetapkan start_smartd=yesdalam /etc/default/smartmontools. Bagaimana Anda menyarankan saya mengkonfigurasi smartd dengan mengedit /etc/smartd.confuntuk server ini? Tolong jelaskan setiap parameter yang Anda gunakan dan mengapa Anda menggunakannya seperti yang Anda lakukan.

Saya akan menambahkan pengaturan saya saat ini sebagai jawaban. Jangan ragu untuk menggunakannya sebagai basis dan tingkatkan dalam jawaban Anda sendiri. Deskripsi yang lebih baik menggunakan set up yang sama akan menjadi peningkatan juga!


Saya belum dapat memposting jawaban saya, karena reputasi saya yang rendah (1).

Hot cadangan dengan RAID 1 aneh, mdadm dapat dengan mudah menjangkau RAID 1 lebih dari tiga disk, memberikan redundansi tiga arah nyata dan meningkatkan kinerja membaca.
frostschutz

Saya awalnya bertujuan untuk menggunakan RAID 5, yang merupakan alasan saya membeli tiga drive. Tetapi kemudian saya mengetahui bahwa build di "fakeraid" adalah opsi yang buruk dan saya juga belajar bahwa RAID 5 untuk use case saya mungkin juga merupakan ide yang buruk. Saya tidak berpikir saran Anda adalah pilihan yang baik karena saya pikir kinerja menulis akan menderita (bahkan lebih) dengan tiga drive aktif. Dan cadangan panas tidak aneh, jika drive mati itu akan menendang, saya menemukan itu berguna.

Saya akan menunggu satu atau dua minggu dan melihat jawaban mana yang paling dipilih, karena saya ingin mempertimbangkannya ketika saya menandai jawaban saya.

Jawaban:


5

Kami telah mengonfigurasi semua server kami untuk menjalankan selftests reguler dengan baris berikut di /etc/smartd.conf:

# DEVICESCAN matches all hard disks found in /dev/ and applies the following
# options to them.
#
# Default options from Debian:
# -d removable     don't exit when the device when a device vanishes
# -n standby       don't wake a device up that is sleeping
# -m root          send error reports to root
# -M exec ...      pipe the mail through that script
#
# Our options:
# -s L/../02/./17  run a long selftest on every 2nd of every month
#                  at 17 o'clock
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner -s L/../02/./17

Selftests adalah IMO jenis pemeriksaan kesehatan paling andal yang ditawarkan SMART.


EDIT:

Bisakah Anda jelaskan apa -d removablefungsinya?

Dari man smartd.conf:

          removable - the device or its media is  removable.   This  indi‐
          cates  to  smartd  that  it should continue (instead of exiting,
          which is the default behavior) if the device does not appear  to
          be  present  when smartd is started.  This Directive may be used
          in conjunction with the other ´-d´ Directives.

Saya menganggap itu mencegah smartddari kematian ketika salah satu disk yang dimonitor menghilang ...? Saya tidak tahu pasti, saya baru saja menambahkan -s L/../02/./17bagian ke baris itu. Baris asli:

DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

adalah default dari Debian.


3

Saya beralih dari selftest panjang ke select,conttes. Ini seperti selftest panjang, tetapi hanya satu keping disk pada suatu waktu. Jadi, sementara selftest panjang mungkin memakan waktu lebih dari satu hari (dengan disk 3TB yang sibuk), tes selektif dapat berjalan setiap malam ketika server paling sibuk dan benar-benar selesai, tanpa merusak kinerja di jam-jam yang lebih sibuk.

Jadi pada dasarnya Anda akan mendistribusikan swa-uji bulanan panjang seluruh disk, ke tes selektif malam yang masih mencakup seluruh disk selama sebulan.

Butuh beberapa persiapan.

  • smartdharus dijalankan dengan --savestatesopsi karena disk itu sendiri biasanya tidak melacak wilayah terakhir yang diuji.
  • Anda harus memulai tes mandiri selektif pertama secara manual ( -t select,0-$size) sehingga Anda smartdakan mengetahui ukuran irisan untuk diuji setiap hari. Ukuran menentukan berapa lama tes akan memakan waktu dan berapa hari untuk span seluruh disk.
  • Pastikan $ size yang Anda pilih sejajar dengan ukuran disk. Kalau tidak, Anda berisiko potongan terakhir menjadi sangat kecil (kasus terburuk yang Anda buang sehari menguji hanya satu sektor disk).
  • Anda harus memverifikasi bahwa informasi ini benar-benar membuatnya ke file savestates karena kadang-kadang tidak dan kemudian tes tidak akan berjalan seperti yang Anda inginkan. (Mengedit file savestate secara langsung juga merupakan pilihan).
  • Sintaks untuk smartd.conffile tersebut adalah -s c/../.././01(dalam contoh ini akan berjalan setiap hari jam 1 pagi).

Setelah itu dilakukan namun prosesnya otomatis dan dapat diandalkan. Setelah mencapai akhir disk, secara otomatis akan dimulai pada awal hari berikutnya. Baca halaman smartctlmanual tentang select,conttes.

Meskipun tes panjang atau selektif bagus, Anda mungkin masih harus menjalankan tes penilaian singkat atau keseluruhan. Mereka hanya membutuhkan waktu yang sangat singkat dan dapat membantu mendeteksi masalah umum.


Saya suka ide Anda dengan select,conttes. Saya harus menggali sedikit deper ke dalamnya. SMART melaporkan bahwa tes mandiri saya yang lama akan memakan waktu 14 jam, dan itu tanpa beban sama sekali pada disk.

2

Saya biasanya menggunakan pemeriksaan sederhana ini yang didefinisikan per drive dan tidak secara global per sistem (dengan DEVICESCANopsi) - Saya tertarik dengan keseluruhan status kesehatan SMART dan apakah ada realokasi sektor yang tertunda dan sektor yang salah sejak tes SMART terakhir. Acara mencurigakan akan dikirimkan ke alamat smart catch-all saya kemudian:

/dev/sda -H -C 0 -U 0 -m smart@domain.tld

Pada beberapa sistem, saya telah menetapkan untuk menjalankan tes mandiri SMART pada tanggal tertentu secara otomatis. Spesifikasi ini menetapkan untuk menjalankan tes panjang pada dua drive setiap hari Minggu setelah tengah malam (tetapi tidak pada waktu yang sama - antara tengah malam dan 1 pagi dan kemudian dari 2 pagi):

/dev/sda -a -s L/../../7/00 -m smart@domain.tld
/dev/sdb -a -s L/../../7/02 -m smart@domain.tld

2
# DEVICESCAN      For all disks with SMART capabilities.
#
# -o off          Turn off automatic running of offline tests. An offline test
#                 is a test which may degrade performance.
#
# -n standby      Do not spin up the disk for the periodic 30 minute (default)
#                 SMART status polling, instead wait until the disk is active
#                 again and poll it then.
#
# -W 2            Report temperature changes of at least 2 degrees celsius since
#                 the last reading. Also report if a new min/max temperature is
#                 detected.
#
# -S on           Auto save attributes such as how long the disk has been powered
#                 on, min and max disk temperature.
#
# -s (L/../.[02468]/1/04|S/../.[13579]/1/04)
#     '-------a--------' '--------b-------'
#
#                 a: Long test on    even monday mornings at 04:00
#                 b: Short test on uneven monday mornings at 04:00

DEVICESCAN -o off -n standby -W 2 -S on -s (L/../.[02468]/1/04|S/../.[13579]/1/04)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.