Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Sizokhuluma ngakho:
Ungasikhipha kanjani ngokushesha isitoreji esabiwe samaseva amabili asekelwe kuzixazululo ze-drbd+ocfs2.

Lokhu kuzoba usizo kubani:
Okokufundisa kuzoba usizo kubalawuli besistimu nanoma ubani okhetha indlela yokusebenzisa isitoreji noma ofuna ukuzama isisombululo.

Yiziphi izinqumo esanqaba futhi kungani?

Ngokuvamile sibhekana nesimo lapho sidinga ukusebenzisa isitoreji esabiwe ngokusebenza okuhle kokufunda nokubhala kuqoqo elincane lewebhu. Sizame izinketho ezihlukene zokuqalisa isitoreji esabiwe samaphrojekthi ethu, kodwa bambalwa abakwazile ukusanelisa ezinkomba ezimbalwa ngesikhathi esisodwa. Manje sizokutshela ukuthi kungani.

  • I-Glusterfs ayizange isanelise ngokusebenza kokufunda nokubhala; kube nezinkinga ngokufundwa ngesikhathi esisodwa kwenani elikhulu lamafayela, futhi kwakukhona umthwalo omkhulu ku-CPU. Inkinga yokufunda amafayela ingaxazululwa ngokufinyelela kuwo ngokuqondile ngezitini, kodwa lokhu akusebenzi ngaso sonke isikhathi futhi ngokuvamile akulungile.

  • UCeph akakuthandanga ukuxaka ngokweqile, okungaba yingozi kumaphrojekthi anamaseva angama-2-4, ikakhulukazi uma iphrojekthi igcinwa igcinwa. Futhi, kunemikhawulo yokusebenza engathi sΓ­na esiphoqa ukuthi sakhe amaqoqo esitoreji ahlukene, njengama-glusterfs.

  • Ukusebenzisa iseva eyodwa ye-NFS ukusebenzisa isitoreji esabiwe kuphakamisa imibuzo mayelana nokubekezelela amaphutha.

  • s3 iyisixazululo esihle kakhulu esithandwayo sohlu oluthile lwemisebenzi, kodwa akulona uhlelo lwefayela, olunciphisa ububanzi balo.

  • lsyncd. Uma sesivele siqalile ukukhuluma "ngezinhlelo ezingezona zamafayela," khona-ke kufanelekile ukudlula lesi sixazululo esidumile. Akukona nje kuphela ukuthi ayifaneleki ukushintshaniswa kwezindlela ezimbili (kodwa uma ufuna ngempela, ungakwazi), futhi ayisebenzi ngokuzinzile enanini elikhulu lamafayela. Ukwengeza okuhle kuyo yonke into ukuthi i-single-threaded. Isizathu sisekwakhiweni kohlelo: isebenzisa i- inotify ukuqapha izinto zomsebenzi, ezinikezayo ekuqaleni nangesikhathi sokuskena kabusha. rsync isetshenziswa njengendlela yokudlulisa.

Okokufundisa: indlela yokukhipha isitoreji esabiwe ngokusekelwe ku-drbd+ocfs2

Esinye sezixazululo ezisilungele kakhulu kwakuyisixhumanisi ocfs2+drbd. Manje sizokutshela ukuthi ungathumela kanjani ngokushesha isitoreji esabiwe kumaseva amabili ngokusekelwe kudathabheyisi yesixazululo. Kodwa okokuqala, kancane mayelana nezingxenye:

I-DRBD - isistimu yokugcina esuka ekusabalaliseni kwe-Linux okujwayelekile ekuvumela ukuthi uphindaphinde idatha phakathi kwamaseva ngamabhulokhi. Uhlelo lokusebenza oluyinhloko ukwakha isitoreji esibekezelela iphutha.

OCFS2 - isistimu yefayela enikeza ukusetshenziswa okwabiwe kwesitoreji esifanayo ngamasistimu amaningana. Ifakwe ekusabalaliseni kwe-Linux futhi iyimojula ye-kernel namathuluzi wendawo yomsebenzisi okusebenza ne-FS. I-OCFS2 ingasetshenziswa hhayi nge-DRBD kuphela, kodwa naphezu kwe-iSCSI enoxhumo oluningi. Esibonelweni sethu sisebenzisa i-DRBD.

