Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7

Tarjamahan tina artikel ieu disiapkeun dina wengi mimiti kursus "Pangurus Linux. Virtualisasi sareng klaster".

DRBD (Distributed Replicated Block Device) mangrupikeun solusi panyimpenan anu disebarkeun, fleksibel, sareng universal pikeun Linux. Éta ngagambarkeun eusi alat blok sapertos hard drive, partisi, volume logis, jsb. antara server. Éta nyiptakeun salinan data dina dua alat panyimpen supados upami salah sahijina gagal, data anu kadua tiasa dianggo.

Anjeun tiasa nyarios sapertos kitu konfigurasi RAID jaringan 1 kalawan disk dipetakeun ka server béda. Sanajan kitu, gawéna lengkep béda ti RAID (malah jaringan RAID).

Mimitina, DRBD dipaké utamana dina klaster komputer kasadiaan tinggi (HA), kumaha oge, dimimitian ku versi XNUMX, éta bisa dipaké pikeun nyebarkeun solusi gudang awan.

Dina tulisan ieu, kami bakal ngajelaskeun kumaha carana masang DRBD dina CentOS sareng sakedap nunjukkeun kumaha ngagunakeunana pikeun ngayakeun réplikasi panyimpenan (partisi) dina dua server. Ieu mangrupikeun tulisan anu sampurna pikeun ngamimitian DRBD dina Linux.

Lingkungan tés

Urang bakal ngagunakeun dua titik klaster pikeun setelan ieu.

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

Lengkah 1: Pasang bungkusan DRBD

DRBD dilaksanakeun salaku modul kernel Linux. Éta mangrupikeun supir pikeun alat blok virtual, ku kituna ayana di handapeun tumpukan I / O sistem.

DRBD tiasa dipasang ti ELRepo atanapi EPEL. Hayu urang mimitian ku ngimpor konci pakét ELRepo sareng nyambungkeun gudang dina kadua titik sapertos anu dipidangkeun di handap ieu.

# 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

Teras anjeun kedah pasang modul kernel sareng utilitas DRBD dina kadua titik nganggo:

# yum install -y kmod-drbd84 drbd84-utils

Upami anjeun ngaktipkeun SELinux, anjeun kedah ngonpigurasikeun kawijakan pikeun ngabebaskeun prosés DRBD tina kontrol SELinux.

# semanage permissive -a drbd_t

Salaku tambahan, upami sistem anjeun ngajalankeun firewall (firewalld), anjeun kedah nambihan port DRBD 7789 pikeun ngamungkinkeun sinkronisasi data antara dua titik.

Jalankeun paréntah ieu pikeun titik kahiji:

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

Teras jalankeun paréntah ieu pikeun titik kadua:

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

Lengkah 2: Nyiapkeun Panyimpenan Tingkat Rendah

Ayeuna urang parantos dipasang DRBD dina dua titik kluster, urang kedah nyayogikeun tempat panyimpen anu ukuranana sami. Ieu tiasa janten partisi hard drive (atanapi sadayana hard drive fisik), alat RAID software, volume logis LVM atawa tipe séjén alat block kapanggih dina sistem Anjeun.

Pikeun tulisan ieu, urang bakal nyiptakeun alat blok uji 2GB nganggo paréntah dd.

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

Hayu urang nganggap ieu partisi henteu kapake (/ dev / sdb1) dina alat blok kadua (/ dev / sdb) disambungkeun ka duanana titik.

Lengkah 3. Konfigurasi DRBD

DRBD file konfigurasi utama − /etc/drbd.conf, sareng file konfigurasi tambahan tiasa dipendakan dina diréktori /etc/drbd.d.

Pikeun ngayakeun réplikasi gudang, urang kedah nambihan konfigurasi anu diperyogikeun kana file /etc/drbd.d/global_common.conf, nu ngandung bagian global jeung umum tina konfigurasi DRBD, sarta kami kudu nangtukeun sumberdaya di .res file.

Hayu urang ngadamel salinan cadangan file asli dina kadua titik, teras buka file énggal pikeun ngédit (nganggo pangropéa téksu anu dipikahoyong).

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

Tambihkeun garis di handap ieu kana kadua file:

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

Simpen file teras tutup editor.

Hayu urang tingali garis protokol C sakedap. DRBD ngadukung tilu modeu réplikasi anu béda (nyaéta, tilu derajat sinkronisasi réplikasi), nyaéta:

  • protokol A: protokol réplikasi Asynchronous; paling sering dianggo dina skenario réplikasi jarak jauh.
  • protokol B: protokol réplikasi semi-sinkron atawa protokol memori sinkron.
  • protokol C: biasana dipaké pikeun titik dina jaringan kalawan jarak pondok; Ieu ku tebih protokol réplikasi anu paling sering dianggo dina setélan DRBD.

penting: Pilihan protokol réplikasi mangaruhan dua faktor panyebaran: kaamanan sareng latency. Sabalikna, throughput henteu gumantung sacara signifikan kana protokol réplikasi anu dipilih.

Lengkah 4: Tambahkeun sumberdaya a

Sumberdaya mangrupikeun istilah payung anu ngarujuk kana sagala aspek tina set data réplikasi tinangtu. Urang bakal nangtukeun sumberdaya urang dina file /etc/drbd.d/test.res.

Tambihkeun ieu kana file dina kadua titik (inget pikeun ngagentos variabel sareng nilai saleresna pikeun lingkungan anjeun).

Nengetan ngaran host, urang kedah nangtukeun hostname jaringan, anu tiasa didapet nganggo paréntah 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;
        }
}
}

