Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Zomwe tikambirana:
Momwe mungatumizire mwachangu zosungirako zogawana ma seva awiri kutengera mayankho a drbd+ocfs2.

Izi zikhala zothandiza kwa ndani:
Phunziroli lidzakhala lothandiza kwa oyang'anira dongosolo ndi aliyense amene amasankha njira yosungirako yosungirako kapena akufuna kuyesa yankho.

Kodi tinakana zisankho ziti ndipo chifukwa chiyani?

Nthawi zambiri timakumana ndi vuto lomwe timafunikira kugwiritsa ntchito kusungirako komwe timagawana ndikuwerenga bwino pagulu laling'ono lawebusayiti. Tinayesa njira zosiyanasiyana zogwiritsira ntchito zosungirako zomwe timagawana nawo mapulojekiti athu, koma ochepa adatha kutikhutiritsa pa zizindikiro zingapo nthawi imodzi. Tsopano tikuuzani chifukwa chake.

  • Glusterfs sanatikhutiritse powerenga ndi kulemba; panali mavuto ndi kuwerenga nthawi imodzi ya chiwerengero chachikulu cha mafayilo, ndipo panali katundu wambiri pa CPU. Vuto lowerengera mafayilo litha kuthetsedwa powapeza mwachindunji kuchokera ku njerwa, koma izi sizigwira ntchito nthawi zonse ndipo nthawi zambiri sizolakwika.

  • Ceph sanakonde zovuta zambiri, zomwe zitha kukhala zovulaza pama projekiti okhala ndi ma seva a 2-4, makamaka ngati polojekitiyo ikasungidwa. Apanso, pali zoletsa zazikulu zomwe zimatikakamiza kupanga magulu osungiramo osiyana, monga glusterfs.

  • Kugwiritsa ntchito seva imodzi ya NFS kukhazikitsa zosungirako zogawana kumabweretsa mafunso okhudzana ndi kulekerera zolakwika.

  • s3 ndi njira yabwino kwambiri yothetsera ntchito zosiyanasiyana, koma si fayilo, yomwe imachepetsa kukula kwake.

  • lsyncd. Ngati tayamba kale kuyankhula za "machitidwe osakhala a fayilo," ndiye kuti ndi bwino kudutsa yankho lodziwika bwinoli. Sikuti sizoyenera kusinthanitsa njira ziwiri zokha (koma ngati mukufunadi, ndiye kuti mutha), sizimagwiranso ntchito mokhazikika pamafayilo ambiri. Chowonjezera chabwino pa chinthu chonsecho ndikuti ndi ulusi umodzi. Chifukwa chake chiri pamapangidwe a pulogalamuyi: imagwiritsa ntchito inotify kuyang'anira zinthu zomwe zimagwira ntchito, zomwe zimapatsa poyambira komanso pakukonzanso. rsync imagwiritsidwa ntchito ngati njira yosinthira.

Maphunziro: momwe mungatumizire zosungirako zogawana kutengera drbd+ocfs2

Chimodzi mwazothandiza kwambiri kwa ife chinali ulalo ocfs2+drbd. Tsopano tikuuzani momwe mungatumizire mwachangu malo osungiramo ma seva awiri potengera yankho la database. Koma poyamba, pang'ono za zigawo zikuluzikulu:

Chithunzi cha DRBD - makina osungira kuchokera kugawa kwa Linux komwe kumakulolani kubwereza deta pakati pa ma seva mu midadada. Ntchito yayikulu ndikumanga malo osungira osalakwa.

OCFS2 - mawonekedwe a fayilo omwe amapereka kugwiritsa ntchito kosungirako komweko ndi machitidwe angapo. Kuphatikizidwa pakugawa kwa Linux ndipo ndi gawo la kernel ndi zida zogwiritsira ntchito pogwira ntchito ndi FS. OCFS2 itha kugwiritsidwa ntchito osati pa DRBD, komanso pa iSCSI yokhala ndi maulumikizidwe angapo. Mu chitsanzo chathu timagwiritsa ntchito DRBD.

Zochita zonse zimachitika pa ubuntu seva 18.04 mumasinthidwe ochepa.

Gawo 1. Konzani DRBD:

Mufayilo /etc/drbd.d/drbd0.res tikufotokoza chipangizo chathu chotchinga /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 yamkati - gwiritsani ntchito zida zomwezo kuti musunge metadata
chipangizo /dev/drbd0 - gwiritsani ntchito /dev/drbd0 ngati njira yopita ku voliyumu ya drbd.
disk /dev/vdb1 - gwiritsani ntchito /dev/vdb1
syncer { mlingo 1000M; } - gwiritsani ntchito gigabit channel bandwidth
kulola-zisayimale ziwiri - njira yofunikira yomwe imalola kuti kusintha kuvomerezedwe pa ma seva awiri oyambirira
pambuyo-sb-0pri, pambuyo-sb-1pri, pambuyo-sb-2pri - Zosankha zomwe zimayang'anira zochita za node zikadziwika. Zambiri zitha kupezeka muzolemba.
kukhala oyamba pa zonse ziwiri - imayika ma node onse awiri ku pulayimale.

Kwa ife, tili ndi ma VM awiri ofanana, okhala ndi netiweki yodzipatulira yokhala ndi ma gigabit 10.

Muchitsanzo chathu, mayina a maukonde a magulu awiri amagulu ndi drbd1 ndi drbd2. Kuti mugwire bwino ntchito, muyenera kufananiza mayina ndi ma adilesi a IP a makamu /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Gawo 2. Konzani ma node:

Pa ma seva onsewa timayendetsa:

drbdadm create-md drbd0

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Timapeza zotsatirazi:

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Mukhoza kuyamba kalunzanitsidwe. Pa node yoyamba muyenera kuchita:

drbdadm primary --force drbd0

Tiyeni tiwone ma status:

cat /proc/drbd

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Zabwino, kulunzanitsa kwayamba. Timadikirira mpaka kumapeto ndikuwona chithunzi:

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Gawo 3. Yambani kulunzanitsa pa mfundo yachiwiri:

drbdadm primary --force drbd0

Timapeza zotsatirazi:

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Tsopano titha kulemba ku drbd kuchokera ku maseva awiri.

Gawo 4. Kwabasi ndi sintha ocfs2.

Tidzagwiritsa ntchito masinthidwe ang'onoang'ono:

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

Iyenera kulembedwa mkati /etc/ocfs2/cluster.conf pa mfundo zonse ziwiri.

Timapanga FS pa drbd0 pa node iliyonse:

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

Apa tidapanga fayilo yokhala ndi zolemba testVol pa drbd0, pogwiritsa ntchito magawo osasinthika.

Kusungirako magulu ang'onoang'ono amasamba kutengera drbd+ocfs2

Mu /etc/default/o2cb muyenera kukhazikitsa (monga mufayilo yathu yosinthira)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

ndikuchita pa node iliyonse:

o2cb register-cluster ocfs2cluster

Kenako timayatsa ndikuwonjezera mayunitsi onse omwe tikufuna kuti autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Zina mwa izi zikhala zikugwira ntchito panthawi yokhazikitsa.

Khwerero 5. Onjezani malo okwera kuti fstab pa mfundo zonse ziwiri:

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

Directory /media/shared ziyenera kulengedwa pasadakhale.

Apa timagwiritsa ntchito zosankha za noauto, zomwe zikutanthauza kuti fayiloyo siidzakhazikitsidwa poyambira (ndimakonda kuyika mafayilo amtundu kudzera pa systemd) ndi heartbeat = local, zomwe zikutanthauza kugwiritsa ntchito ntchito yamtima pa node iliyonse. Palinso kugunda kwa mtima kwapadziko lonse, komwe kuli koyenera kwamagulu akuluakulu.

Kenako mukhoza kukwera /media/shared ndi fufuzani zili kalunzanitsidwe.

Zachitika! Zotsatira zake, timapeza zosungirako zochulukirapo kapena zochepa zololera zolakwika ndi scalability ndi magwiridwe antchito abwino.

Source: www.habr.com

Kuwonjezera ndemanga