Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Það sem við munum tala um:
Hvernig á að dreifa á fljótlegan hátt sameiginlegri geymslu fyrir tvo netþjóna byggða á drbd+ocfs2 lausnum.

Hverjum mun þetta nýtast:
Kennslan mun nýtast kerfisstjórum og öllum þeim sem velja geymsluaðferð eða vilja prófa lausnina.

Hvaða ákvörðunum neituðum við og hvers vegna?

Oft stöndum við frammi fyrir aðstæðum þar sem við þurfum að innleiða sameiginlega geymslu með góðum les- og skrifafköstum á litlum vefklasa. Við reyndum ýmsa möguleika til að innleiða sameiginlega geymslu fyrir verkefnin okkar, en fáir gátu fullnægt okkur á nokkrum vísbendingum í einu. Nú munum við segja þér hvers vegna.

  • Glusterfs var ekki ánægður með lestur og ritun; það voru vandamál með samtímis lestri á miklum fjölda skráa og það var mikið álag á örgjörvanum. Vandamálið við að lesa skrár gæti verið leyst með því að fá aðgang að þeim beint úr múrsteini, en það á ekki alltaf við og er almennt rangt.

  • Ceph líkaði ekki við óhóflega flókið, sem getur verið skaðlegt á verkefnum með 2-4 netþjóna, sérstaklega ef verkefninu er viðhaldið í kjölfarið. Aftur, það eru alvarlegar takmarkanir á frammistöðu sem neyða okkur til að byggja upp aðskilda geymsluklasa, eins og með glusterfs.

  • Að nota einn NFS netþjón til að útfæra sameiginlega geymslu vekur upp spurningar varðandi bilanaþol.

  • s3 er frábær vinsæl lausn fyrir ákveðin verkefni, en það er ekki skráarkerfi, sem þrengir umfang þess.

  • lsyncd. Ef við erum þegar byrjuð að tala um „non-skrá kerfi,“ þá er það þess virði að fara yfir þessa vinsælu lausn. Ekki aðeins er það ekki hentugur fyrir tvíhliða skipti (en ef þú vilt virkilega, þá geturðu), það virkar heldur ekki stöðugt á miklum fjölda skráa. Góð viðbót við þetta allt er að það er einþráður. Ástæðan er í arkitektúr forritsins: það notar inotify til að fylgjast með vinnuhlutum sem það úthlutar við ræsingu og við endurskönnun. rsync er notað sem flutningsmiðill.

Kennsla: hvernig á að dreifa sameiginlegri geymslu byggð á drbd+ocfs2

Ein hentugasta lausnin fyrir okkur var hlekkurinn ocfs2+drbd. Nú munum við segja þér hvernig þú getur fljótt dreift sameiginlegri geymslu fyrir tvo netþjóna byggða á lausnagagnagrunni. En fyrst, smá um íhlutina:

DRBD - geymslukerfi frá hefðbundinni Linux dreifingu sem gerir þér kleift að endurtaka gögn á milli netþjóna í blokkum. Aðalforritið er að byggja upp bilunarþolna geymslu.

OCFS2 - skráarkerfi sem veitir samnýtingu nokkurra kerfa á sömu geymslu. Innifalið í Linux dreifingunni og er kjarnaeining og notendarýmisverkfæri til að vinna með FS. OCFS2 er ekki aðeins hægt að nota yfir DRBD, heldur einnig yfir iSCSI með mörgum tengingum. Í dæminu okkar notum við DRBD.

Allar aðgerðir eru gerðar á ubuntu þjóninum 18.04 í lágmarks stillingum.

Skref 1. Stilla DRBD:

Í skránni /etc/drbd.d/drbd0.res lýsum við sýndarblokkunartækinu okkar /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-diskur innri — notaðu sömu blokkartækin til að geyma lýsigögn
tæki /dev/drbd0 — notaðu /dev/drbd0 sem slóð að drbd bindi.
diskur /dev/vdb1 - notaðu /dev/vdb1
syncer { hlutfall 1000M; } — notaðu gigabit rásarbandbreidd
leyfa-tvö-prófkjör - mikilvægur valkostur sem gerir kleift að samþykkja breytingar á tveimur aðalþjónum
eftir-sb-0pri, eftir-sb-1pri, eftir-sb-2pri - valkostir sem bera ábyrgð á aðgerðum hnútsins þegar klofinn heili greinist. Nánari upplýsingar er að finna í skjölunum.
verða-aðal-á bæði — setur báða hnúta á aðal.

Í okkar tilviki erum við með tvær algjörlega eins VM, með sérstakt sýndarnet með 10 gígabita bandbreidd.

Í dæminu okkar eru netheiti tveggja klasahnúta drbd1 og drbd2. Til að virka rétt þarftu að passa við nöfn og IP-tölur véla í /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Skref 2. Settu upp hnúta:

Á báðum netþjónum keyrum við:

drbdadm create-md drbd0

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Við fáum eftirfarandi:

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Þú getur hafið samstillingu. Á fyrsta hnút þarftu að framkvæma:

drbdadm primary --force drbd0

Við skulum skoða stöðuna:

cat /proc/drbd

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Frábært, samstilling er hafin. Við bíðum þar til yfir lýkur og sjáum myndina:

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Skref 3. Byrjaðu samstillingu á öðrum hnút:

drbdadm primary --force drbd0

Við fáum eftirfarandi:

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Nú getum við skrifað í drbd frá tveimur netþjónum.

Skref 4. Settu upp og stilltu ocfs2.

Við munum nota frekar léttvæga uppsetningu:

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

Það þarf að skrifa það niður /etc/ocfs2/cluster.conf á báðum hnútum.

Við búum til FS á drbd0 á hvaða hnút sem er:

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

Hér bjuggum við til skráarkerfi með merkimiðanum testVol á drbd0, með því að nota sjálfgefnar færibreytur.

Klasageymsla fyrir litla vefklasa byggða á drbd+ocfs2

Í /etc/default/o2cb þarftu að stilla (eins og í stillingarskránni okkar)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

og framkvæma á hverjum hnút:

o2cb register-cluster ocfs2cluster

Síðan kveikjum við á og bætum við öllum einingunum sem við þurfum til að keyra sjálfvirkt:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Sumt af þessu mun þegar vera í gangi meðan á uppsetningarferlinu stendur.

Skref 5. Bættu festingarpunktum við fstab á báðum hnútum:

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

Skrá /media/deilt það verður að búa til fyrirfram.

Hér notum við noauto valkostina, sem þýðir að skráin verður ekki sett upp við ræsingu (ég kýs að tengja netskrár í gegnum systemd) og heartbeat=local, sem þýðir að nota hjartsláttarþjónustuna á hverjum hnút. Það er líka alþjóðlegur hjartsláttur, sem hentar betur stórum klasa.

Næst er hægt að festa /media/deilt og athugaðu samstillingu efnis.

Gert! Fyrir vikið fáum við meira og minna bilunarþolna geymslu með sveigjanleika og ágætis afköstum.

Heimild: www.habr.com

Bæta við athugasemd