Հոդվածի թարգմանությունը պատրաստվել է դասընթացի մեկնարկի նախօրեին
DRBD-ը (Distributed Replicated Block Device) Linux-ի համար բաշխված, ճկուն և համընդհանուր կրկնվող պահեստային լուծում է: Այն արտացոլում է բլոկային սարքերի բովանդակությունը, ինչպիսիք են կոշտ սկավառակները, միջնորմները, տրամաբանական ծավալները և այլն: սերվերների միջև: Այն ստեղծում է տվյալների կրկնօրինակներ երկու պահեստավորման սարքերի վրա, որպեսզի դրանցից մեկի ձախողման դեպքում հնարավոր լինի օգտագործել երկրորդի տվյալները:
Կարելի է ասել՝ նման բան է
Սկզբում DRBD-ն օգտագործվում էր հիմնականում բարձր հասանելիության (HA) համակարգչային կլաստերներում, սակայն, սկսած XNUMX-րդ տարբերակից, այն կարող է օգտագործվել ամպային պահեստավորման լուծումներ տեղակայելու համար:
Այս հոդվածում մենք կբացատրենք, թե ինչպես տեղադրել DRBD-ն CentOS-ում և հակիրճ ցույց կտանք, թե ինչպես կարելի է այն օգտագործել երկու սերվերում պահեստավորումը (բաժանումը) կրկնօրինակելու համար: Սա կատարյալ հոդված է Linux-ում DRBD-ի հետ սկսելու համար:
Փորձարկման միջավայր
Այս տեղադրման համար մենք կօգտագործենք երկու հանգույցների կլաստեր:
- Հանգույց 1: 192.168.56.101 – tecmint.tecmint.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
Բացի այդ, եթե ձեր համակարգը գործարկում է firewall (firewalld), դուք պետք է ավելացնեք 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 սարք,
Այս հոդվածի համար մենք կստեղծենք 2 ԳԲ թեստային բլոկի սարք՝ օգտագործելով dd հրամանը:
# 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 սարքերի կազմաձևումը ստուգելու համար:
- ԴրբդմետաՄետատվյալների կառավարման գործիք:
Ռեսուրսի բոլոր սկզբնական կոնֆիգուրացիաները ավելացնելուց հետո մենք պետք է ռեսուրսը կանչենք երկու հանգույցների վրա:
# 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-ում և հակիրճ ցույց տվեցինք, թե ինչպես օգտագործել այն պահեստավորման վերարտադրության համար: Ազատորեն կիսվեք ձեր մտքերով մեզ հետ՝ օգտագործելով ստորև ներկայացված հետադարձ կապի ձևը:
Source: www.habr.com