Zonke izenzo zenziwa kuseva ye-ubuntu 18.04 ngokucushwa okuncane.

Isinyathelo 1. Lungiselela i-DRBD:

Efayelini /etc/drbd.d/drbd0.res sichaza idivayisi yethu yokuvimba ebonakalayo /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;
}
}

i-meta-disk yangaphakathi β€” sebenzisa amadivaysi afanayo e-block ukugcina imethadatha
idivayisi /dev/drbd0 - sebenzisa /dev/drbd0 njengendlela eya kuvolumu ye-drbd.
idiski /dev/vdb1 - sebenzisa /dev/vdb1
ukuvumelanisa { isilinganiso 1000M; } - sebenzisa umkhawulokudonsa wesiteshi se-gigabit
vumela-ezimbili-primaries - inketho ebalulekile evumela izinguquko ukuthi zamukelwe kumaseva amabili ayinhloko
after-sb-0pri, after-sb-1pri, after-sb-2pri - izinketho ezinesibopho sezenzo ze-node lapho i-splitbrain itholwa. Imininingwane eyengeziwe ingatholakala kumadokhumenti.
ube-okuyinhloko kukho kokubili β€” usetha amanodi womabili abe ngowokuqala.

Kithina, sinama-VM amabili afana nse, anenethiwekhi ebonakalayo ezinikele enomkhawulokudonsa wamagigabhithi ayi-10.

Esibonelweni sethu, amagama enethiwekhi ama-cluster node amabili athi drbd1 kanye ne-drbd2. Ukuze usebenze kahle, udinga ukufanisa amagama namakheli e-IP wabasingathi ku-/etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Isinyathelo sesi-2. Setha ama-node:

Kuwo womabili amaseva sisebenza:

drbdadm create-md drbd0

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Sithola okulandelayo:

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Ungaqala ukuvumelanisa. Ku-node yokuqala udinga ukwenza:

drbdadm primary --force drbd0

Ake sibheke isimo:

cat /proc/drbd

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Kuhle, ukuvumelanisa kuqalile. Silinda kuze kube sekupheleni futhi sibone isithombe:

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Isinyathelo sesi-3. Qala ukuvumelanisa endaweni yesibili:

drbdadm primary --force drbd0

Sithola okulandelayo:

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Manje singabhalela ku-drbd kusuka kumaseva amabili.

Isinyathelo 4. Faka futhi ulungiselele i-OCFS2.

Sizosebenzisa ukucushwa okuncane kakhulu:

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

Kudingeka ibhalwe phansi /etc/ocfs2/cluster.conf kuzo zombili izindawo.

Sakha i-FS ku-drbd0 kunoma iyiphi indawo:

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

Lapha sidale isistimu yefayela enelebula testVol ku-drbd0, sisebenzisa amapharamitha azenzakalelayo.

Isitoreji seqoqo samaqoqo amancane ewebhu asekelwe ku-drbd+ocfs2

Ku-/etc/default/o2cb udinga ukusetha (njengakufayela lethu lokucushwa)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

bese ukhiphe endaweni ngayinye:

o2cb register-cluster ocfs2cluster

Bese sivula bese sengeza wonke amayunithi esiwadingayo ukuze senze i-autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Okunye kwalokhu kuzobe sekuvele kusebenza phakathi nenqubo yokusetha.

Isinyathelo sesi-5. Engeza amaphuzu okukhweza ukuze u-fstab kuzo zombili izindawo:

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

Uhla lwemibhalo /media/shared kumele idalwe kusenesikhathi.

Lapha sisebenzisa izinketho ze-noauto, okusho ukuthi ifayela ngeke lifakwe ekuqaleni (ngikhetha ukukhweza amafayela enethiwekhi nge-systemd) kanye ne-heartbeat=local, okusho ukusebenzisa isevisi yokushaya kwenhliziyo endaweni ngayinye. Kukhona futhi ukushaya kwenhliziyo emhlabeni wonke, okulungele kakhulu amaqoqo amakhulu.

Okulandelayo ungakhweza /media/shared futhi uhlole ukuvumelanisa okuqukethwe.

Kwenziwe! Ngenxa yalokho, sithola isitoreji esingabekezeleli amaphutha esiningi noma esincane esinobukhulu kanye nokusebenza okuhle.

Source: www.habr.com

Engeza amazwana