Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7

Тарҷумаи мақола дар арафаи оғози курс омода шудааст "Администратори Linux. Виртуализатсия ва кластерсозӣ".

DRBD (Distributed Replicated Block Device) як ҳалли тақсимшуда, чандир ва универсалии такроршаванда барои нигаҳдории Linux мебошад. Он мундариҷаи дастгоҳҳои блокро ба монанди дискҳои сахт, қисмҳо, ҳаҷми мантиқӣ ва ғайра инъикос мекунад. байни серверҳо. Он нусхаҳои маълумотро дар ду дастгоҳи нигаҳдорӣ эҷод мекунад, то агар яке аз онҳо кор накунад, маълумоти дуюмро истифода бурдан мумкин аст.

Шумо метавонед бигӯед, ки ин як чизест конфигуратсияи RAID шабака 1 бо дискҳои ба серверҳои гуногун хариташуда. Аммо, он аз RAID (ҳатто RAID шабакавӣ) комилан фарқ мекунад.

Дар аввал, DRBD асосан дар кластерҳои компютерии дастрасии баланд (HA) истифода мешуд, аммо аз версияи XNUMX сар карда, онро барои ҷойгиркунии қарорҳои нигоҳдории абр истифода бурдан мумкин аст.

Дар ин мақола, мо мефаҳмонем, ки чӣ гуна DRBD-ро дар CentOS насб кунем ва ба таври мухтасар нишон диҳем, ки чӣ тавр истифода бурдани онро барои такрори нигаҳдорӣ (ҳисмат) дар ду сервер истифода бурдан мумкин аст. Ин мақолаи комил барои оғоз бо DRBD дар Linux аст.

Муҳити озмоиш

Мо барои ин насб кластери ду гиреҳро истифода хоҳем кард.

  • Гиреҳ 1: 192.168.56.101 - tecmint.tecint.lan
  • Гиреҳ 2: 192.168.56.102 - server1.tecmint.lan

Қадами 1: Бастаҳои DRBD насб кунед

DRBD ҳамчун модули ядрои Linux амалӣ карда мешавад. Он драйвер барои дастгоҳи блоки виртуалӣ аст, бинобар ин он дар поёни стеки I/O система ҷойгир аст.

DRBD-ро аз ELRepo ё EPEL насб кардан мумкин аст. Биёед бо ворид кардани калиди имзои бастаи ELRepo ва пайваст кардани репозиторий дар ҳарду гиреҳ, тавре ки дар зер нишон дода шудааст, оғоз кунем.

# 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

Пас шумо бояд модули ядрои DRBD ва утилитаҳоро дар ҳарду гиреҳ бо истифода аз:

# yum install -y kmod-drbd84 drbd84-utils

Агар шумо SELinux-ро фаъол карда бошед, шумо бояд сиёсатҳоро танзим кунед, то равандҳои DRBD аз назорати SELinux озод карда шаванд.

# semanage permissive -a drbd_t

Илова бар ин, агар системаи шумо девори деворро (файерволлд) иҷро кунад, ба шумо лозим меояд, ки порти DRBD 7789-ро илова кунед, то ҳамоҳангсозии маълумот байни ду гиреҳ имкон диҳад.

Ин фармонҳоро барои гиреҳи аввал иҷро кунед:

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

Сипас ин фармонҳоро барои гиреҳи дуюм иҷро кунед:

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

Қадами 2: Нигоҳдории сатҳи пастро омода кунед

Акнун, ки мо DRBD-ро дар ҳарду гиреҳи кластер насб кардаем, мо бояд майдонҳои нигаҳдории тақрибан якхеларо дар онҳо таъмин кунем. Ин метавонад як қисми диски сахт (ё тамоми диски сахти ҷисмонӣ), дастгоҳи нармафзори RAID, Ҳаҷми мантиқии LVM ё ягон намуди дигари дастгоҳи блоки дар системаи шумо пайдошуда.

Барои ин мақола, мо бо истифода аз фармони dd дастгоҳи блоки санҷишии 2 ГБ эҷод мекунем.

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

Фарз мекунем, ки ин қисмати истифоданашуда (/dev/sdb1) дар дастгоҳи блоки дуюм (/dev/sdb) ба ҳарду гиреҳ пайваст аст.

Қадами 3. Танзими DRBD

Файли асосии конфигуратсияи DRBD - /etc/drbd.conf, ва файлҳои конфигуратсияи иловагиро дар директория пайдо кардан мумкин аст /etc/drbd.d.

Барои такрор кардани нигоҳдорӣ, мо бояд ба файл конфигуратсияҳои заруриро илова кунем /etc/drbd.d/global_common.conf, ки дорои бахшҳои глобалӣ ва умумии конфигуратсияи DRBD мебошад ва мо бояд захираҳоро дар .res файлҳо.

