Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server

Ang pagsasalin ng artikulo ay inihanda sa bisperas ng pagsisimula ng kurso "Linux Administrator. Virtualization at clustering".

Ang DRBD (Distributed Replicated Block Device) ay isang distributed, flexible, at universally replicable storage solution para sa Linux. Sinasalamin nito ang mga nilalaman ng mga block device tulad ng mga hard drive, partition, logical volume, atbp. sa pagitan ng mga server. Lumilikha ito ng mga kopya ng data sa dalawang storage device upang kung mabigo ang isa sa mga ito, magagamit ang data sa pangalawa.

Maaari mong sabihin na ito ay isang bagay tulad ng pagsasaayos ng network RAID 1 na may mga disk na nakamapa sa iba't ibang mga server. Gayunpaman, ganap itong gumagana kaysa sa RAID (kahit na network RAID).

Sa una, ang DRBD ay pangunahing ginagamit sa high availability (HA) na mga computer cluster, gayunpaman, simula sa bersyon XNUMX, maaari itong magamit upang mag-deploy ng mga solusyon sa cloud storage.

Sa artikulong ito, ipapaliwanag namin kung paano i-install ang DRBD sa CentOS at ipapakita sa madaling sabi kung paano ito gamitin upang kopyahin ang storage (partition) sa dalawang server. Ito ang perpektong artikulo para makapagsimula sa DRBD sa Linux.

Kapaligirang pang eksperiment

Gagamit kami ng dalawang node cluster para sa setup na ito.

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

Hakbang 1: I-install ang mga pakete ng DRBD

Ang DRBD ay ipinatupad bilang isang Linux kernel module. Ito ay isang driver para sa isang virtual block device, kaya ito ay matatagpuan sa pinakailalim ng I/O stack ng system.

Maaaring i-install ang DRBD mula sa ELRepo o EPEL. Magsimula tayo sa pamamagitan ng pag-import ng ELRepo package signing key at pagkonekta sa repositoryo sa parehong mga node tulad ng ipinapakita sa ibaba.

# 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

Pagkatapos ay kailangan mong i-install ang DRBD kernel module at mga utility sa parehong mga node gamit ang:

# yum install -y kmod-drbd84 drbd84-utils

Kung pinagana mo ang SELinux, kailangan mong i-configure ang mga patakaran para ma-exempt ang mga proseso ng DRBD mula sa kontrol ng SELinux.

# semanage permissive -a drbd_t

Bukod pa rito, kung ang iyong system ay nagpapatakbo ng firewall (firewalld), kakailanganin mong magdagdag ng DRBD port 7789 upang payagan ang pag-synchronize ng data sa pagitan ng dalawang node.

Patakbuhin ang mga utos na ito para sa unang node:

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

Pagkatapos ay patakbuhin ang mga utos na ito para sa pangalawang node:

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

Hakbang 2: Maghanda ng Low-Level Storage

Ngayon na mayroon kaming DRBD na naka-install sa parehong mga cluster node, dapat kaming maglaan ng mga lugar ng imbakan na humigit-kumulang sa parehong laki sa mga ito. Ito ay maaaring isang hard drive partition (o isang buong pisikal na hard drive), isang software RAID device, LVM lohikal na dami o anumang iba pang uri ng block device na makikita sa iyong system.

Para sa artikulong ito, gagawa kami ng 2GB na test block device gamit ang dd command.

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

Ipagpalagay natin na ito ay isang hindi nagamit na partition (/dev/sdb1) sa pangalawang block device (/dev/sdb) na konektado sa parehong node.

Hakbang 3. Pag-configure ng DRBD

DRBD pangunahing configuration file βˆ’ /etc/drbd.conf, at ang mga karagdagang configuration file ay matatagpuan sa direktoryo /etc/drbd.d.

Upang kopyahin ang storage, kailangan naming idagdag ang mga kinakailangang configuration sa file /etc/drbd.d/global_common.conf, na naglalaman ng mga global at pangkalahatang seksyon ng configuration ng DRBD, at kailangan nating tukuyin ang mga mapagkukunan sa .res mga file.

