Cara Memulihkan Data dan Membangun Kembali RAID Perangkat Lunak yang Gagal - Bagian 8


Pada artikel sebelumnya di seri RAID ini Anda beralih dari nol menjadi pahlawan RAID. Kami meninjau beberapa konfigurasi RAID perangkat lunak dan menjelaskan inti dari masing-masing konfigurasi, beserta alasan mengapa Anda memilih salah satu konfigurasi tersebut tergantung pada skenario spesifik Anda.

Dalam panduan ini kita akan membahas cara membangun kembali susunan RAID perangkat lunak tanpa kehilangan data ketika terjadi kegagalan disk. Agar singkatnya, kami hanya akan mempertimbangkan penyiapan RAID 1 – namun konsep dan perintahnya berlaku untuk semua kasus.

Skenario Pengujian RAID

Sebelum melanjutkan lebih jauh, pastikan Anda telah menyiapkan array RAID 1 dengan mengikuti petunjuk yang diberikan di Bagian 3 seri ini: Cara menyiapkan RAID 1 (Mirror) di Linux.

Satu-satunya variasi dalam kasus kami saat ini adalah:

1) versi CentOS (v7) yang berbeda dari yang digunakan dalam artikel tersebut (v6.5), dan
2) ukuran disk yang berbeda untuk /dev/sdb dan /dev/sdc (masing-masing 8 GB).

Selain itu, jika SELinux diaktifkan dalam mode penerapan, Anda perlu menambahkan label yang sesuai ke direktori tempat Anda akan memasang perangkat RAID. Jika tidak, Anda akan mendapatkan pesan peringatan ini saat mencoba memasangnya:

Anda dapat memperbaikinya dengan menjalankan:


restorecon -R /mnt/raid1

Menyiapkan Pemantauan RAID

Ada berbagai alasan mengapa perangkat penyimpanan bisa gagal (meskipun SSD telah sangat mengurangi kemungkinan terjadinya hal ini), namun apa pun penyebabnya, Anda dapat yakin bahwa masalah dapat terjadi kapan saja dan Anda harus bersiap untuk mengganti perangkat yang gagal tersebut. bagian dan untuk memastikan ketersediaan dan integritas data Anda.

Sebuah nasihat terlebih dahulu. Meskipun Anda dapat memeriksa /proc/mdstat untuk memeriksa status RAID Anda, ada metode yang lebih baik dan menghemat waktu dengan menjalankan mdadm di monitor + pemindaian mode, yang akan mengirimkan peringatan melalui email ke penerima yang telah ditentukan sebelumnya.

Untuk menyiapkannya, tambahkan baris berikut di /etc/mdadm.conf:


MAILADDR user@<domain or localhost>

Dalam hal ini:


MAILADDR gacanepa@localhost

Untuk menjalankan mdadm dalam mode monitor + pemindaian, tambahkan entri crontab berikut sebagai root:


@reboot /sbin/mdadm --monitor --scan --oneshot

Secara default, mdadm akan memeriksa susunan RAID setiap 60 detik dan mengirimkan peringatan jika menemukan masalah. Anda dapat mengubah perilaku ini dengan menambahkan opsi --delay ke entri crontab di atas bersama dengan jumlah detiknya (misalnya, --delay 1800 berarti 30 menit).

Terakhir, pastikan Anda telah menginstal Agen Pengguna Email (MUA), seperti mutt atau mailx. Jika tidak, Anda tidak akan menerima peringatan apa pun.

Sebentar lagi kita akan melihat seperti apa lansiran yang dikirimkan oleh mdadm.

Mensimulasikan dan Mengganti Perangkat Penyimpanan RAID yang gagal

Untuk menyimulasikan masalah pada salah satu perangkat penyimpanan dalam larik RAID, kita akan menggunakan opsi --manage dan --set-faulty sebagai berikut:


mdadm --manage --set-faulty /dev/md0 /dev/sdc1  

Hal ini akan mengakibatkan /dev/sdc1 ditandai sebagai salah, seperti yang dapat kita lihat di /proc/mdstat:

Lebih penting lagi, mari kita lihat apakah kita menerima email peringatan dengan peringatan yang sama:

Dalam hal ini, Anda perlu menghapus perangkat dari rangkaian RAID perangkat lunak:


mdadm /dev/md0 --remove /dev/sdc1

Kemudian Anda dapat mengeluarkannya secara fisik dari mesin dan menggantinya dengan suku cadang (/dev/sdd, di mana partisi bertipe fd telah dibuat sebelumnya):


mdadm --manage /dev/md0 --add /dev/sdd1

Beruntung bagi kami, sistem akan secara otomatis mulai membangun kembali array dengan bagian yang baru saja kami tambahkan. Kita dapat mengujinya dengan menandai /dev/sdb1 sebagai salah, menghapusnya dari array, dan memastikan bahwa file tecmint.txt masih dapat diakses di / mnt/serangan1:


mdadm --detail /dev/md0
mount | grep raid1
ls -l /mnt/raid1 | grep tecmint
cat /mnt/raid1/tecmint.txt

Gambar di atas dengan jelas menunjukkan bahwa setelah menambahkan /dev/sdd1 ke array sebagai pengganti /dev/sdc1, pembangunan kembali data secara otomatis dilakukan oleh sistem tanpa intervensi di pihak kita.

Meskipun tidak sepenuhnya diwajibkan, ada baiknya Anda memiliki perangkat cadangan sehingga proses penggantian perangkat yang rusak dengan drive yang baik dapat dilakukan dalam sekejap. Untuk melakukannya, tambahkan kembali /dev/sdb1 dan /dev/sdc1:


mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md0 --add /dev/sdc1

Memulihkan dari Kerugian Redundansi

Seperti yang dijelaskan sebelumnya, mdadm akan secara otomatis membangun kembali data ketika salah satu disk gagal. Tapi apa yang terjadi jika 2 disk dalam array gagal? Mari kita simulasikan skenario tersebut dengan menandai /dev/sdb1 dan /dev/sdd1 sebagai salah:


umount /mnt/raid1
mdadm --manage --set-faulty /dev/md0 /dev/sdb1
mdadm --stop /dev/md0
mdadm --manage --set-faulty /dev/md0 /dev/sdd1

Upaya untuk membuat ulang array dengan cara yang sama seperti yang dibuat saat ini (atau menggunakan opsi --assume-clean) dapat mengakibatkan hilangnya data, sehingga sebaiknya dibiarkan sebagai pilihan terakhir.

Mari kita coba memulihkan data dari /dev/sdb1, misalnya, ke partisi disk serupa (/dev/sde1 – perhatikan bahwa ini mengharuskan Anda membuat partisi ketik fd di /dev/sde sebelum melanjutkan) menggunakan ddrescue:


ddrescue -r 2 /dev/sdb1 /dev/sde1

Perlu diketahui bahwa hingga saat ini, kami belum menyentuh /dev/sdb atau /dev/sdd, partisi yang merupakan bagian dari array RAID.

Sekarang mari kita membangun kembali array menggunakan /dev/sde1 dan /dev/sdf1:


mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1

Harap dicatat bahwa dalam situasi nyata, Anda biasanya akan menggunakan nama perangkat yang sama dengan array aslinya, yaitu, /dev/sdb1 dan /dev/sdc1 setelah disk yang gagal telah diganti dengan yang baru.

Dalam artikel ini saya memilih untuk menggunakan perangkat tambahan untuk membuat ulang array dengan disk baru dan untuk menghindari kebingungan dengan drive asli yang gagal.

Saat ditanya apakah akan melanjutkan penulisan array, ketik Y dan tekan Enter. Array harus dimulai dan Anda harus dapat melihat kemajuannya dengan:


watch -n 1 cat /proc/mdstat

Ketika proses selesai, Anda seharusnya dapat mengakses konten RAID Anda:

Ringkasan

Dalam artikel ini kami telah meninjau cara memulihkan kegagalan RAID dan kerugian redundansi. Namun, perlu Anda ingat bahwa teknologi ini merupakan solusi penyimpanan dan TIDAK menggantikan cadangan.

Prinsip-prinsip yang dijelaskan dalam panduan ini berlaku untuk semua pengaturan RAID, serta konsep yang akan kita bahas dalam panduan berikutnya dan terakhir dari seri ini (manajemen RAID).

Jika Anda memiliki pertanyaan tentang artikel ini, silakan kirimkan pesan kepada kami menggunakan formulir komentar di bawah. Kami menantikan kabar dari Anda!