dimana:

  • dina hostname: Bagian on mana pernyataan konfigurasi nested lumaku.
  • ujian: Ieu nami sumberdaya anyar.
  • alat /dev/drbd0: Nunjukkeun alat blok virtual anyar nu dikelola ku DRBD.
  • disk / dev / sdb1: Ieu partisi alat block nu mangrupakeun alat cadangan pikeun alat DRBD.
  • meta-disk: Nangtukeun dimana DRBD nyimpen metadata na. Internal hartina DRBD nyimpen metadata na dina alat tingkat low fisik sarua jeung data sabenerna dina produksi.
  • alamat: Nunjukkeun alamat IP sareng nomer port tina titik anu saluyu.

Catet ogé yén upami parameter gaduh nilai anu sami dina duanana host, anjeun tiasa langsung netepkeunana dina bagian sumberdaya.

Contona, konfigurasi di luhur bisa disusun deui jadi:

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

Lengkah 5. Initialize tur ngajalankeun sumberdaya

Pikeun berinteraksi sareng DRBD kami bakal nganggo alat administrasi di handap ieu (anu berinteraksi sareng modul kernel pikeun ngonpigurasikeun sareng ngatur sumberdaya DRBD):

  • drbdadm: Alat administrasi tingkat luhur DRBD.
  • drbdsetup: Alat administrasi tingkat handap pikeun nyambungkeun alat DRBD ka alat cadangan maranéhanana, ngonpigurasikeun pasangan alat DRBD pikeun ngagambarkeun alat cadangan maranéhanana, sarta pikeun verifikasi konfigurasi ngajalankeun alat DRBD.
  • Drbdmeta: Alat manajemén métadata.

Saatos nambahkeun sagala konfigurasi sumberdaya awal, urang kudu nelepon sumberdaya on duanana titik.

# drbdadm create-md test

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Initializing toko metadata

Salajengna urang kedah ngajalankeun éta, anu bakal nyambungkeun sumberdaya ka alat cadangan na, teras nyetel parameter réplikasi tur sambungkeun sumberdaya ka peer na:

# drbdadm up test

Ayeuna upami anjeun ngajalankeun paréntah lsblk, Anjeun bakal aya bewara yén alat DRBD / volume drbd0 pakait sareng alat cadangan /dev/sdb1:

# lsblk

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Daptar alat block

Pikeun nganonaktipkeun sumberdaya, jalankeun:

# drbdadm down test

Pikeun mariksa status sumber daya, jalankeun paréntah di handap ieu (perhatikeun yén status disk diperkirakeun dina waktos ieu Sauyunan/Sauyunan):

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

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Mariksa status sumberdaya on
jahat

Lengkah 6: Setel sumber utama / sumber sinkronisasi alat awal

Dina tahap ieu, DRBD parantos siap. Ayeuna urang kedah netepkeun titik mana anu kedah dianggo salaku sumber sinkronisasi alat awal.

Jalankeun paréntah di handap ieu dina ngan hiji titik pikeun ngamimitian sinkronisasi pinuh awal:

# drbdadm primary --force test
# drbdadm status test

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Nyetél titik primér salaku alat awal
Sakali sinkronisasi réngsé, kaayaan duanana drive kedah UpToDate.

Lengkah 7: Nguji setelan DRBD

Tungtungna, urang kedah parios naha alat DRBD bakal tiasa dianggo upami diperyogikeun pikeun nyimpen data anu direplikasi. Émut yén kami nganggo volume disk kosong, janten urang kedah nyiptakeun sistem file dina alat sareng pasang pikeun mariksa naha urang tiasa dianggo pikeun nyimpen data anu diulang.

Urang kedah nyiptakeun sistem file dina alat nganggo paréntah di handap ieu dina titik dimana urang ngamimitian sinkronisasi pinuh awal (anu gaduh sumber daya sareng peran utami):

# mkfs -t ext4 /dev/drbd0

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Nyiptakeun sistem file dina volume Drbd

Teras pasangkeunana sapertos anu dipidangkeun (anjeun tiasa masihan titik gunung nami anu cocog):

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

Ayeuna salin atanapi jieun sababaraha file dina titik gunung di luhur sareng ngadamel daptar panjang paréntah ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Daptar eusi volume Drbd utama

Salajengna, unmount alat (pastikeun gunung henteu dibuka, robih diréktori saatos unmounting pikeun ngahindarkeun kasalahan) sareng robih peran titik tina primér ka sekundér:

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

Jieun titik séjén (anu boga sumberdaya kalawan peran sekundér) primér, lajeng ngagantelkeun alat eta sarta ngaluarkeun daptar panjang titik Gunung. Upami setelan tiasa dianggo saé, sadaya file anu disimpen dina volume kedah aya:

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

Nyetél DRBD pikeun réplikasi neundeun dina dua server CentOS 7
Mariksa setelan DRBD jalan dina titik sekundér.

Kanggo inpormasi anu langkung lengkep, tingali halaman pitulung alat administrasi:

# man drbdadm
# man drbdsetup
# man drbdmeta

FAQ: Manual Pamaké DRBD.

singgetan

DRBD pisan fléksibel tur serbaguna, sahingga solusi réplikasi gudang cocog pikeun nambahkeun HA ka ampir sagala aplikasi. Dina tulisan ieu, kami nunjukkeun kumaha masang DRBD dina CentOS 7 sareng sakedap nunjukkeun kumaha ngagunakeunana pikeun réplikasi neundeun. Ngarasa Luncat ka babagi pikiran anjeun kalawan kami ngagunakeun formulir eupan balik di handap.

Diajar langkung seueur ngeunaan kursus.

sumber: www.habr.com

Tambahkeun komentar