Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7

Kumasulira kwa nkhaniyi kunakonzedwa madzulo a chiyambi cha maphunziro "Linux Administrator. Virtualization ndi clustering".

DRBD (Distributed Replicated Block Device) ndi njira yogawa, yosinthika, komanso yosinthika yosungika kwa Linux. Imawonetsa zomwe zili pazida zotchinga monga ma hard drive, magawo, ma voliyumu omveka, ndi zina. pakati pa ma seva. Zimapanga makope a deta pazida ziwiri zosungirako kuti ngati imodzi mwa izo ikulephera, deta yachiwiri ingagwiritsidwe ntchito.

Inu mukhoza kunena kuti ndi chinachake chonga Kusintha kwa Network RAID 1 yokhala ndi ma disks ojambulidwa ku ma seva osiyanasiyana. Komabe, imagwira ntchito mosiyana kwambiri ndi RAID (ngakhale network RAID).

Poyambirira, DRBD idagwiritsidwa ntchito makamaka pamagulu apakompyuta (HA) omwe amapezeka kwambiri, komabe, kuyambira ndi mtundu wa XNUMX, atha kugwiritsidwa ntchito kuyika mayankho osungira mitambo.

M'nkhaniyi, tifotokoza momwe tingayikitsire DRBD pa CentOS ndikuwonetsa mwachidule momwe tingagwiritsire ntchito kusungirako (gawo) pamaseva awiri. Iyi ndiye nkhani yabwino kuti muyambe ndi DRBD pa Linux.

Malo Oyesera

Tigwiritsa ntchito ma node cluster pakukhazikitsa uku.

  • Node 1: 192.168.56.101 - tecmint.tecmint.lan
  • Node 2: 192.168.56.102 - server1.tecmint.lan

Khwerero 1: Ikani phukusi la DRBD

DRBD imayikidwa ngati gawo la Linux kernel. Ndi dalaivala wa chipangizo cha block block, chifukwa chake ili pansi pamtengo wa I/O wadongosolo.

DRBD ikhoza kukhazikitsidwa kuchokera ku ELRepo kapena EPEL. Tiyeni tiyambe ndikulowetsa kiyi yosayina phukusi la ELRepo ndikulumikiza chosungira pamfundo zonse ziwiri monga momwe zilili pansipa.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Kenako muyenera kukhazikitsa gawo la DRBD kernel ndi zothandizira pamfundo zonse ziwiri pogwiritsa ntchito:

# yum install -y kmod-drbd84 drbd84-utils

Ngati muli ndi SELinux, muyenera kukonza ndondomeko kuti musamawononge njira za DRBD kuchokera ku SELinux control.

# semanage permissive -a drbd_t

Kuonjezera apo, ngati makina anu akugwiritsira ntchito firewall (firewalld), muyenera kuwonjezera DRBD port 7789 kuti mulole kulunzanitsa deta pakati pa mfundo ziwirizi.

Pangani malamulo awa pa node yoyamba:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Kenako yendetsani malamulo awa pa node yachiwiri:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Gawo 2: Konzani Zosungira Zochepa

Tsopano popeza takhala ndi DRBD yoyika pamagulu onse awiri, tiyenera kupereka malo osungira pafupifupi ofanana kukula kwake. Izi zitha kukhala hard drive partition (kapena hard drive yonse), pulogalamu ya RAID, Mtengo wapatali wa magawo LVM kapena mtundu wina uliwonse wa chipika chipangizo opezeka pa dongosolo lanu.

Pankhaniyi, tipanga chida choyesera cha 2GB pogwiritsa ntchito lamulo la dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Tiyerekeze kuti ichi ndi gawo losagwiritsidwa ntchito (/dev/sdb1) pa chipangizo chachiwiri (/dev/sdb) cholumikizidwa ndi node zonse ziwiri.

Khwerero 3. Kukonzekera DRBD

Fayilo yayikulu yosinthira DRBD - /etc/drbd.conf, ndi mafayilo owonjezera osinthira atha kupezeka m'ndandanda /etc/drbd.d.

Kuti tibwereze zosungirako, tiyenera kuwonjezera masinthidwe ofunikira ku fayilo /etc/drbd.d/global_common.conf, yomwe ili ndi zigawo zapadziko lonse lapansi komanso zanthawi zonse za kasinthidwe ka DRBD, ndipo tikuyenera kutanthauzira zofunikira .res mafayilo.

Tiyeni tipange zosunga zobwezeretsera za fayilo yoyambirira pama node onse awiri, ndiyeno tsegulani fayilo yatsopanoyo kuti muyisinthe (gwiritsani ntchito mkonzi wamawu womwe mwasankha).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Onjezani mizere iyi pamafayilo onse awiri:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Sungani fayilo ndikutseka mkonzi.

Tiyeni tiyang'ane pamzere wa protocol C kwakanthawi. DRBD imathandizira mitundu itatu yobwerezabwereza (ndiko kuti, magawo atatu a synchrony), yomwe ndi:

  • protocol A: asynchronous replication protocol; nthawi zambiri amagwiritsidwa ntchito pazochitika zakutali.
  • protocol B: Semi-synchronous replication protocol kapena synchronous memory protocol.
  • protocol C: nthawi zambiri amagwiritsidwa ntchito popanga ma node mumanetiweki okhala ndi mtunda waufupi; iyi ndi njira yobwerezabwereza yomwe imagwiritsidwa ntchito kwambiri pamakonzedwe a DRBD.

chofunika: Kusankhidwa kwa protocol yobwereza kumakhudza zinthu ziwiri zotumizira: chitetezo ndi latency. Mosiyana ndi izi, kutulutsa sikudalira kwambiri pa protocol yosankhidwa yobwereza.

Gawo 4: Onjezani chothandizira

Resource ndi mawu ambulera omwe amatanthawuza mbali zonse za gulu linalake lofananizidwa. Tidzafotokozera gwero lathu mu fayilo /etc/drbd.d/test.res.

Onjezani zotsatirazi pafayilo pama node onse awiri (kumbukirani kuti musinthe zosinthazo ndi zomwe zili zenizeni zakumalo anu).

Samalani ndi mayina a hostnames, tiyenera kufotokoza dzina la network hostname, lomwe lingapezeke pogwiritsa ntchito lamulo la uname -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

kumene:

  • pa hostname: Gawo lomwe mawu a kasinthidwe amagwirira ntchito.
  • mayeso: Ili ndi dzina lachidziwitso chatsopano.
  • chipangizo /dev/drbd0: Ikuwonetsa chida chatsopano cha block choyendetsedwa ndi DRBD.
  • disk /dev/sdb1: Ichi ndi gawo lachida chotchinga chomwe ndi chipangizo chosunga zobwezeretsera cha chipangizo cha DRBD.
  • meta-disk: Imatanthawuza komwe DRBD imasunga metadata yake. Njira zamkati zomwe DRBD imasunga metadata yake pachida chotsika chofanana ndi zomwe zidapangidwa.
  • adiresi: Imawonetsa adilesi ya IP ndi nambala ya doko ya node yofananira.

Komanso dziwani kuti ngati magawo ali ndi mfundo zofanana pa makamu onse, mutha kuwafotokozera mwachindunji mugawo lazinthu.

Mwachitsanzo, masinthidwe apamwambawa atha kusinthidwa kukhala:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Gawo 5. Yambitsani ndi kuyambitsa gwero

