Loading...
 
[Zobrazit/Skrýt nabídky vlevo]
[Zobrazit/Skrýt nabídky vpravo]

Oprava rozpadleho DRBD

Tady je popsan zpusob nejjednodussi a nejsetrnejsi k zakaznikum.
Zakladnim cilem je dosahnout stavu, kdy na jednom z poli muzeme dat dotycny drbd device do stavu "Secondary". Pak mame v podstate vyhrano, protoze potom ho muzeme zpet pripojit k peeru. To vsak znamena, ze to drbdcko musime nejak vyradit z provozu, cili nesmi byt nijak pouzito.

  1. Zjistujeme, ktere VGcko je na rozpadlem drbd. Prikazem #pvs na poli.
  2. Zjistujeme, jak jsou nody aktualne pripojene k polim. "multipath -l" nam zjisti, ktery scsi host je zrovna aktivni (stav "active") ve vypisu a script /root/find_arr <cislo hostu>, ke kteremu poli patri.
  3. Zjistujeme, co vlastne na tom drbdcku je, na kterych polich/nodech jsou ty LVcka otevreny (stav ao v lvs).
  4. Rozhodujeme o tom, na kterem poli budeme provadet presun. To by melo byt to, ktere ma aktualne pouzivano min dat z rozpadleho drbd (vcetne nodu, aktualne toto polich pouzivajicih). Pokud jedno z poli se na nodech nepouziva vubec (mel by byt ted aktualni stav na vsech clusterech), vyhrava.
  5. vgchange -cn <VG> --config 'global {locking_type=0}'
  6. pvscan, vgscan, lvscan na vsech nodech!
  7. lvchange -aln /dev/<VG>/* (Presne tak! ne vgchange -an <VG>) na celem clusteru. Ocekavame hlasky, ze nektere lvcka nemohou byt deaktivovane. to je v poradku.


-Predpokladame, ze mame "volne" pole, tzn., takove, ktere neni pouzivano na nodech-

  1. Rozsirujeme <VG> o volny svazek: #vgextend <VG> <nove_PV> — od tohoto okamziku nesmi byt provadene zadne prace s LVS na jinych clusterovych nodech
  2. Postupne (po jednom) presouvame otevrena lvcka na <nove_PV>: #pvmove -n <LV> /dev/<rozpadle_drbd> - pozor! parametrem je PVS, _ze_ktereho_ chceme dat data pryc, ne na ktere. Tato operace smi byt provadena pochopitelne je na stroji, kde jsou ta LVcka otevrena. Je to zrejme z bodu 7 :)
  3. Prikazem pvdisplay --maps <rozpadle_drbd> se ujistujeme, ze skutecne vsechna dotycna lvcka uz jsou pryc.
  4. service scst stop
  5. drbdadm secondary <rozpadle_drbd>. Uff. Jsme v pulce.
  6. drbdadm --discard-my-data connect <rozpadle_r>; na druhem poli drbdadm connect <rozpadle_r>. Mela by zacit resynchronizace.
  7. drbdadm --primary <rozpadle_r>
  8. Po dokonceni resynchronizace odsouvame data zpet na drbd: #pvmove <nove_PV> - tady nemusime uvadet jednotliva LV, odsune to vsechna data z <nove_PV>
  9. Odpojujeme servisni svazek od <VG>: vgreduce <VG> <nove_PV>
  10. service scst start a cekame asi 20s, az se pripoji nody
  11. na celem clusteru: vgscan; lvscan; vgchange -aly <VG>
  12. vgchange -cy <VG>

Pri operacich s LV muze se obcas ukazat chyba o neconsistentnim stavu, ignorujeme, my vime, ze stav <VG> je inconsistentni.

Muze se stat, ze v bode 4 zjistime, ze nejaky nod pouziva data z rozpadleho drbd z pole, na kterem provadime presuny (cili, stav, kdy treba node21 je pripojeny k array01 a node22 je pripojen k array02 a na obou nodech jsou spustene sluzby, pouzivajici <VG>). Nejjednodussi je presunout sluzby z tohoto nodu na pole, na kterym pracujeme (davame ale pozor, aby se to nahodou neodsunulo na pole jine nebo na jiny nod. Je lepsi presun udelat pomoci clusvcadm -d <sluzba> na nodu a clusvcadm -e na poli, ne clusvcadm -r).


POZN:
V casablance neni volny prostor na opravu, udelal jsem tedy na piklio clusteru (10.111.0.41) iscsi oddil 600GB, ktery je mozno pripojit po siti 10.111.0.0/24 do jakehokoliv pole.

spusteni targetu na pikliu:
/etc/init.d/scst start

napr:
/etc/init.d/iscsid start
iscsiadm -m discovery -t st -p 10.111.0.41
iscsiadm -m node -T iqn.2012-10.casa.helper:tgt -p 10.111.0.41 -l

tim se pripoji dany disk do systemu, najdeme jeho nazev a povolime ho v /etc/lvm/lvm.conf ve filtru, aby se s nim dalo pracovat. Toto nezapomene vratit po operaci zpet.

nakonec se po skonceni disk odloguje:
iscsiadm -m node -T iqn.2012-10.casa.helper:tgt -p 10.111.0.41 -u

POZN k POZN:
V casablance je volny prostor na polich array03/array04, ktery lze kdykoliv pripojit k polim array01/array02 (/root/start_storage_consumer nebo rucne). Pro tento prostor (ktery bude v budoucnu pripojeny natrvalo) jiz jsou nastavene filtry v lvm.conf apod.


Created by zheka. Last Modification: Pátek 23 of únor, 2018 15:55:02 CET by dfabian.