Нийтлэлийн орчуулгыг курс эхлэхийн өмнөх өдөр бэлтгэсэн
DRBD (Distributed Replicated Block Device) нь Linux-д зориулсан тархсан, уян хатан, түгээмэл хуулбарлах хадгалах шийдэл юм. Энэ нь хатуу диск, хуваалт, логик хэмжээ гэх мэт блок төхөөрөмжүүдийн агуулгыг тусгадаг. серверүүдийн хооронд. Энэ нь хоёр хадгалах төхөөрөмж дээр өгөгдлийн хуулбарыг үүсгэдэг бөгөөд хэрэв тэдгээрийн аль нэг нь бүтэлгүйтвэл хоёр дахь дээрх өгөгдлийг ашиглах боломжтой болно.
Та ийм зүйл гэж хэлж болно
Эхэндээ DRBD-ийг ихэвчлэн өндөр хүртээмжтэй (HA) компьютерийн кластеруудад ашигладаг байсан боловч XNUMX-р хувилбараас эхлэн үүл хадгалах шийдлүүдийг ашиглахад ашиглаж болно.
Энэ нийтлэлд бид DRBD-ийг CentOS дээр хэрхэн суулгах талаар тайлбарлаж, хоёр сервер дээр хадгалах (хуваалт) хуулбарлахад хэрхэн ашиглахыг товч харуулах болно. Энэ бол Линукс дээр DRBD-ийг эхлүүлэх төгс нийтлэл юм.
Туршилтын орчин
Энэ тохиргоонд бид хоёр зангилааны кластер ашиглах болно.
- Зангилаа 1: 192.168.56.101 – tecmint.tecmint.lan
- Зангилаа 2: 192.168.56.102 – server1.tecmint.lan
Алхам 1: DRBD багцуудыг суулгана уу
DRBD нь Линуксийн цөмийн модуль хэлбэрээр хэрэгждэг. Энэ нь виртуал блок төхөөрөмжийн драйвер тул системийн 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 төхөөрөмж,
Энэ нийтлэлд бид dd командыг ашиглан 2 ГБ туршилтын блок төхөөрөмж үүсгэх болно.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
Энэ нь хоёр зангилаанд холбогдсон хоёр дахь блок төхөөрөмж (/dev/sdb) дээрх ашиглагдаагүй хуваалт (/dev/sdb1) гэж үзье.
Алхам 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;
}
}
Файлыг хадгалаад засварлагчийг хаа.
Протоколын С мөрийг хэсэг хугацаанд харцгаая.DRBD нь гурван өөр хуулбарлах горимыг (өөрөөр хэлбэл хуулбарлах синхрончлолын гурван градус) дэмждэг.
- протокол А: асинхрон хуулбарлах протокол; ихэвчлэн алсын зайн хуулбарлах хувилбаруудад ашиглагддаг.
- протокол 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;
}
}
}
хаана:
- хостын нэр дээр: Оруулсан тохиргооны мэдэгдэл хамаарах on хэсэг.
- туршилтын: Энэ бол шинэ нөөцийн нэр юм.
- төхөөрөмж /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 нөөцийг тохируулах, удирдахын тулд цөмийн модультай харьцдаг):
- drbdadm: DRBD дээд түвшний удирдлагын хэрэгсэл.
- drbdsetup: DRBD төхөөрөмжүүдийг нөөц төхөөрөмждөө холбох, тэдгээрийн нөөц төхөөрөмжүүдийг тусгахын тулд DRBD төхөөрөмжүүдийн хосыг тохируулах, ажиллаж байгаа DRBD төхөөрөмжүүдийн тохиргоог шалгах доод түвшний удирдлагын хэрэгсэл.
- Drbdmeta: Мета өгөгдлийг удирдах хэрэгсэл.
Бүх эх үүсвэрийн тохиргоог нэмсний дараа бид хоёр зангилаа дээрх нөөцийг дуудах ёстой.
# drbdadm create-md test
Мета мэдээллийн дэлгүүрийг эхлүүлж байна
Дараа нь бид үүнийг ажиллуулах хэрэгтэй бөгөөд энэ нь нөөцийг нөөц төхөөрөмждөө холбож, дараа нь хуулбарлах параметрүүдийг тохируулж, нөөцийг үе тэнгийнхэнтэйгээ холбоно.
# drbdadm up test
Одоо та тушаалыг ажиллуулбал /dev/sdb1
:
# lsblk
Блок төхөөрөмжүүдийн жагсаалт
Нөөцийг идэвхгүй болгохын тулд дараахыг ажиллуулна уу:
# drbdadm down test
Нөөцийн төлөвийг шалгахын тулд дараах командыг ажиллуулна уу (энэ үед дискний төлөв байдал үүснэ гэдгийг анхаарна уу. Тогтворгүй/Тогтворгүй):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
Нөөцийн төлөвийг шалгаж байна
хорон муу
Алхам 6: Үндсэн нөөц/эхний төхөөрөмжийн синхрончлолын эх үүсвэрийг тохируулна уу
Энэ үе шатанд DRBD ажиллахад бэлэн байна. Одоо бид аль зангилааг төхөөрөмжийн анхны синхрончлолын эх үүсвэр болгон ашиглах ёстойг тодорхойлох хэрэгтэй.
Эхний бүрэн синхрончлолыг эхлүүлэхийн тулд дараах тушаалыг зөвхөн нэг зангилаа дээр ажиллуулна уу:
# drbdadm primary --force test
# drbdadm status test
Үндсэн зангилааг анхны төхөөрөмж болгон тохируулах
Синхрончлол дууссаны дараа хоёр хөтчийн төлөв UpToDate байх ёстой.
Алхам 7: DRBD тохиргоог турших
Эцэст нь бид хуулбарласан өгөгдлийг хадгалахын тулд шаардлагатай бол DRBD төхөөрөмж ажиллах эсэхийг шалгах хэрэгтэй. Бид хоосон дискний эзэлхүүнийг ашигласан гэдгийг санаарай, тиймээс бид төхөөрөмж дээр файлын системийг үүсгэж, үүнийг хуулбарласан өгөгдлийг хадгалахад ашиглаж чадах эсэхийг шалгах хэрэгтэй.
Бид анхны бүрэн синхрончлолыг эхлүүлсэн (үндсэн үүрэг бүхий нөөцтэй) зангилаа дээрх дараах тушаалыг ашиглан төхөөрөмж дээр файлын системийг үүсгэх хэрэгтэй.
# mkfs -t ext4 /dev/drbd0
Drbd эзлэхүүн дээр файлын систем үүсгэх
Дараа нь зурагт заасны дагуу холбоно (та холбох цэгийг тохирох нэрээр өгч болно):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Одоо дээрх холбох цэг дээр зарим файлыг хуулж эсвэл үүсгээд урт жагсаалт гарга
# cd /mnt/DRDB_PRI/
# ls -l
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 тохиргоог шалгаж байна.
Дэлгэрэнгүй мэдээллийг удирдлагын хэрэгслийн тусламжийн хуудаснаас үзнэ үү:
# man drbdadm
# man drbdsetup
# man drbdmeta
Тусламж:
Хураангуй
DRBD нь маш уян хатан, олон талт бөгөөд бараг бүх програмд HA нэмэхэд тохиромжтой хадгалах хуулбарлах шийдэл болгодог. Энэ нийтлэлд бид DRBD-ийг CentOS 7 дээр хэрхэн суулгахыг харуулсан бөгөөд үүнийг хадгалах хуулбарлахад хэрхэн ашиглахыг товч харуулсан. Доорх санал хүсэлтийн маягтыг ашиглан бидэнтэй санал бодлоо чөлөөтэй хуваалцаарай.
Эх сурвалж: www.habr.com