Cara Memulihkan Data dan Membangun semula RAID Perisian Gagal - Bahagian 8

Cara Memulihkan Data dan Membangun semula RAID Perisian Gagal - Bahagian 8

Dalam artikel sebelumnya siri RAID ini anda pergi dari Zero ke Raid Hero. Kami mengkaji beberapa konfigurasi RAID perisian dan menjelaskan keperluan setiap satu, bersama -sama dengan sebab -sebab mengapa anda akan bersandar kepada satu atau yang lain bergantung pada senario khusus anda.

Pulihkan Membangun semula Perisian Gagal - Bahagian 8

Dalam panduan ini, kita akan membincangkan cara membina semula pelbagai perisian serbuan tanpa kehilangan data apabila berlaku kegagalan cakera. Untuk keringkasan, kita hanya akan mempertimbangkan a RAID 1 Persediaan - tetapi konsep dan arahan digunakan untuk semua kes.

Senario ujian RAID

Sebelum meneruskan, sila pastikan anda menyediakan a RAID 1 Array mengikuti arahan yang disediakan dalam Bahagian 3 siri ini: Cara Menyiapkan RAID 1 (Mirror) di Linux.

Satu -satunya variasi dalam kes kita sekarang ialah:

1) Versi CentOS (V7) yang berbeza daripada yang digunakan dalam artikel itu (v6.5), dan
2) saiz cakera yang berbeza untuk /dev/sdb dan /dev/sdc (8 GB setiap satu).

Di samping itu, jika Selinux diaktifkan dalam mod menguatkuasakan, anda perlu menambah label yang sepadan ke direktori di mana anda akan memasang peranti RAID. Jika tidak, anda akan masuk ke dalam mesej amaran ini semasa cuba memasangnya:

Kesalahan Gunung Selinux Raid

Anda boleh membetulkannya dengan menjalankan:

# restorecon -r /mnt /raid1 

Menyediakan pemantauan RAID

Terdapat pelbagai sebab mengapa peranti penyimpanan boleh gagal (SSD telah mengurangkan kemungkinan berlaku ini), tetapi tanpa mengira punca anda dapat memastikan bahawa masalah dapat terjadi pada bila -bila masa dan anda perlu bersedia untuk menggantikan yang gagal bahagian dan untuk memastikan ketersediaan dan integriti data anda.

Perkataan nasihat terlebih dahulu. Walaupun anda boleh memeriksa /proc/mdstat Untuk memeriksa status serbuan anda, ada kaedah yang lebih baik dan menjimatkan masa yang terdiri daripada berjalan mdadm Dalam mod monitor + imbasan, yang akan menghantar makluman melalui e -mel kepada penerima yang telah ditetapkan.

Untuk menetapkan ini, tambahkan baris berikut /etc/mdadm.Conf:

Mailaddr [dilindungi e -mel] 

Dalam kes saya:

Mailaddr [dilindungi e -mel] 
RAID memantau makluman e -mel

Untuk berlari mdadm Dalam mod Monitor + imbasan, tambahkan entri Crontab berikut sebagai akar:

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

Secara lalai, mdadm akan memeriksa array serbuan setiap 60 saat dan menghantar amaran jika ia mendapat masalah. Anda boleh mengubah tingkah laku ini dengan menambahkan --kelewatan Pilihan ke entri Crontab di atas bersama -sama dengan jumlah detik (contohnya, --kelewatan 1800 bermaksud 30 minit).

Akhirnya, pastikan anda mempunyai Ejen pengguna mel (Mua) dipasang, seperti mutt atau mailx. Jika tidak, anda tidak akan menerima sebarang makluman.

Dalam satu minit kita akan melihat apa yang diberi amaran dihantar mdadm kelihatan seperti.

Mensimulasikan dan menggantikan peranti penyimpanan RAID yang gagal

Untuk mensimulasikan masalah dengan salah satu peranti penyimpanan dalam array serbuan, kami akan menggunakan --mengurus dan --set-faulty pilihan seperti berikut:

# MDADM --Manage --Set-Faulty /Dev /MD0 /Dev /SDC1 

Ini akan menghasilkan /dev/sdc1 ditandakan sebagai rosak, seperti yang dapat kita lihat /proc/mdstat:

Merangsang masalah dengan penyimpanan RAID

Lebih penting lagi, mari kita lihat sama ada kami menerima amaran e -mel dengan amaran yang sama:

Makluman e -mel pada peranti RAID yang gagal

Dalam kes ini, anda perlu mengeluarkan peranti dari pelbagai perisian RAID:

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

