Þ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
modprobe drbd
drbdadm up drbd0
cat /proc/drbd
Við fáum eftirfarandi:
Þú getur hafið samstillingu. Á fyrsta hnút þarftu að framkvæma:
drbdadm primary --force drbd0
Við skulum skoða stöðuna:
cat /proc/drbd
Frábært, samstilling er hafin. Við bíðum þar til yfir lýkur og sjáum myndina:
Skref 3. Byrjaðu samstillingu á öðrum hnút:
drbdadm primary --force drbd0
Við fáum eftirfarandi:
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.
Í /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