Phần 15 Cài đặt Keepalived MongoDB

Phần 15 Cài đặt Keepalived MongoDB

1./ Mô hình có 3 node

Thực tế thì node Arbiter không lưu dữ liệu, nhưng ở đây mô hình sẽ có 2 node secondary 1 node Primary

cfg = rs.conf()

 

cfg.members[0].priority = 3

cfg.members[1].priority = 2

cfg.members[2].priority = 1

 

rs.reconfig(cfg)

Triển khai Keepalived trên node members 0 và node members 1 bởi 2 node trên có priority cao nhất

2./ Cài đặt Keepalived

Trên cả 2 node 0 và 1

apt install keepalived

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf

 

Tạo mới 1 file config keepalived để cấu hình​​ trên cả 2 node như nhau:

nano /etc/keepalived/keepalived.conf

#

! Configuration File for keepalived

 

global_defs {

 ​​ ​​​​ router_id MONGODB_DB-HA

}

 

# Define the script used to check if mongod is running

vrrp_script chk_mongod {

 ​​ ​​ ​​​​ script "killall -0 mongod"

 ​​ ​​ ​​​​ interval 2 # every two seconds

 ​​ ​​ ​​​​ weight 2

}

 

# Define the script to see if the local node is the primary

vrrp_script chk_mongo_primary {

 ​​ ​​ ​​​​ script "/etc/keepalived/ck_mongo_master"

 ​​ ​​ ​​​​ interval 2 # every two seconds

 ​​ ​​ ​​​​ weight 2

}

 

vrrp_instance VI_2 {

 ​​ ​​ ​​​​ state BACKUP

 ​​ ​​ ​​​​ interface eth0

 ​​ ​​ ​​​​ virtual_router_id 50

 ​​ ​​ ​​​​ priority 103

 ​​ ​​ ​​​​ advert_int 1

 ​​ ​​ ​​​​ authentication {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ auth_type PASS

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ auth_pass test1232222

 ​​ ​​ ​​​​ }

 ​​ ​​ ​​​​ virtual_ipaddress {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 10.0.2.30

 ​​ ​​ ​​​​ }

 ​​ ​​ ​​​​ track_script {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ chk_mongod

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ chk_mongo_primary

 ​​ ​​ ​​​​ }

}

#Neu khong chmod se bi loi Configuration file '/etc/keepalived/keepalived.conf' is not a regular non-executable file

chmod 644 ​​ /etc/keepalived/keepalived.conf ​​ 

#

nano /etc/keepalived/ck_mongo_master

#

#!/bin/bash

ISMASTER=$(/usr/bin/mongo -host 127.0.0.1 --quiet --eval ‘db.isMaster().ismaster’)

if [ $ISMASTER == ‘true’ ]; then

exit 0

else

exit 1

fi

 

#############

chmod +x /etc/keepalived/ck_mongo_master

 

systemctl restart keepalived

systemctl enable keepalived

3./ Test

trên node master​​ là server 0

systemctl stop mongodb

sau khoảng 2s ip VIP 10.0.2.30 sẽ tự chuyển sang server 1

trên node master bật mongodb

systemctl start mongodb

sau 1 khoảng thời gian sync dữ liệu từ các node 2 và node 3 sang node 1 thì vIP sẽ tự chuyển lại sang node 1

4./ Bonut

Nếu có nhiều hơn 2 node thì có thể cài keep alived ở trên tất cả các node

 

5./ Tham khảo

https://medium.com/@azsecured/mongodb-primary-failover-with-keepalived-with-mongodb-cluster-3462469a9730

 

BÀI VIẾT CÙNG CHUYÊN MỤC

Điểm Danh Các Nhà Cung Cấp VPS Miễn Phí Hàng Đầu Thế Giới: Đâu Là Sự Thật Và Lựa Chọn Tối Ưu Cho Doanh Nghiệp?
Điểm Danh Các Nhà Cung Cấp VPS Miễn Phí Hàng Đầu Thế ...

Điểm Danh Các Nhà Cung Cấp VPS Miễn Phí Hàng Đầu Thế Giới: Đâu Là Sự Thật Và ...

Oracle Cloud Miễn Phí VPS Vĩnh Viễn Có Thật Không? Giải Mã Và Đâu Là Lựa Chọn Tối Ưu Cho Doanh Nghiệp?
Oracle Cloud Miễn Phí VPS Vĩnh Viễn Có Thật Không? ...

Oracle Cloud Miễn Phí VPS Vĩnh Viễn Có Thật Không? Giải Mã Và Đâu Là Lựa Chọn ...

Chiến Lược Của Huawei Để Trở Thành "Nvidia Của Trung Quốc": Lối Đi Nào Cho Điện Toán AI?
Chiến Lược Của Huawei Để Trở Thành "Nvidia Của Trung ...

Chiến Lược Của Huawei Để Trở Thành "Nvidia Của Trung Quốc": Lối Đi Nào Cho Điện ...

Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04
Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04

Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04

Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô hình HTTPS an toàn cho website
Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô ...

Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô hình HTTPS an toàn cho ...

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04
Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn ...

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04