Yr hyn y byddwn yn siarad amdano:
Sut i ddefnyddio storfa a rennir yn gyflym ar gyfer dau weinydd yn seiliedig ar atebion drbd + ocfs2.
Ar gyfer pwy fydd hyn yn ddefnyddiol:
Bydd y tiwtorial yn ddefnyddiol i weinyddwyr system ac unrhyw un sy'n dewis dull gweithredu storio neu sydd am roi cynnig ar yr ateb.
Pa benderfyniadau wnaethon ni eu gwrthod a pham?
Yn aml rydym yn wynebu sefyllfa lle mae angen i ni weithredu storfa a rennir gyda pherfformiad darllen-ysgrifennu da ar glwstwr gwe bach. Fe wnaethom roi cynnig ar wahanol opsiynau ar gyfer gweithredu storfa a rennir ar gyfer ein prosiectau, ond ychydig oedd yn gallu ein bodloni ar sawl dangosydd ar unwaith. Nawr byddwn yn dweud wrthych pam.
- Nid oedd Glusterfs yn ein bodloni gyda pherfformiad darllen ac ysgrifennu; roedd problemau gyda darllen ar yr un pryd nifer fawr o ffeiliau, ac roedd llwyth uchel ar y CPU. Gellid datrys y broblem gyda darllen ffeiliau trwy eu cyrchu'n uniongyrchol o frics, ond nid yw hyn bob amser yn berthnasol ac yn gyffredinol mae'n anghywir.
- Nid oedd Ceph yn hoffi'r cymhlethdod gormodol, a all fod yn niweidiol ar brosiectau gyda gweinyddwyr 2-4, yn enwedig os cynhelir y prosiect wedyn. Unwaith eto, mae cyfyngiadau perfformiad difrifol sy’n ein gorfodi i adeiladu clystyrau storio ar wahân, fel yn achos glusterfs.
- Mae defnyddio un gweinydd NFS i weithredu storfa a rennir yn codi cwestiynau o ran goddefgarwch namau.
- Mae s3 yn ddatrysiad poblogaidd rhagorol ar gyfer ystod benodol o dasgau, ond nid yw'n system ffeiliau, sy'n cyfyngu ar ei chwmpas.
- lsyncd. Os ydym eisoes wedi dechrau siarad am “systemau di-ffeil,” yna mae'n werth mynd dros yr ateb poblogaidd hwn. Nid yn unig nad yw'n addas ar gyfer cyfnewid dwy ffordd (ond os ydych chi wir eisiau, yna gallwch chi), nid yw hefyd yn gweithio'n sefydlog ar nifer fawr o ffeiliau. Ychwanegiad braf at yr holl beth yw ei fod yn un edau. Mae'r rheswm ym mhensaernïaeth y rhaglen: mae'n defnyddio inotify i fonitro gwrthrychau gwaith, y mae'n ei aseinio wrth gychwyn ac wrth ailsganio. defnyddir rsync fel y cyfrwng trosglwyddo.
Tiwtorial: sut i ddefnyddio storfa a rennir yn seiliedig ar drbd+ocfs2
Un o'r atebion mwyaf cyfleus i ni oedd y cyswllt ocfs2+drbd. Nawr byddwn yn dweud wrthych sut y gallwch chi ddefnyddio storfa a rennir yn gyflym ar gyfer dau weinydd yn seiliedig ar gronfa ddata datrysiadau. Ond yn gyntaf, ychydig am y cydrannau:
DRBD - system storio o'r dosbarthiad Linux safonol sy'n eich galluogi i ddyblygu data rhwng gweinyddwyr mewn blociau. Y prif gais yw adeiladu storfa sy'n goddef diffygion.
OCFS2 - system ffeiliau sy'n darparu defnydd a rennir o'r un storfa gan sawl system. Wedi'i gynnwys yn y dosbarthiad Linux ac mae'n fodiwl cnewyllyn ac offer gofod defnyddiwr ar gyfer gweithio gyda'r FS. Gellir defnyddio OCFS2 nid yn unig dros DRBD, ond hefyd dros iSCSI gyda chysylltiadau lluosog. Yn ein hesiampl rydym yn defnyddio DRBD.
Perfformir yr holl gamau gweithredu ar weinydd ubuntu 18.04 mewn cyfluniad lleiaf posibl.
Cam 1. Ffurfweddu DRBD:
Yn y ffeil /etc/drbd.d/drbd0.res rydym yn disgrifio ein dyfais bloc rhithwir /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-ddisg mewnol - defnyddio'r un dyfeisiau bloc i storio metadata
dyfais /dev/drbd0 — defnyddiwch /dev/drbd0 fel y llwybr i gyfaint y drbd.
disg /dev/vdb1 - defnyddio /dev/vdb1
syncer { cyfradd 1000M; } — defnyddio lled band sianel gigabit
caniatáu-dwy-gynradd - opsiwn pwysig sy'n caniatáu i newidiadau gael eu derbyn ar ddau weinydd cynradd
ôl-sb-0pri, ôl-sb-1pri, ôl-sb-2pri - opsiynau sy'n gyfrifol am weithredoedd y nod pan ganfyddir holltbrain. Ceir rhagor o fanylion yn y ddogfennaeth.
dod yn gynradd-ar y ddau — yn gosod y ddau nod i'r cynradd.
Yn ein hachos ni, mae gennym ddau VM hollol union yr un fath, gyda rhwydwaith rhithwir pwrpasol gyda mewnbwn o 10 gigabits.
Yn ein hesiampl, enwau rhwydwaith dau nod clwstwr yw drbd1 a drbd2. Er mwyn gweithredu'n iawn, mae angen i chi baru enwau a chyfeiriadau IP gwesteiwyr yn /etc/hosts.
10.10.10.192 drbd1
10.10.10.193 drbd2
Cam 2. Gosod nodau:
Ar y ddau weinydd rydym yn rhedeg:
drbdadm create-md drbd0
modprobe drbd
drbdadm up drbd0
cat /proc/drbd
Rydym yn cael y canlynol:
Gallwch chi ddechrau cysoni. Ar y nod cyntaf mae angen i chi weithredu:
drbdadm primary --force drbd0
Edrychwn ar y statws:
cat /proc/drbd
Gwych, mae cydamseru wedi dechrau. Arhoswn tan y diwedd i weld y llun:
Cam 3. Dechrau cysoni ar yr ail nod:
drbdadm primary --force drbd0
Rydym yn cael y canlynol:
Nawr gallwn ysgrifennu at drbd o ddau weinydd.
Cam 4. Gosod a ffurfweddu ocfs2.
Byddwn yn defnyddio cyfluniad eithaf dibwys:
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
Mae angen ei ysgrifennu i lawr yn /etc/ocfs2/cluster.conf ar y ddau nod.
Rydym yn creu FS ar drbd0 ar unrhyw nod:
mkfs.ocfs2 -L "testVol" /dev/drbd0
Yma rydym wedi creu system ffeiliau gyda'r label testVol ar drbd0, gan ddefnyddio'r paramedrau rhagosodedig.
Yn /etc/default/o2cb mae angen i chi osod (fel yn ein ffeil ffurfweddu)
O2CB_ENABLED=true
O2CB_BOOTCLUSTER=ocfs2cluster
a gweithredu ar bob nod:
o2cb register-cluster ocfs2cluster
Yna rydym yn troi ymlaen ac yn ychwanegu'r holl unedau sydd eu hangen arnom i redeg yn awtomatig:
systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2
Bydd rhywfaint o hyn eisoes yn rhedeg yn ystod y broses sefydlu.
Cam 5. Ychwanegu pwyntiau gosod i fstab ar y ddau nod:
/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0
Cyfeiriadur /cyfryngau/rhannu rhaid ei greu ymlaen llaw.
Yma rydyn ni'n defnyddio'r opsiynau noauto, sy'n golygu na fydd y ffeil yn cael ei gosod wrth gychwyn (mae'n well gen i osod ffeiliau rhwydwaith trwy systemd) a heartbeat = local, sy'n golygu defnyddio'r gwasanaeth curiad calon ar bob nod. Mae yna hefyd guriad calon byd-eang, sy'n fwy addas ar gyfer clystyrau mawr.
Nesaf gallwch chi osod /cyfryngau/rhannu a gwirio cydamseru cynnwys.
Wedi'i wneud! O ganlyniad, rydym yn cael mwy neu lai o le storio sy'n goddef namau gyda scalability a pherfformiad gweddus.
Ffynhonnell: hab.com