Jinsi ya Kurejesha Data na Kuunda Uvamizi wa Programu Zilizofeli - Sehemu ya 8


Katika nakala zilizopita za safu hii ya RAID ulitoka sifuri hadi shujaa wa RAID. Tulikagua usanidi kadhaa wa programu za RAID na tukaelezea mambo muhimu ya kila moja, pamoja na sababu ambazo unaweza kuegemea moja au nyingine kulingana na hali yako mahususi.

Katika mwongozo huu tutajadili jinsi ya kujenga upya safu ya RAID ya programu bila kupoteza data wakati wa kushindwa kwa disk. Kwa ufupi, tutazingatia tu usanidi wa RAID 1 - lakini dhana na amri hutumika kwa hali zote sawa.

Kabla ya kuendelea zaidi, tafadhali hakikisha kuwa umeweka safu ya RAID 1 kufuatia maagizo yaliyotolewa katika Sehemu ya 3 ya mfululizo huu: Jinsi ya kusanidi RAID 1 (Mirror) katika Linux.

Tofauti pekee katika kesi yetu ya sasa itakuwa:

1) toleo tofauti la CentOS (v7) kuliko lile lililotumiwa katika makala hayo (v6.5), na
2) saizi tofauti za diski za /dev/sdb na /dev/sdc (GB 8 kila moja).

Kwa kuongeza, ikiwa SELinux imewezeshwa katika hali ya kutekeleza, utahitaji kuongeza lebo zinazolingana kwenye saraka ambapo utaweka kifaa cha RAID. Vinginevyo, utakumbana na ujumbe huu wa onyo unapojaribu kuuweka:

Unaweza kurekebisha hii kwa kukimbia:

# restorecon -R /mnt/raid1

Inaweka Ufuatiliaji wa RAID

Kuna sababu nyingi kwa nini kifaa cha kuhifadhi kinaweza kushindwa (SSDs zimepunguza sana uwezekano wa hii kutokea, ingawa), lakini bila kujali sababu unaweza kuwa na uhakika kwamba masuala yanaweza kutokea wakati wowote na unahitaji kuwa tayari kuchukua nafasi ya kushindwa. sehemu na kuhakikisha upatikanaji na uadilifu wa data yako.

Neno la ushauri kwanza. Hata wakati unaweza kukagua /proc/mdstat ili kuangalia hali ya RAID zako, kuna mbinu bora na ya kuokoa muda ambayo inajumuisha kuendesha mdadm katika modi ya kufuatilia + scan, ambayo itatuma arifa kupitia barua pepe kwa mpokeaji aliyebainishwa mapema.

Ili kusanidi hii, ongeza laini ifuatayo ndani /etc/mdadm.conf:

