Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

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

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Rydym yn cael y canlynol:

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

Gallwch chi ddechrau cysoni. Ar y nod cyntaf mae angen i chi weithredu:

drbdadm primary --force drbd0

Edrychwn ar y statws:

cat /proc/drbd

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

Gwych, mae cydamseru wedi dechrau. Arhoswn tan y diwedd i weld y llun:

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

Cam 3. Dechrau cysoni ar yr ail nod:

drbdadm primary --force drbd0

Rydym yn cael y canlynol:

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

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.

Storfa clwstwr ar gyfer clystyrau gwe bach yn seiliedig ar drbd+ocfs2

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

Ychwanegu sylw