-
GlusterFS, czyli rozproszony system plików w CentOS
Niezwykle chętnie stosowanym terminem w dziedzinie IT jest chmura. Często jest ono używane na wyrost. Dobrym trendem jest zaś rozwój technologii klastrowych zwiększających bezpieczeństwo i skalowalność.
Jednym z takich rozwiązań jest rozproszony system plików GlusterFS.Jego instalacja i podstawowa konfiguracja nie jest bardzo trudna. Czas się za nią wziąć 🙂
1. Instalujemy dedykowane repozytorium na serwerze
cd /etc/yum.repos.d
wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo
2. Instalujemy odpowiedni pakiet/y
yum install glusterfs-server
3. Dodajemy do pliku „/etc/hosts” namiary na nasze serwery pod usługę.
vim /etc/hosts
dodajemy:
145.12.128.163 srv1
145.12.128.142 srv24. Startujemy usługę na obydwu serwerach
/etc/init.d/glusterd start
5. Podpinamy serwery
gluster peer probe srv2
[root@srv1 ~]# gluster peer probe srv2
peer probe: success.gluster peer probe srv1
[root@srv2 ~]# gluster peer probe srv1
peer probe: success.6. Tworzymy wolumen (force wymagany, jeśli nie będzie on na głównej partycji /)
gluster volume create testvol replica 2 transport tcp srv1:/data srv2:/data force
[root@srv1 ~]# gluster volume create testvol replica 2 transport tcp srv1:/data srv2:/data force
volume create: testvol: success: please start the volume to access datagluster volume start testvol
[root@srv1 ~]# gluster volume start testvol
volume start: testvol: successna drugim czasem trzeba
/etc/init.d/glusterfsd restart
7. Sprawdzamy, czy się udało
gluster volume info
[root@srv1 ~]# gluster volume info
Volume Name: testvol
Type: Replicate
Volume ID: cf113ea3-0d96-4281-a79f-c7e1f7c78d98
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: srv1:/data
Brick2: srv2:/data8. Ustawiamy uprawnienia dostępu do naszego, nowego wolumenu
gluster volume set testvol auth.allow 185.12.178.142
[root@srv1 ~]# gluster volume set testvol auth.allow 185.12.178.142
volume set: successPowyższe kroki (1-8, oprócz 6) wykonujemy na wszystkich serwerach, w naszym przypadku na 2. Teraz czas na konfigurację klienta.
1. Edytujemy plik „/etc/hosts” i dopisujemy adresy IP/nazwy naszych serwerów.
vim /etc/hosts
145.12.128.163 srv1
145.12.128.142 srv22. Instalujemy dedykowane repozytorium na serwerze
cd /etc/yum.repos.d
wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo
3. Instalujemy niezbędny pakiet – „glusterfs-fuse”
yum install glusterfs-fuse
4. Zakładamy katalog, gdzie chcemy podmontować nasz zasób (oczywiście, jeśli go nie ma)
mkdir /mnt/glusterfs
5. Podmontowujemy nasz wolumen glusterfs-a (mamy dowolność, czy skorzystamy z serwera srv1, czy srv2)
mount.glusterfs srv1:/testvol /mnt/glusterfs
6. Sprawdzamy, czy się podmontował
df -h
czego wynikiem, powinno być coś podobnego:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-lv_root
18G 2,3G 15G 15% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 477M 120M 332M 27% /boot
srv1:/testvol 18G 1,6G 15G 10% /mnt/glusterfs7. Dodajemy wpis do „/etc/fstab” wg poniższego przykładu, aby sam był montowany po restarcie
srv1:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0
Wygląda na to, że wszystko udało mi się pokrótce przedstawić. W kwestii wyjaśnienia, dodanie repozytorium na kliencie, jest konieczne z powodu wersji glusterfs. W domyślnych repozytoriach CentOS-a znajduje się starsza wersja- nie współpracująca z tą założoną na serwerach. Powodzenia 🙂
Gluster jest łatwy i przyjemny w postawieniu, jednak jego wydajność pozostaje daleko w tyle przy porównianiu z drbd. W naszym zastosowaniu Gluster potrafił zajechać dwa serwery z 8 rdzeniami, gdzie przy drbd użycie procesora jest prawie niezauważalne.
Tylko drbd raczej się chyba używa jak masz kompy spięte lokalnie poprzez sieć, a glusterfs to bardziej rozproszony jest.