Биёед нусхаи эҳтиётии файли аслиро дар ҳарду гиреҳ созем ва сипас файли навро барои таҳрир кушоем (муҳаррири матнии интихобкардаи худро истифода баред).

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

Ба ҳарду файл сатрҳои зеринро илова кунед:

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

Файлро захира кунед ва сипас муҳаррирро пӯшед.

Биёед як лаҳза ба хатти протоколи C назар андозем.DRBD се намуди такрории гуногунро дастгирӣ мекунад (яъне се дараҷаи синхронии такрорӣ), яъне:

  • протоколи A: протоколи такрории асинхронӣ; аксар вақт дар сенарияҳои такрории масофаи дур истифода мешаванд.
  • протоколи B: Протоколи такрории нимсинхронӣ ё протоколи хотираи синхронӣ.
  • протоколи C: одатан барои гиреҳҳо дар шабакаҳои масофаи кӯтоҳ истифода мешавад; ин протоколи такрории маъмултарин дар танзимоти DRBD мебошад.

муҳим: Интихоби протоколи такрорӣ ба ду омили ҷойгиркунӣ таъсир мерасонад: амният ва таъхир. Баръакс, интиқол аз протоколи такрории интихобшуда ба таври назаррас вобаста нест.

Қадами 4: Илова кардани захира

Манбаъ истилоҳи чатрест, ки ба ҳама ҷанбаҳои маҷмӯи додаҳои мушаххаси такроршаванда ишора мекунад. Мо захираи худро дар файл муайян мекунем /etc/drbd.d/test.res.

Ба файли ҳарду гиреҳ чизҳои зеринро илова кунед (дар хотир доред, ки тағирёбандаҳоро бо арзишҳои воқеии муҳити шумо иваз кунед).

Ба номҳои ҳост диққат диҳед, мо бояд номи мизбони шабакаро муайян кунем, ки онро бо ёрии фармони 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;
        }
}
}

ки:

  • дар номи мизбон: Қисмати дар, ки изҳороти конфигуратсияи лона истифода мешавад.
  • озмоиш: Ин аст номи захираи нав.
  • дастгоҳ /dev/drbd0: Дастгоҳи нави блоки виртуалиро нишон медиҳад, ки аз ҷониби DRBD идора мешавад.
  • диски /dev/sdb1: Ин қисмати блоки дастгоҳ аст, ки дастгоҳи эҳтиётии дастгоҳи DRBD мебошад.
  • мета-диск: Муайян мекунад, ки DRBD дар куҷо метамаълумоти худро нигоҳ медорад. Дохилӣ маънои онро дорад, ки DRBD метамаълумотҳои худро дар ҳамон дастгоҳи физикии сатҳи паст ҳамчун маълумоти воқеии истеҳсолот нигоҳ медорад.
  • суроғаи: Суроғаи IP ва рақами порти гиреҳи мувофиқро нишон медиҳад.

Инчунин қайд кунед, ки агар параметрҳо дар ҳарду ҳост арзишҳои якхела дошта бошанд, шумо метавонед онҳоро мустақиман дар бахши захираҳо муайян кунед.

Масалан, конфигуратсияи дар боло зикршуда метавонад ба таври зерин таҷдид карда шавад:

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

Қадами 5. Сарчашмаро оғоз кунед ва оғоз кунед

Барои ҳамкорӣ бо DRBD мо аз абзорҳои маъмурии зерин истифода хоҳем кард (ки барои танзим ва идоракунии захираҳои DRBD бо модули ядро ​​ҳамкорӣ мекунанд):

  • дрбдадм: Воситаи идоракунии сатҳи баланд DRBD.
  • drbdsetup: Воситаи маъмурии сатҳи поёнӣ барои пайваст кардани дастгоҳҳои DRBD ба дастгоҳҳои эҳтиётии онҳо, танзим кардани ҷуфтҳои дастгоҳҳои DRBD барои инъикоси дастгоҳҳои эҳтиётии онҳо ва барои тафтиши конфигуратсияи дастгоҳҳои DRBD иҷрошаванда.
  • Drbdmeta: Воситаи идоракунии метамаълумот.

Пас аз илова кардани ҳама конфигуратсияҳои ибтидоии манбаъ, мо бояд захираро дар ҳарду гиреҳ даъват кунем.

# drbdadm create-md test

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Оғоз кардани мағозаи метамаълумот

Баъдан, мо бояд онро иҷро кунем, ки захираро ба дастгоҳи эҳтиётии он пайваст мекунад, пас параметрҳои такрориро муқаррар мекунад ва захираро ба ҳамсолаш пайваст мекунад:

# drbdadm up test

