GlusterFS kasutamine Debianiga
Sisukord
Sissejuhatus
GlusterFS http://www.gluster.org/ on paralleelne võrgufailisüsteem (ingl. k. parallel network file system).
Eesmärk
Olgu eesmärgiks seada käima selline asjakorraldus
--|--------------|--------- teenuse kliendid internetis | | www-1 _|_ _|_ www-2 GlusterFS kliendid | | | | gfs-1:/srv/gfs -> /srv/www |___| |___| gfs-1:/srv/gfs -> /srv/www gfs-2:/srv/gfs -> /srv/www | \ / | gfs-2:/srv/gfs -> /srv/www | \ / | | \/ | | / \ | | / \ | --|----|--------------|----|-- | | _|_ gfs-1 _|_ gfs-2 GlusterFS serverid | | | | |___| |___| /dev/sdb -> /srv/gfs /dev/sdb -> /srv/gfs
kus
- veebiserverile www-1 on veebijuurika failisüsteem ühendatud külge natuke erilisel moel, mõlemast GlusterFS serverist, kirjutamised tehakse mõlema füüsilise salvestusressursi serveri gfs-1 ja gfs-2 failisüsteemidesse
- veebiserverile www-2 on veebijuurika failisüsteem ühendatud külge sarnaselt
- nb! gfs serveritest on ressurss ühendatud külge mitte plokk-seadme tasemel, vaid failisüsteemi tasemel (nt sarnaselt NFS'ile)
GlusterFS süsteemi ettevalmistamine
Arvestades süsteemi jõudlust ja redundantsust võib olla mõttekas gfs-1 ja gfs-2 arvutitena kasutada füüsilisi arvuteid. Käesolevas tekstis on kasutatud Debian GNU/Linux Squeeze operatsioonisüsteemi, mis on küll 2009 juunis nn Debian testing, kuid see-eest sisaldab paketihalduses kõike vajalikku GlusterFS kasutamiseks. Alternatiiv on paigaldada GlusterFS nt backportsidest või lähtetekstist. Kuna GlusterFS lahendus tekitab võrgule tõenäoliselt koormust, siis on ettenägelik kasutada selle andmevahetuse jaoks eraldi võrgusegmenti, lisaks on see ka mõistliku turvakaalutlustel, sest GlusterFS ligipääsu kontrollimine töötab ip aadressi täpsusega.
Tarkvara paigaldamine serveritesse
GlusterFS serveritesse gfs-1 ja gfs-2 tuleb paigalda pakett
# apt-get install glusterfs-server
Tarkvara paigaldamine klientidesse
GlusterFS kliendis tuleb öelda loogiliselt võttes
# apt-get install glusterfs-client
kuid praktiliselt tuleb ka serveri pakett paigaldada. Seejärel jälgida, et serveri protsess asjatult kliendis ei käiks.
GlusterFS seadistamine
Mõlemad serverid tuleb seadistada samasuguselt ja mõlemad kliendid samuti samasuguselt.
Serverite seadistamine
Serverites tuleb väljajagatav plokkseade sobivalt ettevalmitada, nt moodustada ext3 failisüseem ning ühendada külge extended attributes toetusega
# mke2fs -j /dev/sdb # mount -o user_xattr /dev/sdb /srv/gfs
Serverites sobib kasutada nt sellist seadistusfaili /etc/glusterfs/glusterfsd.vol
volume posix type storage/posix option directory /srv/gfs end-volume volume locks type features/locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp subvolumes brick option auth.addr.brick.allow * end-volume
Seadistusfaili tuleks lugeda selliselt
- volume posix kirjeldab ära, et /srv/gfs on väljajagatav failisüsteem
- volume locks, volume brick ja volume server lisavad väljajagatavale failisüsteemile juurde omadusi, nt selle, et ta üldse üle etherneti võrgu välja jagatakse (option transport-type tcp)
Klientide seadistamine
Serverites sobib kasutada nt sellist seadistusfaili /etc/glusterfs/glusterfs.vol
volume remote1 type protocol/client option transport-type tcp option remote-host 192.168.10.55 option remote-subvolume brick end-volume volume remote2 type protocol/client option transport-type tcp option remote-host 192.168.10.56 option remote-subvolume brick end-volume volume replicate type cluster/replicate subvolumes remote1 remote2 end-volume volume writebehind type performance/write-behind option window-size 1MB subvolumes replicate end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume
Seadistusfaili tuleks lugeda selliselt
- volume remote1 ja remote2 kirjeldavad võrgus asuvad GlusterFS ressursid, ip aadressidega
- volume replicate kirjeldab, et remote1 ja remote2 ressursse tuleb kasutada replikeerivas režiimis, st muudatused tuleb kliendil kirjutada mõlemale
- volume writebehind ja cache määratlevad lisaomadusi
Süsteemi käivitamine
GlusterFS töötamisega käivad kõigis arvutites protsessid.
Serverid
GlusterFS serverite käivitamise eel peavad olema väljajagatavad failisüsteemid GlusterFS serverites lokaalselt külge monteeritud
# mount /dev/sdb /srv/gfs
ning GlusterFS teenuse käivitamiseks tuleb öelda mõlemas serveris
# /etc/init.d/glusterfs-server
Serveri logi tekib faili
/var/log/glusterfs/glusterfsd.log
nt käivitamise kohta
================================================================================ Version : glusterfs 2.0.1 built on May 26 2009 21:13:14 TLA Revision : 5c1d9108c1529a1155963cb1911f8870a674ab5b Starting Time: 2009-06-27 11:43:12 Command line : /usr/sbin/glusterfsd -p /var/run/glusterfsd.pid -f /etc/glusterfs/glusterfsd.vol PID : 1681 System name : Linux Nodename : gfs-2 Kernel Release : 2.6.26-2-xen-amd64 Hardware Identifier: x86_64 Given volfile: +------------------------------------------------------------------------------+ 1: volume posix 2: type storage/posix 3: option directory /srv/gfs 4: end-volume 5: 6: volume locks 7: type features/locks 8: subvolumes posix 9: end-volume 10: 11: volume brick 12: type performance/io-threads 13: option thread-count 8 14: subvolumes locks 15: end-volume 16: 17: volume server 18: type protocol/server 19: option transport-type tcp 20: subvolumes brick 21: option auth.addr.brick.allow * 22: end-volume +------------------------------------------------------------------------------+ [2009-06-27 11:43:12] N [glusterfsd.c:1152:main] glusterfs: Successfully started
Kliendid
GlusterFS kliendi poolel tuleb ühendada serveri ressurss külge öeldes mõlemas kliendis
# mount -t glusterfs /etc/glusterfs/glusterfs.vol /srv/www
Seejärel tekib protsess
# ps aux | grep glusterfs root ... /usr/sbin/glusterfs --log-level=NORMAL --volfile=/etc/glusterfs/glusterfs.vol /mnt/glusterfs
Kliendi logi tekib faili
/var/log/glusterfs/glusterfs.log
GlusterFS süsteemi kasutamine
GlusterFS süsteemi kasutamine toimub nii nagu tavalise ext3 failisüsteemi kasutamine. Jõudlus on tõenäoliselt mõnevõrra tagasihoidlikum kui mõni muu lahendus, sest kasutatakse extended attribute'isid.
Märkused
- Vahel moodustatakse mitmest arvutist, nt neljast sellised risti-rästi ühendatud salvestusressursiga süsteemid, et kuni kahe arvuti töötamast lakkamisel süsteem pakub teenust edasi. Sel juhul on kõik arvutid samaaegselt nii GlusterFS kliendid kui serverid.
- Kuna GlusterFS ei ole iseenesest failisüsteem, vaid töötab olemasoleva failisüsteemiga, siis on võimalik üle võrgu kasutusel olnud salvestusressursse vajadusel kasutada ka ilma GlusterFS toetuseta süsteemides, nt ühendada vastav plokkseadme külge asjasse mitte-puutuvasse arvutisse ja monteerida GlusterFS teenusena kasutatud ext3 failisüsteem lokaalselt külge.
- Nagu igasuguste nn kõrgkäideldavate lahendusete puhul, peab ka GlusterFS kasutamisel arvestama, milliste riskidega konkreetne asjakorraldus tegeleb ja millistega mitte. Nt antud juhul ollakse kaitstud selle vastu kui ühe gfs serveri toiteplokk rikneb, samas ei olda kaitstud selle vastu kui süsteemiadministraator ühes www arvutis olles kataloogi /srv/www alt mõne vajaliku alamkataloogi sisu kogemata kustutab.