Saya mulai mendapatkan koleksi komputer di rumah dan untuk mendukung mereka, saya memiliki "server" linux box saya yang menjalankan array RAID.
Saat ini mdadm
RAID-1
, akan RAID-5
sekali saya memiliki lebih banyak drive (dan kemudian RAID-6
saya berharap). Namun saya telah mendengar berbagai cerita tentang data yang rusak pada satu drive dan Anda tidak pernah memperhatikan karena drive lain sedang digunakan, sampai pada titik ketika drive pertama gagal, dan Anda menemukan drive kedua Anda juga kacau (dan 3, 4 , Drive ke-5).
Jelas cadangan itu penting dan saya juga mengatasinya, namun saya tahu saya sebelumnya pernah melihat skrip yang mengklaim dapat membantu mengatasi masalah ini dan memungkinkan Anda untuk memeriksa RAID Anda saat sedang berjalan. Namun mencari skrip ini lagi sekarang saya merasa sulit untuk menemukan apa pun yang tampaknya mirip dengan apa yang saya jalankan sebelumnya dan saya merasa saya ketinggalan zaman dan tidak memahami apa pun yang telah berubah.
Bagaimana Anda memeriksa RAID yang sedang berjalan untuk memastikan semua disk masih terbentuk normal?
Saya memantau SMART pada semua drive dan juga telah mdadm
mengatur untuk mengirim email kepada saya jika terjadi kegagalan, tetapi saya ingin mengetahui drive saya sesekali "memeriksa" diri mereka juga.
Jawaban:
Inti dari RAID dengan redundansi adalah ia akan terus berjalan selama mungkin, tetapi jelas ia akan mendeteksi kesalahan yang memasukkannya ke mode terdegradasi, seperti disk yang gagal. Anda dapat menampilkan status array saat ini dengan
mdadm -D
:Lebih jauh lagi, status pengembalian
mdadm -D
bukan nol jika ada masalah seperti komponen yang gagal (1 menunjukkan kesalahan yang dikompensasi oleh mode RAID, dan 2 menunjukkan kegagalan total).Anda juga bisa mendapatkan ringkasan cepat dari semua status perangkat RAID dengan melihatnya
/proc/mdstat
. Anda dapat memperoleh informasi tentang perangkat RAID/sys/class/block/md*/md/*
juga; lihatDocumentation/md.txt
di dokumentasi kernel. Beberapa/sys
entri juga dapat ditulisi; misalnya Anda dapat memicu pemeriksaan lengkapmd0
denganecho check >/sys/class/block/md0/md/sync_action
.Selain pemeriksaan spot ini, mdadm dapat memberi tahu Anda segera setelah sesuatu yang buruk terjadi. Pastikan bahwa Anda memiliki
MAILADDR root
di/etc/mdadm.conf
(beberapa distribusi (misalnya Debian) mengatur ini secara otomatis). Kemudian Anda akan menerima pemberitahuan email segera setelah kesalahan (array yang rusak) terjadi .Pastikan Anda menerima pengiriman email ke root pada mesin lokal (beberapa distribusi modern mengabaikannya, karena mereka menganggap bahwa semua email melewati penyedia eksternal - tetapi menerima email lokal diperlukan untuk administrator sistem yang serius). Uji ini dengan mengirimkan email akar:
echo hello | mail -s test root@localhost
. Biasanya, penyetelan email yang benar membutuhkan dua hal:Alihkan surat ke akun sistem (setidaknya
root
) ke alamat yang Anda baca secara teratur. Ini bisa berupa akun Anda di mesin lokal, atau alamat email eksternal. Dengan sebagian besar MTA, alamat dapat dikonfigurasi dalam/etc/aliases
; Anda harus memiliki garis sepertiuntuk pengiriman lokal, atau
untuk pengiriman jarak jauh. Jika Anda memilih pengiriman jarak jauh, pastikan MTA Anda dikonfigurasi untuk itu. Bergantung pada MTA Anda, Anda mungkin perlu menjalankan
newaliases
perintah setelah mengedit/etc/aliases
.sumber
Anda dapat memaksa pemeriksaan seluruh array saat online. Misalnya, untuk memeriksa larik
/dev/md0
, jalankan sebagai root:Saya juga memiliki pekerjaan cron yang menjalankan perintah berikut sebulan sekali:
Ini bukan pemeriksaan menyeluruh dari drive itu sendiri, tetapi itu memaksa sistem untuk secara berkala memverifikasi bahwa (hampir) setiap file dapat dibaca dengan sukses dari disk. Ya, beberapa file akan dibaca dari cache memori, bukan disk. Tapi saya pikir jika file tersebut ada dalam cache memori, maka file itu baru-baru ini berhasil dibaca dari disk, atau akan ditulis ke disk, dan salah satu dari operasi itu juga akan mengungkap kesalahan drive. Bagaimanapun, menjalankan pekerjaan ini menguji kriteria paling penting dari array RAID ("Bisakah saya berhasil membaca data saya?") Dan dalam tiga tahun saya telah menjalankan array saya, satu kali saya memiliki drive yang rusak, itu adalah perintah ini yang menemukannya.
Satu peringatan kecil adalah jika sistem file Anda besar, maka perintah ini akan memakan waktu lama; sistem saya membutuhkan sekitar 6 jam / TiB. Saya menjalankannya menggunakan
ionice
sehingga sisa sistem tidak terhenti selama cek drive:sumber
ionice
hanya akan berfungsi jika Anda menggunakan penjadwal I / O CFQ (default).paket Debian dan Ubuntu 'mdadm' berisi file tersebut
yang pada gilirannya minggu pertama setiap bulan akan menjalankan perintah
yang akan memeriksa semua array Anda untuk konsistensi (kecuali jika Anda mengatur AUTOCHECK menjadi false di / etc / default / mdadm ). Laporan akan dikirim ke pengguna 'root' (pastikan Anda menerima email seperti itu).
sumber
Saya menggunakan fungsi sederhana ini untuk memeriksa
/proc/mdstat
:sumber