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.
- I-Cep ayithandwanga ngenxa yobunzima bayo obukhulu, okungaba yingozi kumaphrojekthi anama-2-4 amaseva, ikakhulukazi uma iphrojekthi igcinwa kamuva. Futhi, kunemikhawulo ebalulekile yokusebenza, okuphoqa ukudalwa kwamaqoqo okugcina ahlukene, njengakuma-glusterf.
- 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+drbdManje sizokutshela ukuthi ungayisebenzisa kanjani ngokushesha isitoreji esabiwe sabantu ababili amaseva ngokusekelwe kulezi zixazululo. Kodwa okokuqala, kancane mayelana nezingxenye:
I-DRBD - uhlelo lokugcina kusukela ekulethweni okujwayelekile Linux, okuvumela ukuphindaphindwa kwedatha okusekelwe kubhulokhi phakathi kwamaseva. Uhlelo lwayo oluyinhloko lusekwakheni isitoreji esibekezelela amaphutha.
OCFS2 β uhlelo lwefayela oluvumela ukusetshenziswa okwabiwe kwesitoreji esifanayo yizinhlelo eziningi. Kufakiwe ekusakazweni Linux Iqukethe i-kernel module kanye namathuluzi esikhala somsebenzisi okusebenza nezinhlelo zamafayela. I-OCFS2 ingasetshenziswa hhayi kuphela phezu kwe-DRBD, kodwa futhi phezu kwe-iSCSI enokuxhumana okuningi. Esibonelweni sethu, sisebenzisa i-DRBD.
Zonke izenzo zenziwa ku- ubuntu iseva 18.04 ekucushweni 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

modprobe drbd
drbdadm up drbd0
cat /proc/drbd
Sithola okulandelayo:

Ungaqala ukuvumelanisa. Ku-node yokuqala udinga ukwenza:
drbdadm primary --force drbd0
Ake sibheke isimo:
cat /proc/drbd

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

Isinyathelo sesi-3. Qala ukuvumelanisa endaweni yesibili:
drbdadm primary --force drbd0
Sithola okulandelayo:

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.

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
