Giunsa ang Pag-setup sa DRBD aron Pag-replicate sa Pagtipig sa Duha ka CentOS 7 Servers


Ang DRBD (nagbarog alang sa Distributed Replicated Block Device) usa ka distributed, flexible ug versatile replicated storage solution para sa Linux. Gisalamin niini ang sulod sa mga block device sama sa hard disks, partitions, logical volumes ug uban pa tali sa mga server. Naglangkob kini sa usa ka kopya sa datos sa duha ka mga aparato sa pagtipig, nga kung ang usa mapakyas, ang datos sa pikas mahimong magamit.

Mahimo nimong hunahunaon kini sama sa usa ka network nga RAID 1 nga pagsumpo sa mga disk nga gisalamin sa mga server. Bisan pa, kini naglihok sa lahi kaayo nga paagi gikan sa RAID ug bisan sa network RAID.

Sa sinugdan, ang DRBD kasagarang gigamit sa high availability (HA) nga mga computer clusters, bisan pa, sugod sa bersyon 9, mahimo kining gamiton sa pag-deploy sa cloud storage solutions.

Sa kini nga artikulo, ipakita namon kung giunsa ang pag-install sa DRBD sa CentOS ug ipakita sa kadali kung giunsa kini gamiton aron makopya ang pagtipig (partisyon) sa duha nga mga server. Kini ang hingpit nga artikulo aron makasugod ka sa paggamit sa DRBD sa Linux.

Alang sa katuyoan niini nga artikulo, naggamit kami og duha ka node cluster alang niini nga setup.

  • Node1: 192.168.56.101 – tecmint.tecmint.lan
  • Node2: 192.168.56.102 – server1.tecmint.lan

Lakang 1: Pag-instalar sa DRBD Packages

Ang DRBD gipatuman isip usa ka Linux kernel module. Kini tukma nga naglangkob sa usa ka drayber alang sa usa ka virtual block device, mao nga kini gitukod duol sa ubos sa usa ka sistema sa I/O stack.

Ang DRBD mahimong ma-install gikan sa ELRepo o EPEL nga mga repositoryo. Magsugod kita pinaagi sa pag-import sa ELRepo package signing key, ug i-enable ang repository sama sa gipakita sa duha ka node.

# 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

Dayon mahimo natong i-install ang DRBD kernel module ug mga utilities sa duha ka mga node pinaagi sa pagdagan:

# yum install -y kmod-drbd84 drbd84-utils

Kung gipagana nimo ang SELinux, kinahanglan nimo nga usbon ang mga palisiya aron ma-exempt ang mga proseso sa DRBD gikan sa kontrol sa SELinux.

# semanage permissive -a drbd_t

Dugang pa, kung ang imong sistema adunay firewall nga gipagana (firewalld), kinahanglan nimo nga idugang ang DRBD port 7789 sa firewall aron tugotan ang pag-synchronize sa datos tali sa duha ka mga node.

Pagdalagan kini nga mga sugo 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

Dayon padagana kini nga mga sugo sa ikaduhang 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

Lakang 2: Pag-andam sa Ubos nga lebel sa Pagtipig

Karon nga na-install na namo ang DRBD sa duha ka cluster node, kinahanglang mag-andam mi og halos parehas nga gidak-on nga storage area sa duha ka node. Mahimo kining partition sa hard drive (o full physical hard drive), software RAID device, LVM Logical Volume o bisan unsang block device type nga makita sa imong system.

Alang sa katuyoan niini nga artikulo, maghimo kami usa ka dummy block device nga adunay gidak-on nga 2GB gamit ang dd command.

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

Atong isipon nga kini usa ka wala magamit nga partisyon (/ dev/sdb1) sa ikaduha nga block device (/ dev/sdb) nga gilakip sa duha ka mga node.

Lakang 3: Pag-configure sa DRBD

Ang nag-unang configuration file sa DRBD nahimutang sa /etc/drbd.conf ug ang dugang nga config files makita sa /etc/drbd.d directory.

