DRBD-ի կարգավորում երկու CentOS 7 սերվերների վրա պահեստավորման կրկնօրինակման համար

Հոդվածի թարգմանությունը պատրաստվել է դասընթացի մեկնարկի նախօրեին «Linux Administrator. Վիրտուալացում և կլաստերավորում».

DRBD-ը (Distributed Replicated Block Device) Linux-ի համար բաշխված, ճկուն և համընդհանուր կրկնվող պահեստային լուծում է: Այն արտացոլում է բլոկային սարքերի բովանդակությունը, ինչպիսիք են կոշտ սկավառակները, միջնորմները, տրամաբանական ծավալները և այլն: սերվերների միջև: Այն ստեղծում է տվյալների կրկնօրինակներ երկու պահեստավորման սարքերի վրա, որպեսզի դրանցից մեկի ձախողման դեպքում հնարավոր լինի օգտագործել երկրորդի տվյալները:

Կարելի է ասել՝ նման բան է ցանցի RAID կոնֆիգուրացիա 1 տարբեր սերվերների վրա քարտեզագրված սկավառակներով: Այնուամենայնիվ, այն աշխատում է բոլորովին այլ կերպ, քան RAID-ը (նույնիսկ ցանցային RAID):

Սկզբում 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 սարք, LVM տրամաբանական ծավալը կամ ձեր համակարգում հայտնաբերված արգելափակման ցանկացած այլ սարք:

Այս հոդվածի համար մենք կստեղծենք 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

DRBD-ի կարգավորում երկու CentOS 7 սերվերների վրա պահեստավորման կրկնօրինակման համար
Մետատվյալների խանութի սկզբնավորում

Այնուհետև մենք պետք է գործարկենք այն, որը ռեսուրսը կմիացնի իր պահուստային սարքին, այնուհետև կսահմանի կրկնօրինակման պարամետրերը և ռեսուրսը կմիացնի իր նմանակին.

# drbdadm up test

Այժմ, եթե գործարկեք հրամանը lsblk, դուք կնկատեք, որ DRBD սարքը/դրbd0 ծավալը կապված է պահուստային սարքի հետ /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-ում և հակիրճ ցույց տվեցինք, թե ինչպես օգտագործել այն պահեստավորման վերարտադրության համար: Ազատորեն կիսվեք ձեր մտքերով մեզ հետ՝ օգտագործելով ստորև ներկայացված հետադարձ կապի ձևը:

Իմացեք ավելին դասընթացի մասին:

Source: www.habr.com

Добавить комментарий