Press ESC to close

BFM (BIDIRECTIONAL FAILOVER MANAGER) FARKLI SUBNET TE VE UZAK LOKASYONDAKI BIR REPLICAYA OTOMATIK SWITCHOVER VE FAILOVER

Bir önceki BFM yazımda BFM in nasıl çalıştığını detaylı anlatmıştım, okumak ve incelemek isteyenler için; https://www.farukcevik.com.tr/postgresql-bfm-bidirectional-failover-manager/

Bu yazımızda birden fazla sunucumuz uzak lokasyonlarda ve farklı network lerde olduğunda nasıl bir çözüm yolu izleniyor bunu açılmaya çalışacağız; Bir önceki yazıda PostgresSQL Kurulumlarını, BFM ve minipg kurulumlarını açıklamıştık burada farklı olarak bir witness server araya girecek ve VIP IP ler için ise, her subnet için ayrı bir VIP IP tanımlanacaktır.

OS VersionIPVIP IP
RedHat8PostgreSQL13 (Master Or Slave)192.168.5.132/24192.168.5.101/24
RedHat8PostgreSQL13 (Master Or Slave)192.168.81.132/24192.168.81.101/24
RetHat8 Witness Server (Ngnix TCP Blance)it doesn’t matter—-

Yapı aşağıdaki şekilde özetlenmiştir.

Burada Doğrudan Witness Server Konfigürasyonu ile Failover ve Switcover olaylarına odaklanacağız.

Withness Server İçin; RedHat 8 için Ngnix Configürasyonu;

# sudo dnf install -y nginx

# sudo systemctl enable --now nginx.service

# sudo systemctl status nginx

TCP Balans işlemi için;

# vi /etc/nginx/nginx.conf

stream {
 upstream postgresbackend{
                server 192.168.5.101:5432;
                server 192.168.81.101:5432;
   }

 server {
        listen       5433;
        proxy_pass      postgresbackend;

        }

}

Nginx bakalım bizim 5432 portunu dinliyor mu?

[root@bfmwather ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19672/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      900/sshd
tcp        0      0 0.0.0.0:5433            0.0.0.0:*               LISTEN      19672/nginx: master
tcp6       0      0 :::9994                 :::*                    LISTEN      2456/java
tcp6       0      0 :::80                   :::*                    LISTEN      19672/nginx: master
tcp6       0      0 :::22                   :::*                    LISTEN      900/sshd

Burada şu sorulabilir peki hocam güzelde, fakat burada witness server giderse HA ne olacak, tüm sistem gider dediğinizi duyar gibiyim. Bu şekilde düşünenler için şöyle bir konfigurasyon yapılabilir. Uygulama sunucuları üzerine Nginx konfigürasyonu belli bir port üzerinden yapılır ve böylelikle uygulama sunucuları ayakta olduğu sürece her zaman master sunucuya bağlanması garanti edilmiş olur, zaten uygulama sunucularınız gitmiş ise veritabanının nerede olduğununda sanırım çok bir anlamı olmayacaktır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir