petak, 19 aprila, 2024
Sam svoj majstor

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.

brickbrick 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

subvolumebrick 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.