Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua

Ua hoʻomākaukau ʻia ka unuhi ʻana o ka ʻatikala ma ka pō o ka hoʻomaka ʻana o ka papa "Ka Luna Hoʻokele Linux. Virtualization a me ka clustering".

ʻO DRBD (Distributed Replicated Block Device) he mea hoʻolaha hoʻolaha, maʻalahi, a hiki ke hoʻihoʻi hou ʻia no Linux. Hōʻike ia i nā ʻike o nā mea poloka e like me ka hard drive, partitions, logical volumes, etc. ma waena o nā kikowaena. Hoʻokumu ia i nā kope o ka ʻikepili ma nā mea mālama ʻelua i hiki ke hoʻohana ʻia ka ʻikepili ma ka lua inā hāʻule kekahi o lākou.

Hiki iā ʻoe ke ʻōlelo he mea like hoʻonohonoho RAID pūnaewele 1 me nā disks i palapala ʻia i nā kikowaena like ʻole. Eia naʻe, hana ʻokoʻa loa ia ma mua o RAID (ʻo RAID pūnaewele).

I ka hoʻomaka ʻana, hoʻohana nui ʻia ka DRBD i nā pūʻulu kamepiula kiʻekiʻe loa (HA), akā naʻe, e hoʻomaka ana me ka mana XNUMX, hiki ke hoʻohana ʻia no ka hoʻohana ʻana i nā ʻōnaehana mālama kapua.

Ma kēia ʻatikala, e wehewehe mākou pehea e hoʻokomo ai i ka DRBD ma CentOS a hōʻike pōkole pehea e hoʻohana ai iā ia e hana hou i ka waiho ʻana (ʻāpana) ma waena o ʻelua mau kikowaena. ʻO kēia ka ʻatikala kūpono e hoʻomaka me DRBD ma Linux.

Kaiapuni hoao

E hoʻohana mākou i ʻelua puʻupuʻu node no kēia hoʻonohonoho.

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

KaʻAnuʻu Hana 1: E hoʻouka i nā pūʻolo DRBD

Hoʻokomo ʻia ʻo DRBD ma ke ʻano he module kernel Linux. He mea hoʻokele ia no ka polokalamu poloka poloka, no laila aia ma lalo loa o ka waihona I/O o ka ʻōnaehana.

Hiki ke hoʻokomo ʻia ka DRBD mai ELRepo a i ʻole EPEL. E hoʻomaka kākou ma ka hoʻokomo ʻana i ke kī hoʻopaʻa inoa pūʻolo ELRepo a hoʻohui i ka waihona ma nā node ʻelua e like me ka hōʻike ʻana ma lalo nei.

# 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

A laila pono ʻoe e hoʻokomo i ka module DRBD kernel a me nā pono hana ma nā nodes ʻelua e hoʻohana ana:

# yum install -y kmod-drbd84 drbd84-utils

Inā hiki iā ʻoe ke SELinux, pono ʻoe e hoʻonohonoho i nā kulekele e hoʻokuʻu i nā kaʻina DRBD mai ka mana SELinux.

# semanage permissive -a drbd_t

Eia hou, inā e holo ana kāu ʻōnaehana i kahi pā ahi (firewalld), pono ʻoe e hoʻohui i ka port DRBD 7789 e ʻae i ka hoʻonohonoho ʻikepili ma waena o nā node ʻelua.

E holo i kēia mau kauoha no ka node mua:

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

A laila e holo i kēia mau kauoha no ka node ʻelua:

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

KaʻAnuʻu Hana 2: E hoʻomākaukau i kahi waihona haʻahaʻa haʻahaʻa

I kēia manawa ua hoʻokomo mākou i ka DRBD ma nā node cluster ʻelua, pono mākou e hoʻolako i nā wahi e mālama ai i ka nui like ma luna o lākou. ʻO kēia paha kahi ʻāpana paʻa paʻakikī (a i ʻole kahi kīkī kino holoʻokoʻa), kahi polokalamu RAID polokalamu, LVM logical volume a i ʻole kekahi ʻano mea poloka ʻē aʻe i loaʻa ma kāu ʻōnaehana.

No kēia ʻatikala, e hana mākou i kahi hāmeʻa hoʻāʻo 2GB me ka hoʻohana ʻana i ke kauoha dd.

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

E noʻonoʻo kākou he ʻāpana i hoʻohana ʻole ʻia (/dev/sdb1) ma kahi ʻāpana poloka lua (/dev/sdb) i hoʻopili ʻia i nā nodes ʻelua.

KaʻAnuʻu 3. Hoʻonohonoho i ka DRBD

DRBD waihona hoʻonohonoho nui − /etc/drbd.conf, a hiki ke loaʻa nā faila hoʻonohonoho hou ma ka papa kuhikuhi /etc/drbd.d.

No ka hana hou i ka waihona, pono mākou e hoʻohui i nā hoʻonohonoho pono i ka faila /etc/drbd.d/global_common.conf, i loaʻa nā ʻāpana honua a me ka laulā o ka hoʻonohonoho DRBD, a pono mākou e wehewehe i nā kumuwaiwai ma .res waihona.