Gumawa tayo ng backup na kopya ng orihinal na file sa magkabilang node, at pagkatapos ay buksan ang bagong file para sa pag-edit (gumamit ng text editor na gusto mo).

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

Idagdag ang mga sumusunod na linya sa parehong mga file:

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

I-save ang file at pagkatapos ay isara ang editor.

Tingnan natin sandali ang linya ng protocol C. Sinusuportahan ng DRBD ang tatlong magkakaibang mga mode ng pagtitiklop (iyon ay, tatlong antas ng synchrony ng pagtitiklop), ibig sabihin:

  • protocol A: asynchronous replication protocol; pinakamadalas na ginagamit sa mga senaryo ng pagtitiklop ng mahabang distansya.
  • protocol B: Semi-synchronous replication protocol o synchronous memory protocol.
  • protocol C: karaniwang ginagamit para sa mga node sa mga network na may maikling distansya; ito ang pinakakaraniwang ginagamit na protocol ng pagtitiklop sa mga setting ng DRBD.

Mahalagang: Ang pagpili ng replication protocol ay nakakaapekto sa dalawang salik sa pag-deploy: seguridad at latency. Sa kabaligtaran, ang throughput ay hindi nakadepende nang malaki sa napiling protocol ng pagtitiklop.

Hakbang 4: Magdagdag ng mapagkukunan

Ang mapagkukunan ay isang umbrella term na tumutukoy sa lahat ng aspeto ng isang partikular na kinopya na dataset. Tutukuyin namin ang aming mapagkukunan sa file /etc/drbd.d/test.res.

Idagdag ang sumusunod sa file sa parehong mga node (tandaan na palitan ang mga variable ng aktwal na mga halaga para sa iyong kapaligiran).

Bigyang-pansin ang mga hostname, kailangan nating tukuyin ang hostname ng network, na maaaring makuha gamit ang uname command -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;
        }
}
}

kung saan:

  • sa hostname: Ang seksyong on kung saan nalalapat ang nested na configuration statement.
  • pagsusulit: Ito ang pangalan ng bagong mapagkukunan.
  • device /dev/drbd0: Nagsasaad ng bagong virtual block device na pinamamahalaan ng DRBD.
  • disk /dev/sdb1: Ito ay isang block device partition na isang backup na device para sa DRBD device.
  • meta-disk: Tinutukoy kung saan iniimbak ng DRBD ang metadata nito. Ang panloob ay nangangahulugan na iniimbak ng DRBD ang metadata nito sa parehong pisikal na mababang antas na device gaya ng aktwal na data sa produksyon.
  • tirahan: Isinasaad ang IP address at port number ng kaukulang node.

Tandaan din na kung ang mga parameter ay may parehong mga halaga sa parehong mga host, maaari mong tukuyin ang mga ito nang direkta sa seksyon ng mga mapagkukunan.

Halimbawa, ang pagsasaayos sa itaas ay maaaring i-restructure sa:

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

Hakbang 5. Magsimula at ilunsad ang mapagkukunan

Upang makipag-ugnayan sa DRBD gagamitin namin ang mga sumusunod na tool sa pangangasiwa (na nakikipag-ugnayan sa kernel module upang i-configure at pangasiwaan ang mga mapagkukunan ng DRBD):

  • drbdadm: tool sa pangangasiwa ng mataas na antas ng DRBD.
  • drbdsetup: Isang mas mababang antas na tool sa pangangasiwa para sa pagkonekta ng mga DRBD device sa kanilang mga backup na device, pag-configure ng mga pares ng mga DRBD device upang ipakita ang kanilang mga backup na device, at para sa pag-verify ng configuration ng pagpapatakbo ng mga DRBD device.
  • Drbdmeta: Tool sa pamamahala ng metadata.

Pagkatapos idagdag ang lahat ng mga paunang pagsasaayos ng mapagkukunan, dapat nating gamitin ang mapagkukunan sa parehong mga node.

# drbdadm create-md test

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Sinisimulan ang Metadata Store

Susunod na kailangan nating patakbuhin ito, na magkokonekta sa mapagkukunan sa backup na aparato nito, pagkatapos ay itakda ang mga parameter ng pagtitiklop at ikonekta ang mapagkukunan sa peer nito:

# drbdadm up test

Ngayon kung patakbuhin mo ang utos lsblk, mapapansin mo na ang DRBD device/volume drbd0 ay nauugnay sa backup na device /dev/sdb1:

# lsblk

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Listahan ng mga block device

Upang huwag paganahin ang isang mapagkukunan, patakbuhin ang:

# drbdadm down test

Upang suriin ang katayuan ng isang mapagkukunan, patakbuhin ang sumusunod na command (tandaan na ang katayuan ng mga disk ay inaasahan sa puntong ito Hindi pare-pareho/Hindi pare-pareho):

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

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Sinusuri ang katayuan ng isang mapagkukunan sa
kasamaan

Hakbang 6: Itakda ang pangunahing mapagkukunan/paunang pinagmumulan ng pag-synchronize ng device

Sa yugtong ito, handa na ang DRBD. Ngayon kailangan nating tukuyin kung aling node ang dapat gamitin bilang pinagmulan ng paunang pag-synchronize ng device.

Patakbuhin ang sumusunod na utos sa isang node lamang upang simulan ang unang buong pag-synchronize:

# drbdadm primary --force test
# drbdadm status test

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Ang pagtatakda ng pangunahing node bilang paunang aparato
Kapag kumpleto na ang pag-synchronize, ang estado ng parehong mga drive ay dapat na UpToDate.

Hakbang 7: Pagsubok sa DRBD setup

Sa wakas, kailangan nating suriin kung gagana ang DRBD device kung kinakailangan upang maiimbak ang kinopya na data. Tandaan na gumamit kami ng isang walang laman na volume ng disk, kaya dapat kaming lumikha ng isang file system sa device at i-mount ito upang tingnan kung magagamit namin ito upang mag-imbak ng kinopyang data.

Kailangan naming lumikha ng isang file system sa device gamit ang sumusunod na command sa node kung saan namin sinimulan ang unang buong pag-sync (na may mapagkukunan na may pangunahing tungkulin):

# mkfs -t ext4 /dev/drbd0

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Paglikha ng isang file system sa dami ng Drbd

Pagkatapos ay i-mount ito tulad ng ipinapakita (maaari mong bigyan ang mount point ng angkop na pangalan):

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

Ngayon kopyahin o lumikha ng ilang mga file sa itaas na mount point at gumawa ng mahabang listahan na may utos ni ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Ilista ang mga nilalaman ng pangunahing dami ng Drbd

Susunod, i-unmount ang device (siguraduhing hindi nakabukas ang mount, palitan ang direktoryo pagkatapos i-unmount para maiwasan ang mga error) at baguhin ang node role mula sa pangunahin hanggang sa pangalawa:

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

Gawing pangunahin ang isa pang node (na mayroong resource na may pangalawang tungkulin), pagkatapos ay mag-attach ng device dito at magbigay ng mahabang listahan ng mga mount point. Kung gumagana nang maayos ang pag-setup, lahat ng file na nakaimbak sa volume ay dapat naroroon:

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

Pagse-set up ng DRBD para sa storage replication sa dalawang CentOS 7 server
Sinusuri ang DRBD setup na tumatakbo sa pangalawang node.

Para sa higit pang impormasyon, tingnan ang mga pahina ng tulong sa mga tool na pang-administratibo:

# man drbdadm
# man drbdsetup
# man drbdmeta

FAQ: Manwal ng Gumagamit ng DRBD.

Buod

Ang DRBD ay lubhang nababaluktot at maraming nalalaman, ginagawa itong isang storage replication solution na angkop para sa pagdaragdag ng HA sa halos anumang aplikasyon. Sa artikulong ito, ipinakita namin kung paano i-install ang DRBD sa CentOS 7 at maikling ipinakita kung paano ito gamitin para sa pagtitiklop ng imbakan. Huwag mag-atubiling ibahagi ang iyong mga saloobin sa amin gamit ang form ng feedback sa ibaba.

Matuto pa tungkol sa kurso.

Pinagmulan: www.habr.com

Magdagdag ng komento