• Galera Load Balancer- nieodzowny element klastra bazodanowego

    dodany przez Przemysław Sikora

    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/lib

    If 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 🙂

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony