Cygal.net.pl

Systemy, Sieci i takie tam :)

Konfiguracja Glusterfs dla 3 nodow

Poniżej przedstawię podstawowa konfigurację dla replikacji plików na 3 serwery w oparciu o technologie GlusterFs.
Do konfiguracji replikacji plików na GlusterFS zaleca sie wykorzystanie osobnych dysków na każdy brick. Brick to inaczej filesystem, który jest następnie przypisywany do volumenu. Opis konfiguracji dotyczy systemu Ubuntu server LTS 14.04 ale powinien zadziałać również na Centosie.

1). przygotujmy sobie nowa partycje na drugim dysku w naszym przypadku będzie to /dev/sdb/

fdisk /dev/sdb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the DOS compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

wybieramy “n”
następnie “p”
następnie numer naszej partycji np “1”
następnie naciskamy dwa razy Enter
i na końcu zapisujemy zmiany wybierając opcje “w”

zainstalujmy sobie obsługe XFS.

apt-get install xfsprogs

następnie załóżmy na nowo założonej partycji filesystem
mkfs.xfs -i size=512 /dev/sdb1

2) punkt montowanie dla dysku /dev/sdb1
Utwórzmy punkt montowania.
mkdir -p /export/sdb1

Następnie zamontujmy dysk
mount /dev/sdb1 /export/sdb1

i otwórzmy katalog dla naszego bricka
mkdir -p /export/sdb1/brick

teraz dodajmy automatyczne montowanie dysku /dev/sdb1 do fstab
echo “/dev/sdb1 /export/sdb1 xfs defaults 0 0” >> /etc/fstab

3) Instalacja glusterfs
Instalacja glusterfs w ubuntu jest bardzo prosta. Należy wydać poniższe polecenie.

apt-get install glusterfs-client glusterfs-common glusterfs-dbg glusterfs-server

4) sprawdzenie komunikacji miedzy serwerami
Do pliku /etc/hosts na wszystkich serwerach należy wpisać ip i nazwy serwerów np

vim /etc/hosts
ubuntu1 192.168.1.20
ubuntu2 192.168.1.21
ubuntu3 192.168.1.22

na wszystkich serwerach sprawdzamy czy mamy komunikacje.

ping ubuntu1
ping ubuntu2
ping ubuntu3

Jeżeli tak to przechodzimy do konfiguracji glustra.

5) Konfiguracja
Poniższe polecenia wykonujemy tylko na jednym nodzie np na ubuntu1. Należy zwrocic uwagę że nie wykonujemy peer probe na noda z ktorego beda wykonywane peer probe.

gluster peer probe ubuntu2
gluster peer probe ubuntu3

Jezeli wszytko przebiegło poprawnie i nie dostaliśmy zadnych errorów to przejdzmy do utworzenia naszego volumenu.
Nasz volumen nazwałem vol1.

gluster volume create vol1 rep 3 transport tcp ubuntu1:/export/sdb1/brick ubuntu2:/export/sdb1/brick ubuntu3:/export/sdb1/brick

wystartujmy nasz glusterfs
gluster volume start vol1

6) Montowanie naszego bricka

Naszego bricka możemy teraz zamontować albo za pomocą glusterfs albo nfs. Ja wybrałem montowanie po nfs ale poniżej pokaże również jak zamontować naz zasób na glusterfs

utwórzmy sobie punkt montowania dla naszego bricka. Ja zdecydowałem sie na /srv/www/ ponieważ w takiej ścieżce chce miech replikowane pliki moich stron www.

mkdir -p /srv/www

teraz zamontujmy nasz zasób po glusterfs, a nastepnie po nfs. Wybór metody jest zależny od personalnych upodobań. Poniżej obie metody.

mount -t glusterfs 127.0.0.l:/vol1 /srv/www
mount -t nfs 127.0.0.l:/vol1 /srv/www

ręczne montowanie raczej jest mało praktyczne zatem dodajmy odpowiednie wpisy do /etc/fstab

127.0.0.1:/vol1 /srv/www/ glusterfs defaults,_netdev 0 0

lub dla montowania po nfs
127.0.0.1:/vol1 /srv/www/ nfs defaults,_netdev,noatime,nodiratime 0 0

oczywiście powyższe kroki należy powtórzyć już na wszystkich trzech serwerach.
Od tej pory możemy cieszyć sie replikacja naszych plików na 3 serwery dzięki czemu nasza strona www stanie bardziej niezawodna w przypadku awari jednego lub nawet dwóch serwerów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Time limit is exhausted. Please reload CAPTCHA.