Kemudian anda boleh mengeluarkannya secara fizikal dari mesin dan menggantinya dengan bahagian ganti (/dev/sdd, di mana partition jenis FD telah dibuat sebelum ini):

# mdadm --Manage /dev /md0 --add /dev /sdd1 

Nasib baik untuk kami, sistem ini akan mula membina semula array secara automatik dengan bahagian yang kami tambahkan. Kita boleh menguji ini dengan menandakan /dev/sdb1 rosak, mengeluarkannya dari array, dan pastikan fail tersebut Tecmint.txt masih boleh diakses di /MNT/RAID1:

# MDADM -DETAIL /DEV /MD0 # MOUNT | Grep RAID1 # LS -L /MNT /RAID1 | Grep Tecmint # Cat/Mnt/RAID1/Tecmint.txt 
Sahkan Arus Raid Membina semula

Imej di atas jelas menunjukkan bahawa selepas menambah /dev/sdd1 ke array sebagai pengganti untuk /dev/sdc1, Pembentukan semula data secara automatik dilakukan oleh sistem tanpa campur tangan di pihak kami.

Walaupun tidak diperlukan dengan ketat, adalah idea yang bagus untuk mempunyai peranti ganti berguna supaya proses menggantikan peranti yang rosak dengan pemacu yang baik dapat dilakukan dengan snap. Untuk melakukan itu, mari kita tambah semula /dev/sdb1 dan /dev/sdc1:

# mdadm --Manage /dev /md0 --add /dev /sdb1 # mdadm --Manage /dev /md0 --add /dev /sdc1 
Ganti peranti RAID yang gagal

Pulih dari kerugian redundansi

Seperti yang dijelaskan sebelum ini, mdadm akan membina semula data secara automatik apabila satu cakera gagal. Tetapi apa yang berlaku jika 2 cakera dalam array gagal? Mari mensimulasikan senario tersebut dengan menandakan /dev/sdb1 dan /dev/sdd1 rosak:

# umount /mnt /raid1 # mdadm --Manage--set-faulty /dev /md0 /dev /sdb1 # mdadm --stop /dev /md0 # mdadm --Manage--set-faulty /dev /md0 /dev / SDD1 

Percubaan untuk membuat semula array dengan cara yang sama ia dicipta pada masa ini (atau menggunakan --Asumsi-bersih pilihan) boleh mengakibatkan kehilangan data, jadi ia harus ditinggalkan sebagai usaha terakhir.

Mari cuba memulihkan data dari /dev/sdb1, Sebagai contoh, ke dalam partisi cakera yang sama (/dev/sde1 - Perhatikan bahawa ini memerlukan anda membuat partition jenis FD dalam /dev/sde sebelum meneruskan) menggunakan Ddrescue:

# ddrescue -r 2 /dev /sdb1 /dev /sde1 
Memulihkan pelbagai serbuan

Sila ambil perhatian bahawa sehingga ke tahap ini, kami tidak menyentuh /dev/sdb atau /dev/sdd, partisi yang merupakan sebahagian daripada array serbuan.

Sekarang mari kita membina semula array yang menggunakan /dev/sde1 dan /dev/sdf1:

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

Sila ambil perhatian bahawa dalam keadaan sebenar, anda biasanya akan menggunakan nama peranti yang sama seperti dengan array asal, iaitu, /dev/sdb1 dan /dev/sdc1 Setelah cakera gagal diganti dengan yang baru.

Dalam artikel ini saya telah memilih untuk menggunakan peranti tambahan untuk membuat semula array dengan cakera baru dan untuk mengelakkan kekeliruan dengan pemacu gagal yang asal.

Apabila ditanya sama ada untuk terus menulis array, taipkan Y dan tekan Masukkan. Arahan harus dimulakan dan anda harus dapat melihat kemajuannya dengan:

# watch -n 1 kucing /proc /mdstat 

Apabila proses selesai, anda harus dapat mengakses kandungan serbuan anda:

Sahkan kandungan RAID

Ringkasan

Dalam artikel ini kami telah mengkaji semula cara pulih dari RAID kegagalan dan kerugian redundansi. Walau bagaimanapun, anda perlu ingat bahawa teknologi ini adalah penyelesaian penyimpanan dan TIDAK ganti sandaran.

Prinsip -prinsip yang dijelaskan dalam panduan ini dikenakan untuk semua persediaan RAID sama, serta konsep yang akan kami sampaikan dalam panduan seterusnya dan terakhir siri ini (Pengurusan RAID).

Sekiranya anda mempunyai sebarang pertanyaan mengenai artikel ini, jangan ragu untuk menggugurkan nota kami menggunakan borang komen di bawah. Kami berharap untuk mendengar daripada anda!