GlusterFS – mrežni filesystem
Autor: Vladimir Cicović
Uvod
Zamislite da imate zadatak da u svojoj firmi napravite skladište podataka od 1 [PB] (petabajt). Očito da vidimo ograničenja SMB i NFS. Pri tome, imamo čitanje datoteka od 12 [GB/s] (ili više) za 100.000 konekcija, sa stalnim rastom. Takođe, moramo kombinovati NFS/SMB/CIFS, obične računare i storage (NAS – uređaji za skladištenje velike količine podataka).
Odgovor na ovakav veliki izazov je GlusterFS, open source riješenje koje omogućava malim firmama da postanu velike zahvaljujući mogućnosti skaliranja velike količine podataka. Ako ste se ikad zapitali kako je moguće imati do 72 brontobajta podataka, ili tek nekoliko petabajtova – GlusterFS je odgovor. Postoje slična riješenja – Ceph, Lustre, FhGFS i sl. To ostavljamo čitaocima da pogledaju, uporede i da vide uopšte kako funkcionišu klasterski filesystem-i.
Istorija
GlusterFS je započet kao dio Gluster projekta (www.gluster.org) u julu 2005. Prvi commit potiče iz jula 2006. godine. Prvi izlazak GlusterFS-a bio je u septembru 2006, gdje su pokazani ciljevi i ideologija za kojom ide ovaj projekat. Stabilna verzija GlusterFS 1.2.3 je u februaru 2007. pokazala dosta dobre performanse, ali nije uspjela da ostvari očekivane rezultate.
Kasnija verzija 1.3 je unapredila rapidno performanse projekta, tako da su svi iz open source zajednice zapazili projekat. Takođe, ovo je dovelo do analize raznih eksperata gdje je ocijenjeno da je projekat dovoljno dobar za komercijalnu upotrebu. GlusterFS je POSIX kompatibilan, tako da je dostupan na svim POSIX-like sistemima.
Terminologija i specifikacije
Prije nego krenemo sa instalacijom GlusterFS-a pod Debian 7.0, treba da pojasnimo nekoliko termina.
brick – brick je skladište koje je dodijeljeno volume-u
client – mašina koja je mount-ovala volume
server – mašina na kojoj se nalazio filesystem, na kojem će podaci biti sačuvani
subvolume – brick koji je obrađen od strane makar jednog translatora volume-a
volume – finalni dijeljeni podaci, nakon što prođe sve translatore
translator – povezuje jedan ili više subvolume-a i radi sa njima određene operacije na određeni način
Vrste volume-a
Distributivni – Ako se kompletna datoteka postavi na jedan, sljedeća na drugi subvolume, onda se takav volume zove distributivni. Mana ovoga jeste što ako otkaže jedan subvolume, onda sistem ostaje bez jednog dijela datoteka.
Replikacija – Kopiranje kompletnog subvolume-a na drugi subvolume
Striped – ako jednu datoteku podijelimo na više dijelova i te dijelove postavimo na razne subvolume-e
Kombinacija svih navedenih volume-a je moguća. Savjetujemo čitaocima da pogledaju GlusterFS korisničko uputstvo.
Instalacija i konfigurisanje GlusterFS-a
Savjetujemo da instalirate najnoviji Debian 7.0 na tri mašine pod VirtualBox-om. Postupak instalacije na Debian-u je sljedeći:
apt-get install glusterfs-server
Ovo ćemo uraditi na tri mašine (VirtualBox mašine moraju biti povezane u LAN ili pod VirtualBox-om). Na svakoj virtualnoj mašini u /etc/hosts stavićemo:
[code]
192.168.1.100 server1
192.168.1.102 server2
192.168.1.103 client1
[/code]
Na client1 mašini uradićemo sljedeće komande:
gluster peer probe server1 gluster peer probe server2
Zatim ćemo kreirati na server1 i server2 fasciklu /exp. Poslije toga na client1 mašini:
gluster volume create test-volume transport tcp server1:/exp server2:/exp
Na server1 i server2:
gluster volume set test-volume auth.allow 192.168.1.*
Na Client1 mašini:
gluster volume start test-volume
Da bismo potvrdili da sistem radi i da je volume montiran:
gluster volume info test-volume
Gdje je print:
[code]
Volume Name: test-volume
Type: Distribute
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1:/exp1
Brick2: server2:/exp1
Options Reconfigured:
auth.allow: 192.168.1.*
[/code]
I konačno, moramo povezati dati sistem (mkdir /mnt/testvolume – ako ne postoji):
mount -t glusterfs localhost:/test-volume /L/testvolume/
U finalu, da bismo vidjeli koliko imamo prostora , uradićemo:
df -h ...neke informacije... localhost:/test-volume 9.4G 3.7G 5.3G 42% /mnt/testvolume
U datom primjeru imamo 5,3 [GB] slobodnog prostora.
Ovime smo uradili klasičan distributivni volume. Ako napravite datoteku t1.txt i datoteku t2.txt– one će biti postavljene na različitim serverima tj. subvolume-ima. Pored distributivnog volume-a postoje još replicated, strip, kao i njihova kombinacija.
Ako želite postati ozbiljan system administrator, vrijeme je onda da pročitate korisničko uputstvo za GlusterFShttp://gluster.org/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide.