Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

Millest me räägime:
Kuidas kiiresti juurutada jagatud salvestusruumi kahe serveri jaoks drbd+ocfs2 lahenduste põhjal.

Kellele see kasulik on:
Õpetus on kasulik süsteemiadministraatoritele ja kõigile, kes valivad talletusrakenduse meetodi või soovivad seda lahendust proovida.

Millistest otsustest me keeldusime ja miks?

Sageli seisame silmitsi olukorraga, kus peame väikeses veebiklastris rakendama hea lugemis- ja kirjutamisvõimega jagatud salvestusruumi. Proovisime oma projektide jaoks jagatud salvestusruumi rakendamiseks erinevaid võimalusi, kuid vähesed suutsid meid mitme näitaja osas korraga rahuldada. Nüüd ütleme teile, miks.

  • Glusterfs ei rahuldanud meid lugemise ja kirjutamise jõudlusega, probleeme oli suure hulga failide samaaegse lugemisega ja protsessori koormus oli suur. Failide lugemise probleemi saab lahendada, kui pääsete neile juurde otse telliskivist, kuid see pole alati rakendatav ja on üldiselt vale.

  • Cephile ei meeldinud liigne keerukus, mis võib olla kahjulik 2–4 serveriga projektide puhul, eriti kui projekti hiljem hooldatakse. Jällegi on tõsiseid jõudluspiiranguid, mis sunnivad meid looma eraldi salvestusklastreid, nagu glusterfide puhul.

  • Ühe NFS-serveri kasutamine jagatud salvestusruumi rakendamiseks tekitab küsimusi tõrketaluvuse osas.

  • s3 on suurepärane populaarne lahendus teatud ülesannete jaoks, kuid see ei ole failisüsteem, mis kitsendab selle ulatust.

  • lsyncd. Kui oleme juba hakanud rääkima "mittefailisüsteemidest", siis tasub seda populaarset lahendust üle vaadata. See mitte ainult ei sobi kahesuunaliseks vahetamiseks (aga kui tõesti tahate, siis saate), ei tööta see ka suure hulga failide puhul stabiilselt. Tore täiendus kogu asjale on see, et see on ühe keermega. Põhjus peitub programmi arhitektuuris: see kasutab tööobjektide jälgimiseks funktsiooni inotify, mille määrab käivitamisel ja uuesti skaneerimisel. rsynci kasutatakse edastuskandjana.

Õpetus: kuidas juurutada jagatud salvestusruumi drbd+ocfs2 põhjal

Meie jaoks oli üks mugavamaid lahendusi link ocfs2+drbd. Nüüd räägime teile, kuidas saate lahenduste andmebaasi alusel kiiresti juurutada jagatud salvestusruumi kahe serveri jaoks. Kuid kõigepealt natuke komponentide kohta:

DRBD - standardse Linuxi distributsiooni salvestussüsteem, mis võimaldab teil andmeid serverite vahel plokkidena kopeerida. Peamine rakendus on tõrketaluvusega salvestusruumi loomine.

OCFS2 - failisüsteem, mis pakub sama salvestusruumi ühiskasutust mitmele süsteemile. Sisaldub Linuxi distributsioonis ning on kerneli moodul ja kasutajaruumi tööriistad FS-iga töötamiseks. OCFS2 saab kasutada mitte ainult DRBD kaudu, vaid ka mitme ühendusega iSCSI kaudu. Meie näites kasutame DRBD-d.

Kõik toimingud tehakse ubuntu serveris 18.04 minimaalses konfiguratsioonis.

1. samm. DRBD konfigureerimine:

Failis /etc/drbd.d/drbd0.res kirjeldame oma virtuaalset blokeerimisseadet /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;
}
}

sisemine metaketas — kasutada metaandmete salvestamiseks samu blokeerimisseadmeid
seade /dev/drbd0 — kasutage drbd köite teena /dev/drbd0.
ketas /dev/vdb1 - kasutage /dev/vdb1
syncer { kiirus 1000M; } — kasutage gigabitise kanali ribalaiust
luba-kaks-primaari - oluline valik, mis võimaldab muudatusi vastu võtta kahes peamises serveris
after-sb-0pri, after-sb-1pri, after-sb-2pri — valikud, mis vastutavad sõlme toimingute eest, kui tuvastatakse split aju. Lisateavet leiate dokumentatsioonist.
saada mõlemal esmaseks — määrab mõlemad sõlmed esmaseks.

Meie puhul on meil kaks täiesti identset VM-i, millel on spetsiaalne virtuaalne võrk ribalaiusega 10 gigabitti.

Meie näites on kahe klastri sõlme võrgunimed drbd1 ja drbd2. Korralikuks tööks peate sobitama hostide nimed ja IP-aadressid failis /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

2. samm. Seadistage sõlmed.

Mõlemas serveris töötame:

drbdadm create-md drbd0

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Saame järgmise:

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

Saate alustada sünkroonimist. Esimeses sõlmes peate käivitama:

drbdadm primary --force drbd0

Vaatame olekut:

cat /proc/drbd

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

Suurepärane, sünkroonimine on alanud. Ootame lõpuni ja vaatame pilti:

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

3. samm. Alustage sünkroonimist teises sõlmes:

drbdadm primary --force drbd0

Saame järgmise:

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

Nüüd saame drbd-sse kirjutada kahest serverist.

Samm 4. Installige ja konfigureerige ocfs2.

Kasutame üsna triviaalset konfiguratsiooni:

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

See tuleb sisse kirjutada /etc/ocfs2/cluster.conf mõlemal sõlmel.

Loome FS-i drbd0-s mis tahes sõlmes:

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

Siin lõime failisüsteemi sildiga testVol saidil drbd0, kasutades vaikeparameetreid.

Drbd+ocfs2-l põhinevate väikeste veebiklastrite klastrisalvestus

Failis /etc/default/o2cb peate määrama (nagu meie konfiguratsioonifailis)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

ja käivitage igas sõlmes:

o2cb register-cluster ocfs2cluster

Seejärel lülitame sisse ja lisame kõik automaatseks käivitamiseks vajalikud üksused:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Osa sellest töötab juba häälestusprotsessi ajal.

5. samm. Lisage mõlema sõlme fstab-i kinnituspunktid:

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

Kataloog /meedia/jagatud see tuleb eelnevalt luua.

Siin kasutame suvandeid noauto, mis tähendab, et faili ei ühendata käivitamisel (eelistan võrgufailide ühendamist systemd kaudu) ja heartbeat=local, mis tähendab südamelöögiteenuse kasutamist igas sõlmes. Samuti on olemas globaalne südamelöök, mis sobib rohkem suurte klastrite jaoks.

Järgmisena saate paigaldada /meedia/jagatud ja kontrollige sisu sünkroonimist.

Valmis! Selle tulemusena saame enam-vähem tõrketaluvusega salvestusruumi, millel on skaleeritavus ja korralik jõudlus.

Allikas: www.habr.com

Lisa kommentaar