Акнун, агар шумо фармонро иҷро кунед Лсбгл, шумо хоҳед дид, ки дастгоҳи DRBD/ҳаҷми drbd0 бо дастгоҳи эҳтиётӣ алоқаманд аст /dev/sdb1:

# lsblk

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Рӯйхати дастгоҳҳои блок

Барои хомӯш кардани захира, иҷро кунед:

# drbdadm down test

Барои санҷидани ҳолати захира, фармони зеринро иҷро кунед (дар хотир доред, ки ҳолати дискҳо дар ин лаҳза интизор аст. номувофиқ / номувофиқ):

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

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Санҷиши ҳолати захира дар
бад

Қадами 6: Манбаи ибтидоӣ/манбаи ҳамоҳангсозии дастгоҳро таъин кунед

Дар ин марҳила, DRBD барои рафтан омода аст. Ҳоло мо бояд муайян кунем, ки кадом гиреҳ бояд ҳамчун манбаи ҳамоҳангсозии ибтидоии дастгоҳ истифода шавад.

Фармони зеринро танҳо дар як гиреҳ иҷро кунед, то синхронизатсияи пурраи ибтидоиро оғоз кунед:

# drbdadm primary --force test
# drbdadm status test

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Муқаррар кардани гиреҳи ибтидоӣ ҳамчун дастгоҳи ибтидоӣ
Пас аз ба итмом расидани ҳамоҳангсозӣ, ҳолати ҳарду диск бояд UpToDate бошад.

Қадами 7: Санҷиши танзимоти DRBD

Ниҳоят, мо бояд тафтиш кунем, ки оё дастгоҳи DRBD барои нигоҳ доштани маълумоти такрорӣ кор хоҳад кард. Дар хотир доред, ки мо ҳаҷми диски холиро истифода бурдем, аз ин рӯ мо бояд дар дастгоҳ системаи файлӣ созем ва онро насб кунем, то тафтиш кунем, ки оё мо метавонем онро барои нигоҳ доштани маълумоти такрорӣ истифода барем.

Мо бояд системаи файлиро дар дастгоҳ бо истифода аз фармони зерин дар гиреҳе, ки мо синхронизатсияи пурраи ибтидоиро оғоз кардем (ки дорои захираи нақши асосӣ дорад) эҷод кунем:

# mkfs -t ext4 /dev/drbd0

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Эҷоди системаи файлӣ дар ҳаҷми Drbd

Сипас онро тавре ки нишон дода шудааст васл кунед (шумо метавонед ба нуқтаи васлкунӣ номи мувофиқро диҳед):

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

Акнун баъзе файлҳоро дар нуқтаи васлкунии боло нусхабардорӣ кунед ё эҷод кунед ва рӯйхати дарозеро бо он созед ls фармон медиҳад:

# cd /mnt/DRDB_PRI/
# ls -l 

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Мундариҷаи ҷилди асосии Drbd-ро номбар кунед

Баъдан, дастгоҳро ҷудо кунед (боварӣ ҳосил кунед, ки васл кушода нест, директорияро пас аз ҷудокунӣ тағир диҳед, то хатогиҳоро пешгирӣ кунед) ва нақши гиреҳро аз ибтидоӣ ба дуюмдараҷа иваз кунед:

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

Гиреҳи дигарро (ки дорои нақши дуюмдараҷа аст) ибтидоӣ гардонед, сипас ба он дастгоҳ пайваст кунед ва рӯйхати дарози нуқтаҳои васлкуниро пешниҳод кунед. Агар танзимот хуб кор кунад, ҳамаи файлҳои дар ҳаҷми захирашуда бояд дар он ҷо бошанд:

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

Насб кардани DRBD барои нусхабардории нигаҳдорӣ дар ду сервери CentOS 7
Санҷиши танзимоти DRBD, ки дар гиреҳи дуввум кор мекунад.

Барои маълумоти иловагӣ, ба саҳифаҳои кӯмаки воситаҳои маъмурӣ нигаред:

# man drbdadm
# man drbdsetup
# man drbdmeta

Кӯмак: Дастури корбар DRBD.

Натиҷа

DRBD бениҳоят чандир ва ҳамаҷониба аст, ки онро як ҳалли нусхабардории нигаҳдорӣ барои илова кардани HA ба қариб ҳама барномаҳо месозад. Дар ин мақола, мо нишон додем, ки чӣ гуна DRBD-ро дар CentOS 7 насб кунем ва ба таври мухтасар нишон додем, ки чӣ гуна онро барои нусхабардории нигаҳдорӣ истифода бурдан мумкин аст. Озод ҳис кунед, ки бо истифода аз шакли фикру мулоҳизаҳои зер фикру мулоҳизаҳои худро бо мо мубодила кунед.

Дар бораи курс маълумоти бештар гиред.

Манбаъ: will.com

Илова Эзоҳ