Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

Dak li se nitkellmu:
Kif tuża malajr ħażna kondiviża għal żewġ servers ibbażati fuq soluzzjonijiet drbd+ocfs2.

Għal min se jkun utli dan:
It-tutorja se tkun utli għall-amministraturi tas-sistema u għal kull min jagħżel metodu ta 'implimentazzjoni tal-ħażna jew irid jipprova s-soluzzjoni.

Liema deċiżjonijiet irrifjutajna u għaliex?

Ħafna drabi niffaċċjaw sitwazzjoni fejn għandna bżonn nimplimentaw ħażna kondiviża b'prestazzjoni tajba ta' qari-kitba fuq raggruppament żgħir tal-web. Ippruvajna diversi għażliet għall-implimentazzjoni tal-ħażna kondiviża għall-proġetti tagħna, iżda ftit kienu kapaċi jissodisfawna fuq diversi indikaturi f'daqqa. Issa ngħidulek għaliex.

  • Glusterfs ma ssodisfajnax bil-prestazzjoni tal-qari u l-kitba; kien hemm problemi bil-qari simultanju ta 'numru kbir ta' fajls, u kien hemm tagħbija kbira fuq is-CPU. Il-problema bil-qari ta 'fajls tista' tiġi solvuta billi wieħed jaċċessahom direttament mill-briks, iżda dan mhux dejjem ikun applikabbli u ġeneralment mhux korrett.

  • Ceph ma għoġbitx il-kumplessità eċċessiva, li tista 'tkun ta' ħsara fuq proġetti b'servers 2-4, speċjalment jekk il-proġett sussegwentement jinżamm. Għal darb'oħra, hemm limitazzjonijiet serji ta 'prestazzjoni li jġegħluna nibnu raggruppamenti ta' ħażna separati, bħal ma 'glusterfs.

  • L-użu ta' server NFS wieħed biex jimplimenta ħażna kondiviża tqajjem mistoqsijiet f'termini ta' tolleranza għall-ħsarat.

  • s3 hija soluzzjoni popolari eċċellenti għal ċertu firxa ta 'kompiti, iżda mhix sistema ta' fajls, li tnaqqas l-ambitu tagħha.

  • lsyncd. Jekk diġà bdejna nitkellmu dwar "sistemi mhux tal-fajls," allura ta 'min imur fuq din is-soluzzjoni popolari. Mhux biss mhuwiex adattat għal skambju f'żewġ direzzjonijiet (imma jekk verament trid, allura tista '), ukoll ma taħdimx b'mod stabbli fuq numru kbir ta' fajls. Żieda sabiħa għall-ħaġa sħiħa hija li hija b'ħajt wieħed. Ir-raġuni tinsab fl-arkitettura tal-programm: juża inotify biex jimmonitorja l-oġġetti tax-xogħol, li jassenja fl-istartjar u waqt l-iskannjar mill-ġdid. rsync jintuża bħala l-mezz tat-trasferiment.

Tutorja: kif tuża ħażna kondiviża bbażata fuq drbd+ocfs2

Waħda mill-aktar soluzzjonijiet konvenjenti għalina kienet il-link ocfs2+drbd. Issa aħna ngħidulek kif tista 'malajr tuża ħażna kondiviża għal żewġ servers ibbażati fuq database ta' soluzzjoni. Imma l-ewwel, ftit dwar il-komponenti:

DRBD - sistema ta' ħażna mid-distribuzzjoni standard tal-Linux li tippermettilek tirreplika dejta bejn servers fi blokki. L-applikazzjoni ewlenija hija li tinbena ħażna li tollera l-ħsarat.

OCFS2 - sistema ta' fajls li tipprovdi użu kondiviż tal-istess ħażna minn diversi sistemi. Inkluż fid-distribuzzjoni tal-Linux u huwa modulu tal-kernel u għodod tal-ispazju tal-utent biex jaħdmu mal-FS. OCFS2 jista 'jintuża mhux biss fuq DRBD, iżda wkoll fuq iSCSI b'konnessjonijiet multipli. Fl-eżempju tagħna nużaw DRBD.

L-azzjonijiet kollha jitwettqu fuq is-server ubuntu 18.04 f'konfigurazzjoni minima.

Pass 1. Ikkonfigura DRBD:

Fil-fajl /etc/drbd.d/drbd0.res niddeskrivu l-apparat tal-blokk virtwali tagħna /dev/drbd0:

resource drbd0 {
    syncer { rate 1000M; }
    net {
        allow-two-primaries;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
    }
    startup { become-primary-on both; }
    on drbd1 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.192:7789;
}
    on drbd2 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.193:7789;
}
}

meta-disk intern — uża l-istess tagħmir tal-blokk biex taħżen il-metadejta
apparat /dev/drbd0 — uża /dev/drbd0 bħala l-mogħdija għall-volum drbd.
disk /dev/vdb1 - uża /dev/vdb1
syncer { rata 1000M; } — uża bandwidth tal-kanali tal-gigabit
jippermettu-żewġ-primarji - għażla importanti li tippermetti li jiġu aċċettati bidliet fuq żewġ servers primarji
wara-sb-0pri, wara-sb-1pri, wara-sb-2pri — għażliet responsabbli għall-azzjonijiet tan-nodu meta jinstab splitbrain. Aktar dettalji jistgħu jinstabu fid-dokumentazzjoni.
issir-primarja-fuq it-tnejn — tistabbilixxi ż-żewġ nodi bħala primarji.

Fil-każ tagħna, għandna żewġ VMs assolutament identiċi, b'netwerk virtwali ddedikat bi throughput ta '10 gigabits.

Fl-eżempju tagħna, l-ismijiet tan-netwerk ta 'żewġ nodi ta' cluster huma drbd1 u drbd2. Għal tħaddim tajjeb, għandek bżonn tqabbel l-ismijiet u l-indirizzi IP tal-hosts f'/etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Pass 2. Stabbilixxi nodi:

Fuq iż-żewġ servers aħna nħaddmu:

drbdadm create-md drbd0

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Nirċievu dan li ġej:

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

Tista 'tibda s-sinkronizzazzjoni. Fuq l-ewwel node trid tesegwixxi:

drbdadm primary --force drbd0

Ejja nħarsu lejn l-istatus:

cat /proc/drbd

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

Kbira, is-sinkronizzazzjoni bdiet. Nistennew sal-aħħar u naraw l-istampa:

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

Pass 3. Ibda s-sinkronizzazzjoni fuq it-tieni node:

drbdadm primary --force drbd0

Nirċievu dan li ġej:

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

Issa nistgħu niktbu lil drbd minn żewġ servers.

Pass 4. Installa u kkonfigurat ocfs2.

Se nużaw konfigurazzjoni pjuttost trivjali:

cluster:
     node_count = 2
     name = ocfs2cluster

node:
     number = 1
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.192
     name = drbd1

node:
     number = 2
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.193
     name = drbd2

Jeħtieġ li tiġi miktuba fi /etc/ocfs2/cluster.conf fuq iż-żewġ nodi.

Aħna noħolqu FS fuq drbd0 fuq kwalunkwe node:

mkfs.ocfs2 -L "testVol" /dev/drbd0

Hawnhekk ħloqna sistema ta 'fajls bit-tikketta testVol fuq drbd0, billi tuża l-parametri default.

Ħażna ta' raggruppamenti għal raggruppamenti żgħar tal-web ibbażati fuq drbd+ocfs2

F'/etc/default/o2cb trid issettja (bħal fil-fajl tal-konfigurazzjoni tagħna)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

u eżegwixxi fuq kull nodu:

o2cb register-cluster ocfs2cluster

Imbagħad nixgħel u nżidu l-unitajiet kollha li neħtieġu biex nidħlu awtomatikament:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Xi wħud minn dan diġà se jkunu qed jaħdmu matul il-proċess ta 'setup.

Pass 5. Żid punti ta 'muntaġġ għal fstab fuq iż-żewġ nodi:

/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0

Direttorju /media/kondiviża trid tinħoloq minn qabel.

Hawnhekk nużaw l-għażliet noauto, li jfisser li l-fajl mhux se jiġi mmuntat fl-istartjar (nippreferi li mmunta fajls tan-netwerk permezz ta 'systemd) u heartbeat=local, li jfisser li tuża s-servizz tal-qalb fuq kull node. Hemm ukoll taħbit tal-qalb globali, li huwa aktar adattat għal clusters kbar.

Sussegwentement tista 'timmonta /media/kondiviża u ċċekkja s-sinkronizzazzjoni tal-kontenut.

Magħmul! Bħala riżultat, niksbu ħażna bejn wieħed u ieħor tolleranti għall-ħsarat bi skalabbiltà u prestazzjoni deċenti.

Sors: www.habr.com

Żid kumment