MAILADDR [email <domain or localhost>

Katika kesi yangu:

MAILADDR [email 

Ili kuendesha mdadm katika modi ya kufuatilia + skana, ongeza ingizo lifuatalo la crontab kama mzizi:

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

Kwa chaguo-msingi, mdadm itaangalia safu za RAID kila baada ya sekunde 60 na kutuma arifa ikipata tatizo. Unaweza kurekebisha tabia hii kwa kuongeza chaguo la --chelewa kwenye ingizo la crontab hapo juu pamoja na kiasi cha sekunde (kwa mfano, --delay 1800 inamaanisha dakika 30).

Hatimaye, hakikisha kuwa umesakinisha Wakala wa Mtumiaji wa Barua (MUA), kama vile mutt au mailx. Vinginevyo, hutapokea arifa zozote.

Kwa dakika moja tutaona arifu iliyotumwa na mdadm inaonekanaje.

Kuiga na Kubadilisha Kifaa cha Hifadhi cha RAID ambacho hakijafaulu

Ili kuiga tatizo na mojawapo ya vifaa vya kuhifadhi katika safu ya RAID, tutatumia chaguo za --manage na --set-faulty kama ifuatavyo:

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

Hii itasababisha /dev/sdc1 kuwekewa alama kama mbovu, kama tunaweza kuona katika /proc/mdstat:

Muhimu zaidi, hebu tuone ikiwa tulipokea arifa ya barua pepe yenye onyo sawa:

Katika kesi hii, utahitaji kuondoa kifaa kutoka kwa safu ya programu ya RAID:

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

Basi unaweza kuiondoa kutoka kwa mashine na kuibadilisha na sehemu ya ziada (/dev/sdd, ambapo kizigeu cha aina fd kimeundwa hapo awali):

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

Kwa bahati kwetu, mfumo utaanza kiotomatiki kuunda upya safu kwa sehemu ambayo tumeongeza hivi punde. Tunaweza kujaribu hili kwa kuashiria /dev/sdb1 kama hitilafu, kuiondoa kutoka kwa safu, na kuhakikisha kuwa faili ya tecmint.txt bado inapatikana kwa /mnt/raid1:

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

Picha hapo juu inaonyesha wazi kuwa baada ya kuongeza /dev/sdd1 kwa safu kama mbadala wa /dev/sdc1, uundaji upya wa data ulifanyika kiotomatiki na mfumo bila kuingilia kati kwa upande wetu.

Ingawa haihitajiki kabisa, ni wazo nzuri kuwa na kifaa cha ziada ili mchakato wa kubadilisha kifaa mbovu na kiendeshi kizuri kifanyike haraka. Ili kufanya hivyo, wacha tuongeze tena /dev/sdb1 na /dev/sdc1:

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

Kupona kutoka kwa Upotezaji wa Upungufu

Kama ilivyoelezwa hapo awali, mdadm itaunda upya data kiotomati wakati diski moja itashindwa. Lakini nini kinatokea ikiwa diski 2 kwenye safu zitashindwa? Wacha tuige hali kama hii kwa kuashiria /dev/sdb1 na /dev/sdd1 kama hitilafu:

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

Majaribio ya kuunda tena safu kwa njia ile ile iliundwa kwa wakati huu (au kutumia chaguo la --assume-clean) inaweza kusababisha upotezaji wa data, kwa hivyo inapaswa kuachwa kama suluhu la mwisho.

Wacha tujaribu kurejesha data kutoka /dev/sdb1, kwa mfano, kwenye kizigeu sawa cha diski (/dev/sde1 - kumbuka kuwa hii inahitaji kuunda kizigeu cha aina fd ndani /dev/sde kabla ya kuendelea) kwa kutumia ddrescue:

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

Tafadhali kumbuka kuwa hadi kufikia hatua hii, hatujagusa /dev/sdb au /dev/sdd, sehemu ambazo zilikuwa sehemu ya safu ya RAID.

Sasa wacha tujenge upya safu kwa kutumia /dev/sde1 na /dev/sdf1:

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

Tafadhali kumbuka kuwa katika hali halisi, utatumia majina ya kifaa sawa na safu ya asili, ambayo ni, /dev/sdb1 na /dev/sdc1 baada ya diski zilizoshindwa kubadilishwa na mpya.

Katika makala hii nimechagua kutumia vifaa vya ziada ili kuunda upya safu na diski mpya na kuepuka kuchanganyikiwa na anatoa za awali zilizoshindwa.

Unapoulizwa kama uendelee kuandika safu, andika Y na ubonyeze Enter. Safu inapaswa kuanzishwa na unapaswa kutazama maendeleo yake na:

# watch -n 1 cat /proc/mdstat

Mchakato ukikamilika, unapaswa kuwa na uwezo wa kufikia maudhui ya RAID yako:

Muhtasari

Katika makala hii tumepitia jinsi ya kurejesha kutoka kwa kushindwa kwa RAID na hasara za upunguzaji. Hata hivyo, unahitaji kukumbuka kuwa teknolojia hii ni suluhisho la kuhifadhi na HAINA nafasi ya chelezo.

Kanuni zilizoelezwa katika mwongozo huu zinatumika kwa usanidi wote wa RAID sawa, pamoja na dhana ambazo tutashughulikia katika mwongozo unaofuata na wa mwisho wa mfululizo huu (usimamizi wa RAID).

Ikiwa una maswali yoyote kuhusu nakala hii, jisikie huru kutuandikia barua kwa kutumia fomu ya maoni hapa chini. Tunatarajia kusikia kutoka kwako!