E hana kāua i kope kope o ka faila kumu ma nā node ʻelua, a laila wehe i ka faila hou no ka hoʻoponopono ʻana (e hoʻohana i ka mea hoʻoponopono kikokikona o kāu koho).

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

Hoʻohui i kēia mau laina i nā faila ʻelua:

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

E mālama i ka faila a laila pani i ka mea hoʻoponopono.

E nānā kākou i ka laina protocol C no kekahi manawa. Kākoʻo ʻo DRBD i ʻekolu mau ʻano hana hoʻopiʻi like ʻole (ʻo ia hoʻi, ʻekolu degere o ka synchrony replication), ʻo ia hoʻi:

  • protocol A: protocol replication asynchronous; hoʻohana pinepine ʻia i nā hiʻohiʻona hoʻopiʻi lōʻihi.
  • protocol B: ʻO ka protocol replication Semi-synchronous a i ʻole ka protocol memory synchronous.
  • protocol C: hoʻohana mau ʻia no nā nodes i nā pūnaewele me nā mamao pōkole; ʻO kēia ma kahi mamao loa ka protocol replication maʻamau i hoʻohana ʻia i nā hoʻonohonoho DRBD.

nui: ʻO ke koho o ka protocol replication e pili ana i ʻelua mau mea hoʻolaha: palekana a me ka latency. ʻO ka ʻokoʻa, ʻaʻole hilinaʻi nui ka throughput i ka protocol replication i koho ʻia.

KaʻAnuʻu Hana 4: Hoʻohui i kahi kumuwaiwai

He huaʻōlelo umbrella ka punawai e pili ana i nā ʻano āpau o kahi ʻikepili i hoʻopili hou ʻia. E wehewehe mākou i kā mākou kumuwaiwai ma ka faila /etc/drbd.d/test.res.

E hoʻohui i kēia i ka faila ma nā node ʻelua (e hoʻomanaʻo e hoʻololi i nā ʻano me nā waiwai maoli no kou kaiapuni).

E hoʻolohe i nā inoa inoa, pono mākou e kuhikuhi i ka inoa inoa pūnaewele, hiki ke loaʻa me ka hoʻohana ʻana i ke kauoha 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;
        }
}
}

kahi:

  • ma ka inoa hoʻokipa: ʻO ka ʻāpana ma kahi e pili ai ka ʻōlelo hoʻonohonoho pūnana.
  • hōʻike: ʻO kēia ka inoa o ka punawai hou.
  • mea /dev/drbd0: E hōʻike ana i kahi polokalamu poloka virtual hou i mālama ʻia e DRBD.
  • disk /dev/sdb1: ʻO kēia kahi ʻāpana ʻāpana poloka he mea hoʻihoʻi no ka hāmeʻa DRBD.
  • meta-disk: E wehewehe i kahi e mālama ai ʻo DRBD i kāna metadata. ʻO loko ke ʻano o ka mālama ʻana o DRBD i kāna metadata ma ke ʻano haʻahaʻa haʻahaʻa kino like me ka ʻikepili maoli i ka hana ʻana.
  • aae?: Hōʻike i ka helu IP a me ka helu awa o ka node pili.

E hoʻomaopopo hoʻi inā loaʻa nā ʻāpana i nā waiwai like ma nā pūʻali ʻelua, hiki iā ʻoe ke kuhikuhi pololei iā lākou i ka ʻāpana waiwai.

No ka laʻana, hiki ke hoʻoponopono hou ʻia ka hoʻonohonoho ʻana i luna i:

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;
        		}
}

KaʻAnuʻu 5. Hoʻomaka a hoʻomaka i ka punawai

No ka launa pū ʻana me DRBD e hoʻohana mākou i kēia mau mea hoʻokele (e pili ana me ka module kernel e hoʻonohonoho a hoʻokele i nā kumuwaiwai DRBD):

  • drbdadm: Mea hana hoʻokele kūlana kiʻekiʻe o DRBD.
  • drbdsetup: He mea hana hoʻokele haʻahaʻa haʻahaʻa no ka hoʻopili ʻana i nā polokalamu DRBD i kā lākou mau mea hoʻihoʻi, hoʻonohonoho ʻana i nā pālua o nā hāmeʻa DRBD e hōʻike i kā lākou mau mea hoʻihoʻi, a no ka hōʻoia ʻana i ka hoʻonohonoho ʻana o nā mea hana DRBD.
  • Drbdmeta: Mea hana hoʻokele metadata.

Ma hope o ka hoʻohui ʻana i nā hoʻonohonoho kumu kumu mua, pono mākou e kāhea i ka kumuwaiwai ma nā node ʻelua.

# drbdadm create-md test

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Hoʻomaka i ka hale kūʻai Metadata

A laila pono mākou e holo ia, kahi e hoʻopili ai i ka punawai i kāna mea hoʻihoʻi, a laila hoʻonohonoho i nā ʻāpana replication a hoʻohui i ka kumuwaiwai i kāna hoa:

# drbdadm up test

I kēia manawa inā e holo ʻoe i ke kauoha lsblk, e ʻike ʻoe e pili ana ka mea DRBD / volume drbd0 me ka mea hoʻihoʻi /dev/sdb1:

# lsblk

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Papa inoa o nā mea poloka

No ka hoʻopau ʻana i kahi kumuwaiwai, holo:

# drbdadm down test

No ka nānā ʻana i ke kūlana o kahi kumuwaiwai, e holo i kēia kauoha (e hoʻomaopopo i ke kūlana o nā disks i manaʻo ʻia i kēia manawa Kūlike ʻole/kūlike ʻole):

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

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Ke nānā ʻana i ke kūlana o kahi kumuwaiwai ma
ino

KaʻAnuʻu Hana 6: E hoʻonoho i ke kumu kumu kumu hoʻonohonoho mua

Ma kēia pae, ua mākaukau ʻo DRBD e hele. I kēia manawa pono mākou e kuhikuhi i ka node e hoʻohana ʻia ma ke kumu o ka hoʻonohonoho ʻana o ka mīkini mua.

E holo i kēia kauoha ma ka node hoʻokahi wale nō e hoʻomaka i ka hoʻonohonoho piha mua:

# drbdadm primary --force test
# drbdadm status test

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Hoʻonohonoho i ka node mua e like me ka mea hana mua
Ke pau ka hoʻonohonoho ʻana, ʻo ka mokuʻāina o nā drive ʻelua e UpToDate.

KaʻAnuʻu Hana 7: Ke hoʻāʻo nei i ka hoʻonohonoho DRBD

ʻO ka mea hope loa, pono mākou e nānā inā e hana ka polokalamu DRBD e like me ka mea e pono ai e mālama i ka ʻikepili i hoʻopili ʻia. E hoʻomanaʻo ua hoʻohana mākou i kahi puʻupuʻu puʻupuʻu ʻole, no laila pono mākou e hana i kahi ʻōnaehana faila ma ka hāmeʻa a kau iā ia e nānā inā hiki iā mākou ke hoʻohana ia mea no ka mālama ʻana i ka ʻikepili hou.

Pono mākou e hana i kahi ʻōnaehana faila ma ka hāmeʻa me ka hoʻohana ʻana i kēia kauoha ma ka node kahi i hoʻomaka ai mākou i ka sync piha mua (ʻo ia kahi kumu me ka hana mua):

# mkfs -t ext4 /dev/drbd0

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Ke hana ʻana i kahi ʻōnaehana faila ma ka leo Drbd

A laila e kau iā ia e like me ka mea i hōʻike ʻia (hiki iā ʻoe ke hāʻawi i ka helu mauna i kahi inoa kūpono):

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

I kēia manawa kope a hana i kekahi mau faila ma ka piko mauna i luna a hana i kahi papa inoa lōʻihi me ls kauoha:

# cd /mnt/DRDB_PRI/
# ls -l 

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
E papa inoa i nā mea o ka nui Drbd nui

A laila, wehe i ka hāmeʻa (e hōʻoia i ka wehe ʻole ʻana o ka mauna, e hoʻololi i ka papa kuhikuhi ma hope o ka wehe ʻana e pale i nā hewa) a hoʻololi i ka hana node mai ke kumu mua a i ke kula kiʻekiʻe:

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

E hana i ka node ʻē aʻe (he kumuwaiwai me ke kuleana lua) ma mua, a laila e hoʻopili i kahi hāmeʻa iā ia a hoʻopuka i kahi papa inoa lōʻihi o nā wahi mauna. Inā maikaʻi ka hoʻonohonoho, aia nā faila a pau i mālama ʻia ma ka leo:

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

Hoʻonohonoho i ka DRBD no ka hoʻopili hou ʻana ma nā kikowaena CentOS 7 ʻelua
Ke nānā nei i ka hoʻonohonoho DRBD e holo ana ma ka node lua.

No ka ʻike hou aku, e ʻike i nā ʻaoʻao kōkua kōkua hoʻokele:

# man drbdadm
# man drbdsetup
# man drbdmeta

Kōkua: Palapala Hoʻohana DRBD.

Hōʻuluʻulu

ʻO ka DRBD he mea maʻalahi a maʻalahi hoʻi, e hoʻolilo iā ia i kahi hoʻoponopono hoʻopiʻi waihona kūpono no ka hoʻohui ʻana i ka HA i nā mea āpau. Ma kēia ʻatikala, ua hōʻike mākou pehea e hoʻokomo ai i ka DRBD ma CentOS 7 a hōʻike pōkole pehea e hoʻohana ai no ka hoʻopili hou ʻana. E ʻoluʻolu e kaʻana like i kou mau manaʻo me mākou me ka hoʻohana ʻana i ka palapala manaʻo ma lalo nei.

E aʻo hou e pili ana i ka papa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka