Dè a bhios sinn a 'bruidhinn mu dheidhinn:
Mar a chleachdas tu stòradh co-roinnte gu sgiobalta airson dà fhrithealaiche stèidhichte air fuasglaidhean drbd + ocfs2.
Cò dha a bhios seo feumail:
Bidh an oideachadh feumail do luchd-rianachd an t-siostaim agus do dhuine sam bith a thaghas dòigh buileachaidh stòraidh no a tha airson am fuasgladh fheuchainn.
Dè na co-dhùnaidhean a dhiùlt sinn agus carson?
Gu math tric tha sinn mu choinneimh suidheachadh far am feum sinn stòradh co-roinnte a chuir an gnìomh le deagh choileanadh leughaidh-sgrìobhaidh air cruinneachadh lìn beag. Dh’ fheuch sinn ri diofar roghainnean airson stòradh co-roinnte a chuir an gnìomh airson ar pròiseactan, ach cha robh mòran comasach air ar sàsachadh air grunn chomharran aig an aon àm. A-nis innsidh sinn dhut carson.
- Cha do shàsaich Glusterfs sinn le coileanadh leughaidh is sgrìobhaidh; bha duilgheadasan ann le leughadh àireamh mhòr de fhaidhlichean aig an aon àm, agus bha tòrr luchd air an CPU. Dh’ fhaodadh an duilgheadas le leughadh fhaidhlichean a bhith air fhuasgladh le bhith faighinn thuca gu dìreach bho bhreigichean, ach chan eil seo an-còmhnaidh iomchaidh agus sa chumantas tha e ceàrr.
- Cha bu toil le Ceph an cus iom-fhillteachd, a dh’ fhaodadh a bhith cronail air pròiseactan le frithealaichean 2-4, gu sònraichte ma thèid am pròiseact a chumail suas às deidh sin. A-rithist, tha fìor chuingealachaidhean coileanaidh ann a bheir oirnn cruinneachaidhean stòraidh fa leth a thogail, mar a tha ann an glusterfs.
- Le bhith a’ cleachdadh aon fhrithealaiche NFS gus stòradh co-roinnte a chuir an gnìomh tha sin a’ togail cheistean a thaobh fulangas sgàinidhean.
- Tha s3 na fhuasgladh mòr-chòrdte airson raon sònraichte de ghnìomhan, ach chan e siostam faidhle a th’ ann, a tha a ’caolachadh a raon.
- lsyncd. Ma tha sinn mu thràth air tòiseachadh a’ bruidhinn mu dheidhinn “siostaman neo-fhaidhlichean,” is fhiach a dhol thairis air an fhuasgladh mòr-chòrdte seo. Chan e a-mhàin nach eil e freagarrach airson iomlaid dà-shligheach (ach ma tha thu dha-rìribh ag iarraidh, faodaidh tu), chan eil e cuideachd ag obair gu seasmhach air àireamh mhòr de fhaidhlichean. Is e deagh chur ris an rud gu lèir gu bheil e aon-snàthainn. Tha an adhbhar ann an ailtireachd a’ phrògraim: bidh e a’ cleachdadh inotify gus sùil a chumail air nithean obrach, a bhios e a’ sònrachadh aig toiseach tòiseachaidh agus rè ath-sganadh. Tha rsync air a chleachdadh mar mheadhan gluasaid.
Oideachadh: mar a chleachdas tu stòradh co-roinnte stèidhichte air drbd+ocfs2
B’ e an ceangal aon de na fuasglaidhean as freagarraiche dhuinn ocfs2+drbd. A-nis innsidh sinn dhut mar as urrainn dhut stòradh co-roinnte a chuir gu sgiobalta airson dà fhrithealaiche stèidhichte air stòr-dàta fuasglaidh. Ach an toiseach, beagan mu na co-phàirtean:
DRBD - siostam stòraidh bhon sgaoileadh àbhaisteach Linux a leigeas leat dàta ath-riochdachadh eadar frithealaichean ann am blocaichean. Is e am prìomh thagradh a bhith a’ togail stòradh a tha fulang le lochdan.
OCFS2 - siostam faidhle a bheir seachad cleachdadh co-roinnte den aon stòradh le grunn shiostaman. Air a ghabhail a-steach ann an cuairteachadh Linux agus tha e na mhodal kernel agus innealan àite luchd-cleachdaidh airson a bhith ag obair leis an FS. Faodar OCFS2 a chleachdadh chan ann a-mhàin thairis air DRBD, ach cuideachd thairis air iSCSI le ioma-cheangal. Anns an eisimpleir againn bidh sinn a’ cleachdadh DRBD.
Thèid a h-uile gnìomh a dhèanamh air frithealaiche ubuntu 18.04 ann an rèiteachadh as lugha.
Ceum 1. Dèan rèiteachadh air DRBD:
Anns an fhaidhle /etc/drbd.d/drbd0.res tha sinn a’ toirt cunntas air an inneal bloc mas-fhìor againn /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-diosc a-staigh - cleachd na h-aon innealan bloca gus meata-dàta a stòradh
inneal /dev/drbd0 - cleachd / dev/drbd0 mar an t-slighe gu tomhas-lìonaidh drbd.
diosg /dev/vdb1 - cleachd /dev/vdb1
sioncronaich {ìre 1000M; } - cleachd leud-bann seanail gigabit
ceadaich-dà-bhun-sgoil - roghainn chudromach a leigeas le atharrachaidhean gabhail ris air dà phrìomh fhrithealaiche
às dèidh-sb-0pri, às dèidh-sb-1pri, an dèidh-sb-2pri - roghainnean le uallach airson gnìomhan an nód nuair a lorgar splitbrain. Gheibhear barrachd mion-fhiosrachaidh anns na sgrìobhainnean.
fàs sa bhun-sgoil - air an dà chuid - a’ suidheachadh an dà nod gu bun-sgoil.
Anns a’ chùis againn, tha dà VM a tha gu tur co-ionann againn, le lìonra brìgheil sònraichte le tar-chur de 10 gigabits.
Anns an eisimpleir againn, is e ainmean lìonra dà nod brabhsair drbd1 agus drbd2. Airson obrachadh ceart, feumaidh tu a bhith a’ maidseadh ainmean agus seòlaidhean IP luchd-aoigheachd ann an /etc/hosts.
10.10.10.192 drbd1
10.10.10.193 drbd2
Ceum 2. Stèidhich nodan:
Air an dà fhrithealaiche bidh sinn a’ ruith:
drbdadm create-md drbd0
modprobe drbd
drbdadm up drbd0
cat /proc/drbd
Gheibh sinn na leanas:
Faodaidh tu tòiseachadh air sioncronadh. Air a 'chiad nód feumaidh tu a chur an gnìomh:
drbdadm primary --force drbd0
Bheir sinn sùil air an t-suidheachadh:
cat /proc/drbd
Sgoinneil, tha sioncronadh air tòiseachadh. Bidh sinn a 'feitheamh gus an deireadh agus faic an dealbh:
Ceum 3. Tòisich synchronization air an dàrna nód:
drbdadm primary --force drbd0
Gheibh sinn na leanas:
A-nis is urrainn dhuinn sgrìobhadh gu drbd bho dhà fhrithealaiche.
Ceum 4. Stàlaich agus rèitich ocfs2.
Cleachdaidh sinn rèiteachadh gu math beag:
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
Feumaidh e bhith air a sgrìobhadh sìos ann an /etc/ocfs2/cluster.conf air an dà phuing.
Bidh sinn a’ cruthachadh FS air drbd0 air nód sam bith:
mkfs.ocfs2 -L "testVol" /dev/drbd0
An seo chruthaich sinn siostam faidhle leis an leubail testVol air drbd0, a’ cleachdadh nam paramadairean bunaiteach.
Ann an /etc/default/o2cb feumaidh tu a shuidheachadh (mar a tha san fhaidhle rèiteachaidh againn)
O2CB_ENABLED=true
O2CB_BOOTCLUSTER=ocfs2cluster
agus cuir an gnìomh air gach nod :
o2cb register-cluster ocfs2cluster
An uairsin bidh sinn a 'tionndadh air agus a' cur ris na h-aonadan gu lèir a dh'fheumas sinn airson fèin-ruith:
systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2
Bidh cuid den seo mar-thà a’ ruith tron phròiseas rèiteachaidh.
Ceum 5. Cuir puingean sreap ri fstab air an dà nod:
/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0
Eòlaire /meadhanan/co-roinnte feumar a chruthachadh ro làimh.
An seo bidh sinn a’ cleachdadh na roghainnean noauto, a tha a’ ciallachadh nach tèid am faidhle a chuir suas aig toiseach tòiseachaidh (is fheàrr leam faidhlichean lìonra a chuir suas tro systemd) agus heartbeat = local, a tha a’ ciallachadh a bhith a’ cleachdadh an t-seirbheis buille cridhe air gach nód. Tha buille cridhe cruinne ann cuideachd, a tha nas freagarraiche airson cruinneachaidhean mòra.
An uairsin faodaidh tu a chuir suas /meadhanan/co-roinnte agus thoir sùil air sioncronadh susbaint.
Done! Mar thoradh air an sin, bidh sinn a’ faighinn barrachd no nas lugha de stòradh a tha fulangach air lochdan le scalability agus coileanadh reusanta.
Source: www.habr.com