четвртак, 18 априла, 2024
Сам свој мајстор

GlusterFS – мрежни filesystem

Аутор: Владимир Цицовић

Увод

Замислите да имате задатак да у својој фирми направите складиште података од 1 [PB] (петабајт). Очито да видимо ограничења SMB и NFS. При томе, имамо читање датотека од 12 [GB/s] (или више) за 100.000 конекција, са сталним растом. Такође, морамо комбиновати NFS/SMB/CIFS, обичне рачунаре и storage (NAS – уређаји за складиштење велике количине података).

Одговор на овакав велики изазов је GlusterFS, open source ријешење које омогућава малим фирмама да постану велике захваљујући могућности скалирања велике количине података. Ако сте се икад запитали како је могуће имати до 72 бронтобајта података, или тек неколико петабајтова – GlusterFS је одговор. Постоје слична ријешења – Ceph, Lustre, FhGFS и сл. То остављамо читаоцима да погледају, упореде и да виде уопште како функционишу кластерски filesystem-и.

Историја

GlusterFS је започет као дио Gluster пројекта (www.gluster.org) у јулу 2005. Први commit потиче из јула 2006. године. Први излазак GlusterFS-а био је у септембру 2006, гдје су показани циљеви и идеологија за којом иде овај пројекат. Стабилна верзија GlusterFS 1.2.3 је у фебруару 2007. показала доста добре перформансе, али није успјела да оствари очекиване резултате.

Каснија верзија 1.3 је унапредила рапидно перформансе пројекта, тако да су сви из open source заједнице запазили пројекат. Такође, ово је довело до анализе разних експерата гдје је оцијењено да је пројекат довољно добар за комерцијалну употребу. GlusterFS је POSIX компатибилан, тако да је доступан на свим POSIX-like системима.

Терминологија и спецификације

Прије него кренемо са инсталацијом GlusterFS-а под Debian 7.0, треба да појаснимо неколико термина.

brickbrick је складиште које је додијељено volume

client – машина која је mount-овала volume

server – машина на којој се налазио filesystem, на којем ће подаци бити сачувани

subvolumebrick који је обрађен од стране макар једног транслатора volume

volume – финални дијељени подаци, након што прође све транслаторе

translator – повезује један или више subvolume-а и ради са њима одређене операције на одређени начин

Врсте volume-a

Дистрибутивни – Ако се комплетна датотека постави на један, сљедећа на други subvolume, онда се такав volume зове дистрибутивни. Мана овога јесте што ако откаже један subvolume, онда систем остаје без једног дијела датотека.

Репликација – Копирање комплетног subvolume-а на други subvolume

Striped – ако једну датотеку подијелимо на више дијелова и те дијелове поставимо на разне subvolume

Комбинација свих наведених volume-а је могућа. Савјетујемо читаоцима да погледају GlusterFS корисничко упутство.

Инсталација и конфигурисање GlusterFS-а

Савјетујемо да инсталирате најновији Debian 7.0 на три машине под VirtualBox-ом. Поступак инсталације на Debian-у је сљедећи:

apt-get install glusterfs-server

Ово ћемо урадити на три машине (VirtualBox машине морају бити повезане у LAN или под VirtualBox-ом). На свакој виртуалној машини у /etc/hosts ставићемо:
[code]
192.168.1.100 server1
192.168.1.102 server2
192.168.1.103 client1
[/code]
На client1 машини урадићемо сљедеће команде:

gluster peer probe server1
gluster peer probe server2

Затим ћемо креирати на server1 и server2 фасциклу /exp. Послије тога на client1 машини:

gluster volume create test-volume transport tcp server1:/exp server2:/exp

На server1 и server2:

 
 gluster volume set test-volume auth.allow 192.168.1.*

На Client1 машини:

 gluster volume start test-volume

Да бисмо потврдили да систем ради и да је volume монтиран:

 gluster volume info test-volume

Гдје је принт:
[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]
И коначно, морамо повезати дати систем (mkdir /mnt/testvolume – ако не постоји):

mount -t glusterfs localhost:/test-volume /L/testvolume/

У финалу, да бисмо видјели колико имамо простора , урадићемо:

df -h
...неке информације... 
localhost:/test-volume                                  9.4G  3.7G  5.3G  42% /mnt/testvolume

У датом примјеру имамо 5,3 [GB] слободног простора.

Овиме смо урадили класичан дистрибутивни volume. Ako направите датотеку t1.txt и датотеку t2.txt– оне ће бити постављене на различитим серверима тј. subvolume-има. Поред дистрибутивног volume-а постоје још replicated, strip, као и њихова комбинација.

Ако желите постати озбиљан system administrator, вријеме је онда да прочитате корисничко упутство за GlusterFS http://gluster.org/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide.