DRBD kasutamine Debianiga
Sisukord
- 1 Sissejuhatus
- 2 DRBD kasutamise näite skeem
- 3 Tarkvara paigaldamine
- 4 DRDB osaliste seadistamine
- 5 DRBD osaliste initsialiseerimine
- 6 Single-primary DRBD süsteemi kasutamine
- 7 Dual-primary DRBD süsteemi kasutamine
- 8 Split brain
- 9 Olemasoleva andmetega plokkseadme kasutamine
- 10 Klustrihaldustarkvara
- 11 DRBD Proxy
- 12 Stacked DRBD
- 13 iSCSI + mdadm peegli kasutamine
- 14 Märkused
- 15 Kasulikud lisamaterjalid
Sissejuhatus
DRBD (Distributed Replicated Block Device) http://www.drbd.org/ tarkvara võimaldab seadistada kahe arvuti lokaalsed plokkseadmed tööle nii, et taustal sünkroniseeritakse ühe arvuti plokkseadmele tehtud muudatusi teise arvuti plokkseadmele.
DRBD saab kasutada kahes režiimis
- single-primary - nn DRBD legacy režiim, kus DRBD süsteemi kontrolli all olevatest plokkseadmetest on samaegselt kasutatav (st praktiliselt monteeritav) vaid üks; sobib nn cold-standby lahenduse seadistamiseks, kus üks süsteem ei teeninda seni kuni teine pakub teenust
- dual-primay - režiim, kus saab kasutada mõlemat DRBD süsteemi kontrolli all olevat plokkseadet, aga eeldusel, et failisüsteem või plokkseadet kasutav rakendus oskavad arvestada asjaolu, et tegu on nö sama loogilise plokkseadmega (nt OCFS2 failisüsteem või Xen'i migration)
Lihtsal juhtumil saavutatakse rakenduskihi suurem redundantsus sellega, et lülitatakse käima mitu rakendusserverit sarnase konfiguratsiooniga ühendades nt NFS abil kõigile külge sama dokumendijuurika, aga seejuures jääb lahendamata NFS serveri enda redundantsus - isegi kui NFS serveri sees on plokkseade moodustatud nt RAID skeemile, on NFS serverina kasutusel üks füüsiline arvuti. DRBD abil on võimalik sünkroniseerida plokkseadme kihis andmeid kahe NFS serveri vahel ja seetõttu öeldakse vahel DRBD kohta network RAID1.
DRBD ei ole selles mõttes skaleeruv, et süsteem koosneb üldiselt täpselt kahest osalisest.
DRBD kasutamise näite skeem
Olgu kasutada kaks arvutit, mis on lülitatud käima single-primary režiimis
teenuse kliendid | | primaarne | sekundaarne --|------------|-------------|-- | | _|_ www -1 _|_ www-2 | | | | |___| |___| | /srv/www | /srv/www | --> /dev/drbd0 | ..> /dev/drbd0 | --> /dev/sdb | --> /dev/sdb | | --|--------------------------|------------------- DRBD andmevahetuse subnet
- /dev/sdb - kummaski arvuti olev lokaalne plokkseade, mis on seadistatud käima DRBD nö backendina
- /dev/drbd0 - loogiline seade, millele on moodustatud failisüsteem
- /srv/www - failisüsteemi ühenduspunkt
- ..> tähistab, et failisüsteem ei ole külgeühendatud olekus
Tarkvara paigaldamine
DRBD skeemis osalevatele arvutitele tuleb paigaldada DRBD tarkvara, mis esineb kahes paketis, kusjuures tähelepanelikult kontrollida, et paigaldatakse õigele tuuma versioonile vastav moodul
# apt-get install drbd8-modules-2.6-xen-amd64 drbd8-utils
Alates Linux tuuma v. 2.6.33 sisaldub DRBD tuuma koosseisus kusjuures Debian Squeeze tuum 2.6.32 sisaldab DRBD mooduleid samuti. Seega pole uuemate tuumade korral drbd8-modules paigaldamine enam vajalik.
DRDB osaliste seadistamine
DRBD tööd juhib juhib seadistusfail /etc/drbd.conf, mis peab olema kõigis osalistes samasugune.
Nt võiks kasutada sellist seadistusfaili
# egrep -v "^$|^ +#|^#" /etc/drbd.conf global { usage-count no; } common { syncer { rate 10M; } } resource r0 { protocol C; handlers { pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f"; pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f"; local-io-error "echo o > /proc/sysrq-trigger ; halt -f"; } startup { degr-wfc-timeout 120; # 2 minutes. } disk { on-io-error detach; } net { after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect; cram-hmac-alg "sha256"; shared-secret "saladus123"; } syncer { rate 10M; al-extents 257; } on www-1 { device /dev/drbd0; disk /dev/sdb; address 192.168.10.51:7788; meta-disk internal; } on www-2 { device /dev/drbd0; disk /dev/sdb; address 192.168.10.52:7788; meta-disk internal; } }
kus
- usage-count yes - kasutus registreeritakse aadressil http://usage.drbd.org/cgi-bin/show_usage.pl
- cram-hmac-alg, shared-secret - osaliste autentimine
- syncer { rate 10M; } - drbd komponentide andmevahetuse kiirus, teoreetiliselt võiks see olla drbd süsteemile kirjutamise piirkiirus (10M kipub sageli olema vähe, mõistlikum kesktee oleks nt 33M)
- ilus oleks kui /etc/hosts failidest osalise nimed laheneksid
- handlers - nö tõsiste vigade puhul pannakse DRBD osalise arvuti operatsioonisüsteem seisma
- address - kui kasutatakse mitut DRBD ressurssi, siis tuleb kasutada ressursside juures erinevaid porte
Iga split-brain vea puhul pole kohe lahtiühendamine teha sageli mõistlik, hulga paindlikum hander kahe primaarse masinaga drbd süsteemile, mis suudab enamikke vigu parandada oleks järgnev:
handlers { split-brain "/usr/lib/drbd/notify-split-brain.sh root" ... } net { after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; ... } ... }
Muidu drbd ei üritagi midagi parandada vaid katkestab kohe ühenduse.
- discard-zero-changes: If there is any host on which no changes occurred at all, simply apply all modifications made on the other and continue.
DRBD osaliste initsialiseerimine
Vajadusel laadida drbd tuuma moodul
# modprobe drbd
Kõigil osalistel tuleb üks kord
- initsialiseerida meta data
# drbdadm create-md r0 md_offset 8589930496 al_offset 8589897728 bm_offset 8589635584 Found some data ==> This might destroy existing data! <== Do you want to proceed? [need to type 'yes' to confirm] yes ... Writing meta data... initialising activity log NOT initialized bitmap New drbd meta data block sucessfully created.
- Ühendada lokaalne plokkseade süsteemile külge DRBD ressursina
# drbdadm attach r0
- Laadida sünkroniseerimise parameetrid
# drbdadm syncer r0
- Ühendada DRBD seade võrku
# drbdadm connect r0
Süsteemi esmakordseks käivitamiseks tuleb ainult primaarsel komponendil öelda
primary# drbdadm -- --overwrite-data-of-peer primary r0
Seejärel toimub sünkroniseerimine, primaareselt paistab see nii
primary# /etc/init.d/drbd status drbd driver loaded OK; device status: version: 8.0.14 (api:86/proto:86) GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33 m:res cs st ds p mounted fstype 0:r0 SyncSource Primary/Secondary UpToDate/Inconsistent C ... sync'ed: 28.8% (2990860/4194140)K
Või vaadates /proc/drbd sisu
primary# cat /proc/drbd version: 8.0.14 (api:86/proto:86) GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33 0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:1829280 nr:0 dw:0 dr:1829280 al:0 bm:111 lo:0 pe:0 ua:0 ap:0 [==>.................] sync'ed: 18.4% (7987/9773)M finish: 0:12:03 speed: 11,260 (10,104) K/sec resync: used:0/61 hits:114218 misses:112 starving:0 dirty:0 changed:112 act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0
DRBD töötamisel ei tööta deemonprotsess, vaid nn tuuma lõimed
# ps aux | grep drbd root 2453 0.0 0.0 0 0 ? S Jun28 0:08 [drbd0_worker] root 2461 0.0 0.0 0 0 ? S Jun28 0:15 [drbd0_receiver] root 5128 0.0 0.0 0 0 ? S 18:59 0:00 [drbd0_asender]
Tulemusena on tekkinud töötav st käivitatud olekus DRBD süsteem.
Single-primary DRBD süsteemi kasutamine
Single-primary DRBD süsteemis tohib otseselt kasutada DRBD ressurssi ainult primaarsel arvutil, nt moodustada failisüsteem, külge ühendada ja seda kasutada. Süsteem propageerib taustal sekundaarsesse arvutisse muudatusi, kuid need pole kasutatavad enne kui sekundaarne osaline on DRBD vahenditega viidud primaarsesse rolli.
Kusjuures sekundaarsel komponendil ei saa töötada, nt disk ütleb
# fdisk /dev/drbd0 Unable to open /dev/drbd0
Süsteemi käivitamine
Kui DRBD süsteem on initsiliseeritud, siis sobib nt r0 ressursi käivitamiseks öelda mõlemas komponendis
# drbdadm up r0
kusjuures 'up' sisaldab endas järgnevust
# drbdadm attach r0 # drbdadm syncer r0 # drbdadm connect r0
DRBD süsteemi seiskamiseks sobib öelda
# drbdadm down r0
kusjuures 'down' sisaldab endas järgnevust
# drbdadm secondary r0 # drbdadm disconnect r0 # drbdadm detatch r0
Süsteemi töö jälgimine
Primaarses arvutis paistab DRBD olukord selline
# cat /proc/drbd version: 8.0.14 (api:86/proto:86) GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33 0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:4 nr:2517044 dw:2517048 dr:2025 al:1 bm:128 lo:0 pe:0 ua:0 ap:0 resync: used:0/61 hits:1048398 misses:128 starving:0 dirty:0 changed:128 act_log: used:0/257 hits:0 misses:1 starving:0 dirty:0 changed:1
kus
- cs: Connected - normaalne süsteemi olek
- st:Primary/Secondary - käsu antud arvuti roll on parasjagu primaarne
- ds:UpToDate/UpToDate - normaalne süsteemi olek
DRBD komponendi olekut saab küsida selliselt, r0 ressursi jaoks
# drbdadm state r0 Primary/Secondary
mis tähendab, et käesolev aruti on primaarne ja teine sekundaarne. Teisel arvutil samamoodi küsides saab vastupidise vastuse. Sarnaselt saab küsida cstate ja dstate konta, vastavalt ühenduses olemise ja uptodate olemise kohta
# drbdadm cstate r0 Connected
# drbdadm dstate r0 UpToDate/UpToDate
Koondit neist olekutest näeb küsides
# /etc/init.d/drbd status drbd driver loaded OK; device status: version: 8.0.14 (api:86/proto:86) GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33 m:res cs st ds p mounted fstype 0:r0 Connected Secondary/Primary UpToDate/UpToDate C 1:r1 Connected Secondary/Primary UpToDate/UpToDate C 2:r2 Connected Secondary/Primary UpToDate/UpToDate C
kus
- res - ressursi nimi
- cs - connection state
- st - state
- ds - data state
- p - DRBD protokoll
- mounted - ühenduspunkt
- fstype - failisüsteemi nimi
DRBD rollide vahetamine
Single-primary DRBD süsteemis toimub komponentide vahel rollide vahetamine selliselt, esmalt lõpetada DRBD seadme kasutamine, st ühendada failisüsteem primaarses lahti ning viia LVM voluumid nn NOT available olekusse, nt
# vgchange -a n
seejärel viia primaarne sekundaarseks
# drbdadm secondary r0
tulemusena on mõlemad DRBD osalised sekundaarsed
# drbdadm state r0 Secondary/Secondary
Algse sekundaarse viimine priaarsesse rolli
# drbdadm primary r0
Kui toimub LVM kasutamine, siis uue primaarses öelda
# vgchange -a y
Failisüsteem
Kui süsteem töötab normaalselt, st üks osaline on primaarses ja teine sekundaarses rollis, siis sobib primaarsel esmalt võtta DRBD plokkseade kasutusse, nt moodustades sellele failisüsteem
# mke2fs -j /dev/drbd0
ning kasutamiseks ühendada külge
# mount /dev/drbd0 /srv/www
Re-sünkroniseerimine
DRBD komponendi re-sünkroniseerimiseks tuleb kõnealuses arvutis öelda
# drbdadm invalidate r0
LVM
Kuna DRBD seadmele /dev/drbd0 vastab sisuliselt mõne füüsiline plokkseade, siis suure tõenäosusega ilma LVM seadistusfailis /etc/lvm/lvm.conf filtri osa kohendamata saab PV initsialiseerimisel sarnase teate
# pvcreate /dev/drbd0 Found duplicate PV OUZZv8VAX7hQIUDvz0oa42rvgJl6oinK: using /dev/sdb1 not /dev/drbd0 Volume group "drbd" successfully created
Aitab nt sellise (kuigi kontreetne näide ei tööta millegipärast) filtri kasutamine, kui DRBD seadmele vastav plokkseade on /dev/sdb1
filter = [ "r|/dev/sdb1|", "r|/dev/disk|", "a/.*/" ]
Peale filtri muutmist maksab öelda, mis moodustab värske LVM cache'i
# vgscan
Dual-primary DRBD süsteemi kasutamine
Debiani paketihalduse DRBD versioon 8.0.x ei ole dual-primary funktsioonide osas nii arenenud kui 2009 aasta suvel drbd.org viimane stabiilne versioon, aga kasutada tundub, et saab. Dual-primary sobib kasutada nt sellistel juhtumitel
- Xen live-migration
- nn klustri-failisüsteem, nt OCFS2
Seadistamine
Selleks tuleb lisada seadistusfaili net sektsiooni juurde rida
net { ... allow-two-primaries; }
ning seejärel mõlemas arvutis öelda
# drbdadm adjust r0
ning promoteerida mõlemad arvutid primaarsesse olekusse
# drbdadm primary r0
Edust annab tunnistust olek
# drbdadm state r0 Primary/Primary
ning fakt, et mõlemas osalises saab samaaegselt pöörduda DRBD seadme poole fdisk'iga.
Xen
Xen ja DRBD koos kasutamine võimaldab kahest lokaalse plokkseadmega füüsilisest arvutist moodustada salvestusressursi mõttes kõrgendatud redundantsusega süsteemi, seejuures saab kasutada Xen live migration protseduuri. Selline süsteem erineb nö klassikalisest juhtumist kus Xen live migration eeldab, et osalevatesse dom0 arvutitesse on ühendatud külge mingist kolmandast kohast, nt FC või iSCSI salvestusressurss. DRBD juhtumil kasutatakse kahte sõltumatut salvestusressurssi ja süsteem on kaitstud nt ühe arvuti täieliku füüsilise riknemise eest, kusjuures kui FC või iSCSI iseenesest ei ole kõrgendatud redundantsusega, siis on FC või iSCSI teenus põhimõtteliselt ikkagi SPOF (Single Point of Failure).
Süsteemi ettevalmistamiseks tuleb sooritada sellised sammud
- kummalgi arvutil on plokkseadmed, mis moodustavad DRBD seadme, nt /dev/drbd0 DRBD ressursinimega r0
- DRBD on seadistatud Primary/Primary režiimi
- ühes arvutis on sellele seadmele ettevalmistatud domU
Nö tavalise domU seadistusfailist erineb kõneksolevale asjakorraldusele vastav seadistusfail selle võrra, et plokkseadme kirjeldamiselt kasutatakse nt phy asemel drbd seadet, selliselt
name = 'drbd.loomaaed.tartu.ee' kernel = '/boot/vmlinuz-2.6.26-2-xen-amd64' ramdisk = '/boot/initrd.img-2.6.26-2-xen-amd64' root = '/dev/xvda1 ro' memory = '1024' disk = [ 'drbd:r0,xvda1,w'] vif = [ 'mac=70:01:68:00:20:13' ] vcpus="2" extra='xencons=tty'
Süsteemi kasutamiseks tuleb tavapäraselt öelda seal arvutis kus domU parasjagu töötab
xm migrate --live drbd.loomaaed.tartu.ee teine-dom0
Oluline on tähele panna, et Xen hoolitseb ise DRBD ressursi primaarseks ja sekundaarseks lülituste eest paketis drbd8-utils sisalduva skripti /etc/xen/scripts/block-drbd abil. domU käivitamisel võib olla DRBD Secondary/Secondary olekus. Süsteemi kasutamisel töötab DRBD siiski Secondary/Primary olekus, ainult live migrationi ajal toimub lülitus Primary/Primary'sse.
Kuigi sellisele lahendusele kulub suhteliselt väha riistvara, siis ette võiks heita, et salvestusressursi kiht ei ole nö infrastruktuurselt eraldatud. St ei ole eraldi kettakasti millest on salvestusressurss ühendatud külge muidu diskless arvutitele.
OCFS2
DRBD ja OCFS2 koos kasutamise tulemuseks on kahes eksemplaris esinev failisüsteem, eksemplarid esinevad erinevatel arvutite lokaalsetel plokkseadmetel ning on mõlemast arvutist samaaegselt kasutatavad
TODO PILT
Süsteemi seadistamine toimub sellises järjekorras
- Seadistatakse ja initsialiseeritakse tavalisel viisil kummaski arvutis DRBD ressurss, primary-secondary režiimis
- Lisatakse DRBD seadistusfaili /etc/drbd.conf read
startup { ... become-primary-on both; } .. net { ... after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; allow-two-primaries; }
- Seadistatakse käima OCFS2 nö tavalisel moel, kusjuures kasutama /dev/drbd0 seadet.
- Ühes arvutis moodustatakse OCFS2 failisüsteem, nt
# mkfs -t ocfs2 -N 2 -L ocfs2_drbd0 /dev/drbd0 mkfs.ocfs2 1.4.4 Cluster stack: classic o2cb Label: ocfs2_drbd0 Features: sparse backup-super unwritten inline-data strict-journal-super Block size: 4096 (12 bits) Cluster size: 4096 (12 bits) Volume size: 51784744960 (12642760 clusters) (12642760 blocks) Cluster groups: 392 (tail covers 30664 clusters, rest cover 32256 clusters) Extent allocator size: 29360128 (7 groups) Journal size: 268435456 Node slots: 2 Creating bitmaps: done Initializing superblock: done Writing system files: done Writing superblock: done Writing backup superblock: 3 block(s) Formatting Journals: done Growing extent allocator: done Formatting slot map: done Writing lost+found: done mkfs.ocfs2 successful
- Ühendatakse OCFS2 failisüsteem mõlemas arvutis külge
# mount /dev/drbd0 /srv/ocfs2
Kasulikud lisamaterjalid
- OCFS2 failisüsteemi kasutamine Debianiga
- http://www.drbd.org/docs/applications/ -> Using OCFS2 with DRBD
GFS2
TODO
Kasulikud lisamaterjalid
- GFS2 failisüsteemi kasutamine Debianiga
- http://www.drbd.org/docs/applications/ -> Using Using GFS with DRBD
- http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Global_File_System_2/ch-overview-GFS2.html
- http://wiki.samba.org/index.php/6.0%3a_DRBD#6.5._DRBD_8.0_GFS2_Primary.2FPrimary_Clustered_Filesystem
Split brain
Kui kord sünkroonis töötanud Primary/Secondary DRBD lahenduses kaob komponentide vahelt võrguühendus ning nt klustrihaldustarkvara automaatselt või administraator käsitsi on lülitanud mõlemad komponendid käima Primary režiimis ja mõlemas arvutis on seadmed monteeritud ja vastavad failisüsteemid kasutusel, siis ilmselt andmed lähevad sünkroonist välja ning võrguühenduse tekkimisel vajab DRBD täiendavat juhendamist, kuidas edasi käituda. Sellist nähtus nimetatakse split brain (ingl. k. lõhestatud aju) olukorraks.
Kui aga kord sünkroonis töötanud Primary/Secondary DRBD lahenduses kaob komponentide vahelt võrguühendus ning osaliste rollid jäävad samaks, st Primay jääb Primariks Secondary ei omanda Primary rolli, siis võrguühenduse taastumisel sünkroniseeritakse vahepeal toimunud muudatused ja DRBD süsteemi töö jätkub. Oluline on tähele panna, et iseenesest DRBD ei muuda ressursside rolle, reeglina on see klustrihalduse tarkvara ülesanne või tehakse seda käsitsi.
Split brainist väljumiseks on mitu võimalust, üks lihtsamaid on otsustada kumma komponendi andmetega süsteem jätkab, teisel toimunud muudatused hüljatakse. Selline järgnevus toimuks käsitsi selliselt, mitu järgnevat punkti tegelevad split brain olukorra tekitamisega ja seejärel tegeledakse selle lahendamisega
- lähtepunkt, Primary/Secondary seisund, andmed on sünkroonis, esimeses arvutis, mis on primaarne on failisüsteem külgeühendatud; teises arvutis mis on sekundaarne ei ole failisüsteem külge ühendatud (ja ei saagi olla)
drbd1# mount /dev/drbd0 /mnt drbd1# /etc/init.d/drbd status drbd driver loaded OK; device status: version: 8.0.14 (api:86/proto:86) GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33 m:res cs st ds p mounted fstype 0:r0 Connected Primary/Secondary UpToDate/UpToDate C /mnt ext3
- teine arvuti kaotab võrguühenduse
drbd2 # ifconfig eth0 down drbd1 # /etc/init.d/drbd status .. m:res cs st ds p mounted fstype 0:r0 WFConnection Primary/Unknown UpToDate/DUnknown C /mnt ext3
- teises arvutis muudetakse DRBD roll primaarseks ning failisüsteem ühendatakse külge, ning kasutatakse
drbd2 # drbdadm primary r0 drbd2 # mount /dev/drbd0 /mnt drbd2 # /etc/init.d/drbd status .. m:res cs st ds p mounted fstype 0:r0 WFConnection Primary/Unknown UpToDate/DUnknown C /mnt ext3
- võrguühendus taastub, osalised avastavad split brain olukorra ja lähevad StandAlone režiimi
drbd2# ifconfig eth0 up ... tuuma logi drbd0: Split-Brain detected, dropping connection! drbd2 # /etc/init.d/drbd status ... m:res cs st ds p mounted fstype 0:r0 StandAlone Primary/Unknown UpToDate/DUnknown - /mnt ext3
- järgneb split brain lahendamine käsitsi, kuna otsustakse hüljata teises arvutis vahepeal toimunud muudatused ja sünkroniseerida teisesse arvutisse sisu esimesest, öeldakse
drbd2# umount /mnt drbd2# drbdadm secondary r0 drbd2# drbdadm -- --discard-my-data connect r0 drbd1# drbdadm connect r0
- Tulemusena on taastunud esialgne olukord, kusjuures vahepeal teises arvutis toimunud muudatused on läinud kaotsi
drbd1# /etc/init.d/drbd status m:res cs st ds p mounted fstype 0:r0 Connected Primary/Secondary UpToDate/UpToDate C /mnt ext3
Selliste /etc/drbd.conf seadistusfaili sektsiooni net parameetriga kontrollitakse, kuidas süsteem käitub peale osaliste vahelise ühenduse taastumist, tundub, et disconnect on kindlasti ohutu kasutada kuigi see eeldab seejärel käsitsi sekkumist.
after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect;
Olemasoleva andmetega plokkseadme kasutamine
TODO
Klustrihaldustarkvara
Klustrihalduseks sobib kasutada nt Pacemaker tarkvara, mis sisaldab DRBD tuge
# crm ra list ocf linbit drbd
TODO
Kasulikud lisamaterjalid
DRBD Proxy
TODO
Stacked DRBD
TODO
iSCSI + mdadm peegli kasutamine
DRBD asemel iSCSI ja mdadm vahenditest moodustatud nö üle võrgu peegli ehitamine võib tunduda küllaltki ahvatleva alternatiivina DRBD kasutamisele
teenuse kliendid /dev/sdb | iqn.2009-06.ee.tla:storage.www-a | | /dev/sdb | iqn.2009-06.ee.tla:storage.www-b | ___ ___ _|_ | | iscsi-a | | iscsi-b | | teenuse server |___| |___| |___| | | | /dev/md0, RAID1 | | | --> iqn.2009-06.ee.tla:storage.www-a | | | --> iqn.2009-06.ee.tla:storage.www-b --|--------------------------|----------------------------|-- iSCSI andmevahetuse subnet
kus
- iqn.2009-06.ee.tla:storage.www-a,b on iSCSI serverid serveerides oma lokaalset plokkseadet /dev/sdb
- /dev/md0 on teenuse serveril töötav mdadm loogiline RAID1 seade, mis on moodustatud õle iSCSI külge ühendatud ressurssidest
Selline lahendus tõenäoliselt isegi töötab, aga seda pole soovitav eelistada DRBD'le järgmisetel põhjustel
- RAID1 komponendi riknemisel, nt võrgukatkestus toimub kogu peegli uuesti ehitamine, DRBD kasutab nn activity log süsteemi ja sünkroniseeritakse ainult vahepeal muutunud plokid
Märkused
- Andmebaaside andmeklustri juures kasutamisel tuleb kasutajal hästi läbi mõelda, mis toimub DRBD süsteemi riknemisel ja kuidas mõjub DRBD kasutamine jõudlusele.
- Tundub, et DRBD süsteem töötab ka juhtumil, kui üks komponent on 32 bit ja teine 64 bit operatsioonisüsteem.