-
Galera Load Balancer- nieodzowny element klastra bazodanowego
Zapewnienie stabilności działania danej strony jest niezwykle trudne szczególnie gdy portal jest oblegany przez rzeszę fanów a czasem również antyfanów. Który element infrastruktury witryny najprościej przeciążyć?
Powiem tak, zależy od konkretnego przypadku, ale najczęściej serwer www lub bazodanowy. Co do przeciwdziałaniu tego pierwszego, napiszemy o tym w późniejszym terminie. Co do bazy danych, to proponuje klaster MariaDB Galera Cluster. Jego wstępną konfigurację i wdrożenie, przedstawię następnym razem. Dobra dosyć tych zapowiedzi. Dzisiaj omówię instalację i wdrożenie narzędzia, którego nazwa doskonale przedstawia jego przeznaczenie. Mowa tu o Galera Load Balancer.
yum install git autoconf automake libtool gcc-c++
Na początek instalujemy niezbędne pakiety.
cd /opt
Wchodzimy do wybranego folderu
git clone https://github.com/codership/glb
Clonujemy źródła opisywanego narzędzia.
cd glb
./bootstrap.sh
Odpalamy „konfigurator” instalacyjny.
Running autoreconf... Ok
Udało się 🙂./configure
make
make install
Wydajemy po kolei powyższe polecenia. Efekt ostatniego poniżej:
Making install in src
make[1]: Wejście do katalogu `/opt/glb/src'
make[2]: Wejście do katalogu `/opt/glb/src'
/usr/bin/mkdir -p '/usr/local/lib'
/bin/sh ../libtool --mode=install /usr/bin/install -c libglb.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libglb.so.1.0.0 /usr/local/lib/libglb.so.1.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libglb.so.1.0.0 libglb.so.1 || { rm -f libglb.so.1 && ln -s libglb.so.1.0.0 libglb.so.1; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libglb.so.1.0.0 libglb.so || { rm -f libglb.so && ln -s libglb.so.1.0.0 libglb.so; }; })
libtool: install: /usr/bin/install -c .libs/libglb.lai /usr/local/lib/libglb.la
libtool: install: /usr/bin/install -c .libs/libglb.a /usr/local/lib/libglb.a
libtool: install: chmod 644 /usr/local/lib/libglb.a
libtool: install: ranlib /usr/local/lib/libglb.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/libIf you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
/usr/bin/mkdir -p '/usr/local/sbin’
/bin/sh ../libtool –mode=install /usr/bin/install -c glbd '/usr/local/sbin’
libtool: install: /usr/bin/install -c glbd /usr/local/sbin/glbd
make[2]: Nie ma nic do zrobienia w `install-data-am’.
make[2]: Opuszczenie katalogu `/opt/glb/src’
make[1]: Opuszczenie katalogu `/opt/glb/src’
Making install in doc
make[1]: Wejście do katalogu `/opt/glb/doc’
make[2]: Wejście do katalogu `/opt/glb/doc’
make[2]: Nie ma nic do zrobienia w `install-exec-am’.
make[2]: Nie ma nic do zrobienia w `install-data-am’.
make[2]: Opuszczenie katalogu `/opt/glb/doc’
make[1]: Opuszczenie katalogu `/opt/glb/doc’
make[1]: Wejście do katalogu `/opt/glb’
make[2]: Wejście do katalogu `/opt/glb’
make[2]: Nie ma nic do zrobienia w `install-exec-am’.
make[2]: Nie ma nic do zrobienia w `install-data-am’.
make[2]: Opuszczenie katalogu `/opt/glb’
make[1]: Opuszczenie katalogu `/opt/glb’cp files/glbd.cfg /etc/sysconfig/glbd
Kopiujemy plik konfiguracyjny do odpowiedniej lokalizacji.
vim /etc/sysconfig/glbd
Czas na edycję kluczowych parametrów:
LISTEN_ADDR=”127.0.0.1:3307″ # ip/port na którym ma nasłuchiwać loadbalancer
THREADS=”2″ # ilość wątków
DEFAULT_TARGETS=”10.1.1.9:3306:4 10.1.1.10:3306:4 10.1.1.4:3306:3″ # źródłowe serwery bazodanowe (IP:port:priorytet->wyższa cyfra, wyższy priorytet)cp files/glbd.sh /etc/init.d/glbd
Kopiujemy skrypt startowy do odpowiedniego dla niego miejsca.
service glbd start
Odpalamy naszego load balancera 🙂 Efekty poniżej.
[Sat Sep 24 14:24:54 CEST 2016] glbd: starting...
glb v1.0.1 (epoll)
Incoming address: 127.0.0.1:3307, control FIFO: /var/run/glbd.fifo
Control address: none
Number of threads: 2, max conn: 493, nodelay: ON, keepalive: ON, defer accept: OFF, linger: OFF, daemon: YES, lat.count: 0, policy: 'least connected', top: NO, verbose: NO
Destinations: 3
0: 10.1.1.9:3306 , w: 4.000
1: 10.1.1.10:3306 , w: 4.000
2: 10.1.1.4:3306 , w: 3.000
INFO: glb_daemon.c:44: Changing effective user to 'daemon'
[Sat Sep 24 14:24:54 CEST 2016] glbd: started, pid=27921/sbin/chkconfig glbd on
Sprawiamy, że nasze narzędzie będzie automatycznie uruchamiane z systemem.
Od teraz możemy ustawiać jako host bazodanowy 127.0.0.1 z portem 3307. Powodzenia 🙂