Aron makopya ang storage, kinahanglan namong idugang ang gikinahanglan nga mga configuration sa /etc/drbd.d/global_common.conf file nga naglangkob sa global ug komon nga mga seksyon sa DRBD configuration ug mahimo natong ipasabot ang mga resources sa .res files.

Maghimo kita og backup sa orihinal nga file sa duha ka mga node, dayon ablihi ang usa ka bag-ong file alang sa pag-edit (gamit ang text editor nga imong gusto).

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

Idugang ang mosunod nga mga linya sa duha ka mga file:

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

I-save ang file, ug dayon isira ang editor.

Atong tabonan sa makadiyot ang dugang nga kahayag sa linya nga protocol C. Gisuportahan sa DRBD ang tulo ka lahi nga mga mode sa pagkopya (sa ingon tulo ka ang-ang sa pagka-synchronicity sa replikasyon) nga mao ang:

  • protocol A: Asynchronous replication protocol; kini kasagarang gigamit sa long distance replication scenario.
  • protocol B: Semi-synchronous replication protocol aka Memory synchronous protocol.
  • protocol C: kasagarang gigamit alang sa mga node sa mugbo nga distansya nga mga network; mao na kini, ang kasagarang gigamit nga protocol sa pagkopya sa mga setup sa DRBD.

Importante: Ang pagpili sa replication protocol nag-impluwensya sa duha ka hinungdan sa imong deployment: proteksyon ug latency. Ug ang throughput, sa kasukwahi, kadaghanan independente sa gipili nga protocol sa pagkopya.

Lakang 4: Pagdugang og Resource

Ang kahinguhaan mao ang kolektibong termino nga nagtumong sa tanang aspeto sa usa ka partikular nga gikopya nga set sa datos. Atong ipasabot ang atong kahinguhaan sa file nga gitawag og /etc/drbd.d/test.res.

Idugang ang mosunod nga sulod sa file, sa duha ka node (hinumdomi nga pulihan ang mga variable sa sulod sa aktuwal nga mga bili alang sa imong palibot).

Timan-i ang mga hostname, kinahanglan natong itakda ang network hostname nga makuha pinaagi sa pagpadagan sa command 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;
        }
}
}

diin:

  • sa hostname: ang on nga seksyon nag-ingon nga nag-host sa gilakip nga mga pahayag sa configuration magamit sa.
  • test: mao ang ngalan sa bag-ong kapanguhaan.
  • device /dev/drbd0: nagpiho sa bag-ong virtual block device nga gidumala sa DRBD.
  • disk /dev/sdb1: mao ang block device partition nga mao ang backing device para sa DRBD device.
  • meta-disk: Nagpasabot kung asa gitipigan sa DRBD ang metadata niini. Ang paggamit sa Internal nagpasabot nga gitipigan sa DRBD ang meta data niini sa parehas nga pisikal nga ubos nga lebel nga aparato sama sa aktwal nga datos sa produksiyon.
  • address: nagpiho sa IP address ug port number sa tagsa-tagsa ka node.

Timan-i usab nga kung ang mga kapilian adunay managsama nga kantidad sa duha nga mga host, mahimo nimo nga ipiho kini direkta sa seksyon sa kapanguhaan.

Pananglitan, ang pag-configure sa ibabaw mahimong mabag-o 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;
        		}
}

Lakang 5: Pagsugod ug Pag-enable sa Resource

Aron makig-interact sa DRBD, among gamiton ang mosunod nga mga himan sa administrasyon nga makigkomunikar sa kernel module aron ma-configure ug mapangalagad ang mga kapanguhaan sa DRBD:

  • drbdadm: usa ka taas nga lebel nga himan sa pagdumala sa DRBD.
  • drbdsetup: usa ka ubos nga lebel nga himan sa pagdumala aron i-attach ang mga DRBD device sa ilang mga backing block device, aron i-set up ang mga pares sa DRBD device aron masalamin ang ilang mga backing block device, ug aron masusi ang configuration sa mga DRBD device.
  • Drbdmeta:mao ang meta data management tool.

Human sa pagdugang sa tanan nga mga inisyal nga resource configurations, kinahanglan natong dad-on ang resource sa duha ka node.

# drbdadm create-md test

Sunod, kinahanglan natong palihokon ang kapanguhaan, nga mag-attach sa kapanguhaan uban sa iyang backing device, unya kini magtakda sa mga parameter sa pagkopya, ug magkonektar sa kapanguhaan ngadto sa iyang kaedad:

# drbdadm up test

Karon kung imong gipadagan ang lsblk command, imong mamatikdan nga ang DRBD device/volume drbd0 nalangkit sa backing device /dev/sdb1:

# lsblk

Aron ma-disable ang kapanguhaan, pagdagan:

# drbdadm down test

Aron masusi ang status sa kahinguhaan, padagana ang mosunod nga sugo (timan-i nga ang Inconsistent/Inconsistent disk state gipaabot niining puntoha):

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

Lakang 6: Itakda ang Panguna nga Kapanguhaan/Source sa Initial Device Synchronization

Niini nga yugto, ang DRBD andam na alang sa operasyon. Kinahanglan na naton isulti kung unsang node ang kinahanglan gamiton ingon gigikanan sa una nga pag-synchronize sa aparato.

Pagdalagan ang mosunod nga sugo sa usa lamang ka node aron masugdan ang unang bug-os nga pag-synchronize:

# drbdadm primary --force test
# drbdadm status test

Kung nahuman na ang pag-synchronize, ang kahimtang sa duha nga mga disk kinahanglan nga UpToDate.

Lakang 7: Pagsulay sa DRBD Setup

Sa katapusan, kinahanglan namon nga sulayan kung ang aparato sa DRBD molihok nga maayo alang sa gikopya nga pagtipig sa datos. Hinumdumi, gigamit namon ang usa ka walay sulod nga gidaghanon sa disk, busa kinahanglan nga maghimo kami usa ka filesystem sa aparato, ug i-mount kini, aron masulayan kung magamit ba namon kini alang sa gikopya nga pagtipig sa datos.

Makahimo kami usa ka filesystem sa aparato nga adunay mosunud nga mando, sa node diin gisugdan namon ang una nga bug-os nga pag-synchronize (nga adunay kapanguhaan nga adunay panguna nga papel):

# mkfs -t ext4 /dev/drbd0 

Dayon i-mount kini sama sa gipakita (mahimo nimong hatagan ang mount point og angay nga ngalan):

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

Karon kopyaha o paghimo og pipila ka mga file sa ibabaw nga mount point ug paghimo og taas nga listahan gamit ang ls command:

# cd /mnt/DRDB_PRI/
# ls -l 

Sunod, i-unmount ang device (siguruha nga dili bukas ang mount, usba ang direktoryo pagkahuman i-unmount kini aron mapugngan ang bisan unsang mga sayup) ug usba ang papel sa node gikan sa panguna hangtod sa sekondarya:

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

Sa pikas node (nga adunay kahinguhaan nga adunay ikaduha nga papel), himoa kini nga panguna, dayon i-mount ang aparato sa ibabaw niini ug paghimo usa ka taas nga lista sa mount point. Kung maayo ang pagtrabaho sa setup, ang tanan nga mga file nga gitipigan sa volume kinahanglan naa didto:

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

Alang sa dugang nga impormasyon, tan-awa ang mga panid sa tawo sa mga gamit sa pagdumala sa wanang sa gumagamit:

# man drbdadm
# man drbdsetup
# man drbdmeta

Reperensya: Ang Giya sa Gumagamit sa DRBD.

Ang DRBD hilabihan ka flexible ug versatile, nga naghimo niini nga usa ka storage replication solution nga angay alang sa pagdugang sa HA sa halos bisan unsang aplikasyon. Sa kini nga artikulo, gipakita namon kung giunsa ang pag-install sa DRBD sa CentOS 7 ug gipakita sa kadali kung giunsa kini gamiton aron makopya ang pagtipig. Mobati nga gawasnon nga ipaambit kanamo ang imong mga hunahuna pinaagi sa porma sa feedback sa ubos.