Glusterfs kasutamine Gentooga

Allikas: Kuutõrvaja
Redaktsioon seisuga 27. august 2007, kell 11:30 kasutajalt Jj (arutelu | kaastöö)

probleem

1. On olemas veebiserver mis peaks olema töökorras 99% ajast. Et välistada erinevaid softi-raua vigu peaks hoidma üleval kahte ja nende sisu peab olema pidevalt sünkroonis.

2. Ühest veebiserverist jääb väheks klientide teenindamisel. Oleks vaja koormust jaotada. Samas veebiserveri sisu muutub pidevalt ja vaja on erinevate serverite infot hoida sünkroonis.

3. Kui üks server läheb maha siis peab teine töötama ilma mingite muutusteta edasi. Kui maasolnud server tuleb tagasi käiku peab ta suutma ise tuvastada ,et tema info on aegunud. Võtma kasutusele teise serveri failid ning oskama samas ise sünkroniseerida enda faile automaatselt.

Lahenduseks mis kõiki neid probleeme lahendab tundus peale pikemat netis kaevamist olevat glusterfs.


Install

On olemas kaks veebiserverit.

Esimese ip 192.168.1.10 Teise ip 192.168.1.11

Installime mõlemale serverile glusterfs'i. Nii Redhatile kui debianile on olemas installifailid. Ülejäänud linuxitele on olemas tar fail. Kuna kasutame näites gentood siis kompileerime ja installime glusterfs'i sourcest.

saab seda aadressilt http://ftp.zresearch.com/pub/gluster/glusterfs/

tar -xf glusterfs-1.3.0.tar.gz
./configure --prefix=/usr --disable-ibverbs
make
make install

Seejärel tuleb paigaldada serveritele fuse-libs ja fuse kerneli mooodul

Gentoos toimib see käsuga

emerge fuse

Seadistamine

Mõlemale serverile loome kaks faili. glusterfs.vol mis sisaldab serveri konfiguratsiooni

ja glusterfs_client.col glusterfs kliendi seadistustega


Mõlemad failid on kummagil serveril täpselt sama sisuga.

Serveritele tuleb luua ka kaust /home/export kus hoitakse reaalselt faile ja /mnt/gluster kuhu fuse abil ühendatakse glusterfs


/etc/glusterfs.vol
### Export volume "brick" with the contents of "/home/export" directory.
volume brick
 type storage/posix                   # POSIX FS translator
 option directory /home/export        # Export this directory
end-volume

### Add network serving capability to above brick.
volume server
 type protocol/server
 subvolumes brick brick-afr
 option transport-type tcp/server     # For TCP/IP transport
 option auth.ip.brick.allow *         # access to "brick" volume
 option auth.ip.brick-afr.allow *     # access to "brick" volume
end-volume


/etc/glusterfs_client.vol


### Add client feature and attach to remote subvolume of server1
volume brick1
 type protocol/client
 option transport-type tcp/client     # for TCP/IP transport
 option remote-host 192.168.1.10      # IP address of the remote brick
 option remote-subvolume brick        # name of the remote volume
end-volume

### Add client feature and attach to remote subvolume of brick2
volume brick2
 type protocol/client
 option transport-type tcp/client     # for TCP/IP transport
 option remote-host 192.168.1.11      # IP address of the remote brick
 option remote-subvolume brick        # name of the remote volume
end-volume
 
### Add AFR feature to brick1
volume afr
 type cluster/afr
 subvolumes brick1 brick2
 option replicate *:2
end-volume

Ja lisame masinatel faili

/etc/conf.d/local.start

read nii glusterfs deemoni startimiseks kui kliendiga mountimiseks


#!/bin/bash
# /etc/conf.d/local.start
 
glusterfsd -f /etc/glusterfs.vol
glusterfs -f /etc/glusterfs_client.vol -l /var/log/glusterfs.log  -L ERROR /mnt/gluster


Kasutamine

Peale tarkvara installi, konfigureerimist ja teenuste käivitamist peaks kummagi serveri /mnt/gluster harus asuma glusterfs failisüsteem. Failide loomised, kustutamised, muutmised seal kaustas mõjuvad mõlemasse masinasse hetkeliselt. Reaalselt asuvad failid mõlemas masinas /home/export kaustas.