Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату

Мақаланың аудармасы курстың басталу қарсаңында дайындалды «Linux әкімшісі. Виртуализация және кластерлеу».

DRBD (Distributed Replicated Block Device) — Linux жүйесіне арналған таратылған, икемді және әмбебап қайталанатын сақтау шешімі. Ол қатты дискілер, бөлімдер, логикалық көлемдер және т.б. сияқты блоктық құрылғылардың мазмұнын көрсетеді. серверлер арасында. Ол екі сақтау құрылғысында деректердің көшірмелерін жасайды, осылайша олардың біреуі сәтсіз болса, екіншісіндегі деректерді пайдалануға болады.

Сіз бұл сияқты нәрсе деп айта аласыз желілік RAID конфигурациясы 1 түрлі серверлерге салыстырылған дискілері бар. Дегенмен, ол RAID (тіпті желілік RAID) қарағанда мүлдем басқаша жұмыс істейді.

Бастапқыда DRBD негізінен қол жетімділігі жоғары (HA) компьютерлік кластерлерде қолданылды, бірақ XNUMX-нұсқадан бастап оны бұлтты сақтау шешімдерін қолдану үшін пайдалануға болады.

Бұл мақалада біз CentOS жүйесінде DRBD қалай орнату керектігін түсіндіреміз және оны екі серверде сақтауды (бөлімді) көшіру үшін қалай пайдалану керектігін қысқаша көрсетеміз. Бұл Linux жүйесінде DRBD пайдалануды бастау үшін тамаша мақала.

Сынақ ортасы

Бұл орнату үшін біз екі түйінді кластерді қолданамыз.

  • 1 түйін: 192.168.56.101 – tecmint.tecmint.lan
  • 2-түйін: 192.168.56.102 – server1.tecint.lan

1-қадам: DRBD бумаларын орнатыңыз

DRBD Linux ядросының модулі ретінде жүзеге асырылады. Бұл виртуалды блок құрылғысының драйвері, сондықтан ол жүйенің енгізу/шығару стекінің ең төменгі жағында орналасқан.

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

Файлды сақтаңыз, содан кейін редакторды жабыңыз.

Бір сәтке C протоколының жолын қарастырайық.DRBD үш түрлі репликация режимін (яғни, репликация синхрондылығының үш дәрежесі) қолдайды, атап айтқанда:

  • A протоколы: асинхронды репликация хаттамасы; көбінесе ұзақ қашықтыққа көшіру сценарийлерінде қолданылады.
  • B протоколы: Жартылай синхронды репликация протоколы немесе синхронды жады протоколы.
  • C протоколы: әдетте қысқа қашықтықтағы желілердегі түйіндер үшін қолданылады; бұл DRBD параметрлерінде ең жиі қолданылатын репликация протоколы.

маңызды: Репликация протоколын таңдау екі орналастыру факторына әсер етеді: қауіпсіздік және кідіріс. Керісінше, өткізу қабілеті таңдалған репликация протоколына айтарлықтай тәуелді емес.

4-қадам: ресурс қосыңыз

Ресурс - бұл белгілі бір қайталанатын деректер жиынының барлық аспектілеріне сілтеме жасайтын қолшатыр термин. Біз өз ресурсымызды файлда анықтаймыз /etc/drbd.d/test.res.

Екі түйіндегі файлға келесіні қосыңыз (айнымалы мәндерді ортаңыз үшін нақты мәндермен ауыстыруды ұмытпаңыз).

Хост атауларына назар аударыңыз, біз желілік хост атын көрсетуіміз керек, оны unname командасы арқылы алуға болады. -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

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Метадеректер қоймасын инициализациялау

Әрі қарай біз оны іске қосуымыз керек, ол ресурсты сақтық көшірме құрылғысына қосады, содан кейін репликация параметрлерін орнатыңыз және ресурсты өз теңімен қосады:

# drbdadm up test

Енді пәрменді іске қоссаңыз lsblk, DRBD құрылғысы/ drbd0 көлемі сақтық көшірме құрылғысымен байланысты екенін байқайсыз /dev/sdb1:

# lsblk

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Блок құрылғыларының тізімі

Ресурсты өшіру үшін іске қосыңыз:

# drbdadm down test

Ресурстың күйін тексеру үшін келесі пәрменді іске қосыңыз (осы кезде дискілердің күйі күтілетінін ескеріңіз Сәйкес емес/Сәйкес емес):

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

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Ресурс күйін тексеру қосулы
жауыз

6-қадам: Негізгі ресурсты/бастапқы құрылғыны синхрондау көзін орнатыңыз

Бұл кезеңде DRBD баруға дайын. Енді біз бастапқы құрылғыны синхрондау көзі ретінде қандай түйінді пайдалану керектігін көрсетуіміз керек.

Бастапқы толық синхрондауды бастау үшін келесі пәрменді тек бір түйінде орындаңыз:

# drbdadm primary --force test
# drbdadm status test

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Негізгі түйінді бастапқы құрылғы ретінде орнату
Синхрондау аяқталғаннан кейін екі дискінің күйі UpToDate болуы керек.

7-қадам: DRBD орнатуын тексеру

Соңында, DRBD құрылғысы қайталанатын деректерді сақтау үшін қажетінше жұмыс істейтінін тексеруіміз керек. Есіңізде болсын, біз бос диск көлемін пайдаландық, сондықтан құрылғыда файлдық жүйені жасап, оны қайталанатын деректерді сақтау үшін пайдалана алатынымызды тексеру үшін орнатуымыз керек.

Біз бастапқы толық синхрондауды бастаған түйінде (негізгі рөлі бар ресурсы бар) келесі пәрменді пайдаланып құрылғыда файлдық жүйені жасауымыз керек:

# mkfs -t ext4 /dev/drbd0

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Drbd томында файлдық жүйені құру

Содан кейін оны көрсетілгендей орнатыңыз (бекіту нүктесіне сәйкес атау беруге болады):

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

Енді жоғарыдағы орнату нүктесінде кейбір файлдарды көшіріңіз немесе жасаңыз және оның көмегімен ұзын тізім жасаңыз ls командалары:

# cd /mnt/DRDB_PRI/
# ls -l 

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Негізгі 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 

Екі CentOS 7 серверінде сақтауды репликациялау үшін DRBD орнату
Қосымша түйінде іске қосылған DRBD орнатуын тексеру.

Қосымша ақпарат алу үшін әкімшілік құралдардың анықтама беттерін қараңыз:

# man drbdadm
# man drbdsetup
# man drbdmeta

Анықтама: DRBD пайдаланушы нұсқаулығы.

Резюме

DRBD өте икемді және әмбебап болып табылады, бұл оны кез келген қолданбаға HA қосу үшін қолайлы сақтауды репликациялау шешіміне айналдырады. Бұл мақалада біз DRBD-ді CentOS 7 жүйесіне қалай орнату керектігін көрсеттік және оны жадты қайталау үшін қалай пайдалану керектігін қысқаша көрсеттік. Төмендегі кері байланыс пішінін пайдаланып өз ойларыңызды бізбен бөлісуіңізге болады.

Курс туралы көбірек біліңіз.

Ақпарат көзі: www.habr.com

пікір қалдыру