Kā atjaunot datus un atjaunot neizdevušos programmatūras RAID - 8. daļa


Šīs RAID sērijas iepriekšējos rakstos jūs no nulles kļuvāt par RAID varoni. Mēs pārskatījām vairākas programmatūras RAID konfigurācijas un izskaidrojām katras no tām būtisko, kā arī iemeslus, kāpēc jūs izvēlētos vienu vai otru atkarībā no jūsu konkrētā scenārija.

Šajā rokasgrāmatā mēs apspriedīsim, kā atjaunot programmatūras RAID masīvu bez datu zuduma diska kļūmes gadījumā. Īsuma labad mēs apsvērsim tikai RAID 1 iestatīšanu, taču jēdzieni un komandas attiecas uz visiem gadījumiem vienādi.

Pirms turpināt darbu, lūdzu, pārliecinieties, vai esat iestatījis RAID 1 masīvu, ievērojot šīs sērijas 3. daļā sniegtos norādījumus: Kā iestatīt RAID 1 (spoguli) Linux.

Vienīgās variācijas mūsu pašreizējā gadījumā būs šādas:

1) cita CentOS versija (v7) nekā tajā, kas izmantota šajā rakstā (v6.5), un
2) dažādi diska izmēri mapēm/dev/sdb un/dev/sdc (katrs 8 GB).

Turklāt, ja SELinux ir iespējots izpildes režīmā, jums būs jāpievieno atbilstošās etiķetes direktorijai, kurā pievienosiet RAID ierīci. Pretējā gadījumā mēģinot to uzstādīt, tiks parādīts šis brīdinājuma ziņojums:

To var novērst, palaižot:

# restorecon -R /mnt/raid1

RAID uzraudzības iestatīšana

Ir dažādi iemesli, kādēļ atmiņas ierīce var neizdoties (SSD tomēr ir ievērojami samazinājušas tā iespējamību), taču neatkarīgi no cēloņa varat būt pārliecināti, ka problēmas var rasties jebkurā laikā, un jums jābūt gatavam nomainīt neizdevušos daļu un lai nodrošinātu jūsu datu pieejamību un integritāti.

Vispirms vārds padomu. Pat tad, ja varat pārbaudīt/proc/mdstat, lai pārbaudītu RAID statusu, ir labāka un laiku taupoša metode, kas sastāv no mdadm palaišanas monitora + skenēšanas režīmā, kas brīdinājumus pa e-pastu nosūtīs iepriekš definētam adresātam.

Lai to iestatītu, mapē /etc/mdadm.conf pievienojiet šādu rindu:

MAILADDR [email <domain or localhost>

Manā gadījumā:

MAILADDR [email 

Lai palaistu mdadm monitora + skenēšanas režīmā, pievienojiet šādu crontab ierakstu kā sakni:

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

Pēc noklusējuma mdadm ik pēc 60 sekundēm pārbaudīs RAID masīvus un, ja atradīs problēmu, nosūtīs brīdinājumu. Varat modificēt šo uzvedību, pievienojot opciju --delay iepriekš norādītajam crontab ierakstam kopā ar sekunžu skaitu (piemēram, --delay 1800 nozīmē 30 minūtes).

Visbeidzot, pārliecinieties, vai esat instalējis Mail User Agent (MUA), piemēram, mutt vai mailx. Pretējā gadījumā jūs nesaņemsit brīdinājumus.

Pēc minūtes mēs redzēsim, kā izskatās mdadm nosūtītais brīdinājums.

Neveiksmīgas RAID atmiņas ierīces modelēšana un aizstāšana

Lai simulētu problēmu ar vienu no RAID masīva glabāšanas ierīcēm, mēs izmantosim opcijas --manage un --set-default šādi:

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

Tā rezultātā/dev/sdc1 tiks atzīmēts kā kļūdains, kā mēs varam redzēt mapē/proc/mdstat:

Vēl svarīgāk ir tas, ka redzēsim, vai esam saņēmuši e-pasta brīdinājumu ar tādu pašu brīdinājumu:

Šajā gadījumā ierīce būs jānoņem no programmatūras RAID masīva:

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

Tad jūs to varat fiziski noņemt no mašīnas un aizstāt ar rezerves daļu (/ dev/sdd, kur iepriekš tika izveidots fd tipa nodalījums):

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

Mums par laimi, sistēma automātiski sāks masīva atjaunošanu ar tikko pievienoto daļu. Mēs to varam pārbaudīt, atzīmējot/dev/sdb1 kā kļūdainu, noņemot to no masīva un pārliecinoties, ka fails tecmint.txt joprojām ir pieejams vietnē/mnt/raid1:

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

Iepriekš redzamais attēls skaidri parāda, ka pēc tam, kad masīvam ir pievienots/dev/sdd1 kā aizstājējs/dev/sdc1, sistēma automātiski veic datu atjaunošanu bez mūsu iejaukšanās.

Lai gan tas nav obligāti prasīts, ir lieliska ideja, ja jums ir noderīga rezerves ierīce, lai kļūdainas ierīces nomaiņu ar labu disku varētu veikt ātri. Lai to izdarītu, atkārtoti pievienosim/dev/sdb1 un/dev/sdc1:

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

Atgūšanās no atlaišanas zaudējumiem

Kā paskaidrots iepriekš, mdadm automātiski atjaunos datus, kad nedarbosies viens disks. Bet kas notiek, ja masīvā neizdodas 2 diski? Simulēsim šādu scenāriju, atzīmējot/dev/sdb1 un/dev/sdd1 kā kļūdainu:

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

Mēģinājumi atkārtoti izveidot masīvu tāpat, kā tas tika izveidots šajā laikā (vai izmantojot opciju --assume-clean ), var izraisīt datu zudumu, tāpēc tas jāatstāj kā pēdējais līdzeklis.

Mēģināsim atgūt datus, piemēram, no/dev/sdb1 līdzīgā diska nodalījumā (/ dev/sde1 - ņemiet vērā, ka tam ir nepieciešams izveidot fd nodalījumu mapē/dev/sde pirms turpināt), izmantojot programmu ddrescue:

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

Lūdzu, ņemiet vērā, ka līdz šim brīdim mēs neesam pieskāries/dev/sdb vai/dev/sdd - nodalījumiem, kas bija daļa no RAID masīva.

Tagad atjaunosim masīvu, izmantojot/dev/sde1 un/dev/sdf1:

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

Lūdzu, ņemiet vērā, ka reālā situācijā parasti izmantosiet tos pašus ierīču nosaukumus kā sākotnējā masīvā, tas ir,/dev/sdb1 un/dev/sdc1 pēc tam, kad neizdevušies diski ir aizstāti ar jauniem.

Šajā rakstā es izvēlējos izmantot papildu ierīces, lai atkārtoti izveidotu masīvu ar pavisam jauniem diskiem un izvairītos no sajaukšanas ar oriģinālajiem neizdevušajiem diskiem.

Kad tiek jautāts, vai turpināt rakstīt masīvu, ierakstiet Y un nospiediet Enter. Masīvs ir jāsāk, un jums jāspēj vērot tā gaitu ar:

# watch -n 1 cat /proc/mdstat

Kad process ir pabeigts, jums vajadzētu būt iespējai piekļūt RAID saturam:

Kopsavilkums

Šajā rakstā mēs esam pārskatījuši, kā atgūties no RAID kļūmēm un atlaišanas zaudējumiem. Tomēr jums jāatceras, ka šī tehnoloģija ir glabāšanas risinājums un NEAIZSTĀJ dublējumkopijas.

Šajā rokasgrāmatā izskaidrotie principi attiecas gan uz visiem RAID iestatījumiem, gan uz jēdzieniem, kurus mēs aplūkosim nākamajā un pēdējā šīs sērijas rokasgrāmatā (RAID pārvaldība).

Ja jums ir kādi jautājumi par šo rakstu, nekautrējieties pamest mums piezīmi, izmantojot zemāk esošo komentāru veidlapu. Mēs ceram uz jums atbildi!