Kuti tigwirizane ndi DRBD tidzagwiritsa ntchito zida zotsatirazi (zomwe zimalumikizana ndi gawo la kernel kukonza ndi kuyang'anira zothandizira za DRBD):

  • drbdadm: Chida chowongolera chapamwamba cha DRBD.
  • drbdsetup: Chida choyang'anira chapansi cholumikizira zida za DRBD ku zida zawo zosunga zobwezeretsera, kukonza zida za DRBD kuti ziwonetse zida zawo zosunga zobwezeretsera, komanso kutsimikizira masinthidwe a zida za DRBD.
  • Drbdmeta: Chida chowongolera metadata.

Pambuyo powonjezera masinthidwe onse oyambira, tiyenera kuyitanitsa gwero pamfundo zonse ziwiri.

# drbdadm create-md test

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Kuyambitsa Metadata Store

Kenaka tiyenera kuyendetsa, yomwe idzagwirizanitsa gwero ku chipangizo chake chosunga zobwezeretsera, kenaka yikani magawo obwereza ndikugwirizanitsa gwero ndi mnzake:

# drbdadm up test

Tsopano ngati mutayendetsa lamulo lsblk, mudzazindikira kuti chipangizo cha DRBD/volume drbd0 chikugwirizana ndi chipangizo chosungira /dev/sdb1:

# lsblk

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Mndandanda wa zida za block

Kuti mulepheretse gwero, thamangani:

# drbdadm down test

Kuti muwone momwe gwero lilili, yendetsani lamulo lotsatirali (zindikirani kuti ma disks akuyembekezeka pakadali pano. Zosagwirizana/Zosagwirizana):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Kuyang'ana mkhalidwe wa gwero
zoipa

Khwerero 6: Khazikitsani gwero loyambira / chipangizo choyambirira cholumikizira

Pakadali pano, DRBD yakonzeka kupita. Tsopano tiyenera kufotokoza kuti ndi mfundo iti yomwe iyenera kugwiritsidwa ntchito ngati gwero la kulunzanitsa koyambirira kwa chipangizocho.

Thamangani lamulo ili pa mfundo imodzi yokha kuti muyambe kulunzanitsa kokwanira:

# drbdadm primary --force test
# drbdadm status test

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Kukhazikitsa node yoyambira ngati chipangizo choyambirira
Kulunzanitsa kukatha, mawonekedwe a ma drive onsewo ayenera kukhala UpToDate.

Khwerero 7: Kuyesa kukhazikitsidwa kwa DRBD

Pomaliza, tiyenera kuyang'ana ngati chipangizo cha DRBD chidzagwira ntchito momwe chikufunikira kuti tisunge zomwe zafotokozedwazo. Kumbukirani kuti tidagwiritsa ntchito voliyumu yopanda kanthu ya diski, chifukwa chake tiyenera kupanga fayilo pazida ndikuyiyika kuti tiwone ngati titha kuigwiritsa ntchito kusunga deta yofananizidwa.

Tiyenera kupanga fayilo pa chipangizocho pogwiritsa ntchito lamulo lotsatirali pa node pomwe tidayambitsa kulunzanitsa koyambirira (komwe kuli ndi chida chokhala ndi gawo loyambirira):

# mkfs -t ext4 /dev/drbd0

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Kupanga fayilo yamafayilo pa voliyumu ya Drbd

Kenako ikani monga momwe zasonyezedwera (mutha kupatsa malo okwerawo dzina loyenera):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Tsopano koperani kapena pangani mafayilo pamalo okwera pamwambapa ndikupanga mndandanda wautali nawo ls malamulo:

# cd /mnt/DRDB_PRI/
# ls -l 

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Lembani zomwe zili mu voliyumu yayikulu ya Drbd

Kenako, tsitsani chipangizocho (onetsetsani kuti phirilo silinatsegulidwe, sinthani chikwatu mutatsitsa kuti mupewe zolakwika) ndikusintha gawo la node kuchokera ku pulayimale kupita yachiwiri:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Pangani mfundo ina (yomwe ili ndi chida chokhala ndi gawo lachiwiri) choyambirira, kenaka gwirizanitsani chipangizocho ndikutulutsa mndandanda wautali wa malo okwera. Ngati khwekhwe likuyenda bwino, mafayilo onse osungidwa pa voliyumu ayenera kukhalapo:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Kukhazikitsa DRBD kwa kubwereza kosungira pa ma seva awiri a CentOS 7
Kuyang'ana kukhazikitsidwa kwa DRBD kukuyenda pa node yachiwiri.

Kuti mudziwe zambiri, onani masamba othandizira zida zowongolera:

# man drbdadm
# man drbdsetup
# man drbdmeta

Thandizo: DRBD User Manual.

Chidule

DRBD ndiyosinthika kwambiri komanso yosunthika, ndikupangitsa kuti ikhale yankho lobwerezabwereza loyenera kuwonjezera HA ku pafupifupi ntchito iliyonse. M'nkhaniyi, tikuwonetsa momwe mungayikitsire DRBD pa CentOS 7 ndikuwonetsa mwachidule momwe mungagwiritsire ntchito posungirako. Khalani omasuka kugawana nafe malingaliro anu pogwiritsa ntchito fomu yomwe ili pansipa.

Dziwani zambiri za maphunzirowa.

Source: www.habr.com

Kuwonjezera ndemanga