Reference - Hướng dẫn cấu hình High Availability (HA) TACACSGUI theo phương pháp chui
Chủ Nhật, 17 tháng 11, 2019
Hehe, ok quay lại với TACACSGUI, đầu tiên xin nói lời cám ơn đến tác giả TACACSGUI vì đã làm ra hệ thống này nói chung là khá ok. Nếu doanh nghiệp bạn có tiền hãy mua dùng nhá.
Khi bạn mua sẽ có nhiều support tốt từ tác giả và được dùng nhiều sự hỗ trợ tốt hơn, bảng giá thì nếu tính theo doanh nghiệp cũng ok.
OK, ở trên là giới thiệu cho những ai cần và có điều kiện tốt hơn, còn mình hôm nay sẽ làm theo như tiều đề : How to cài đặt HA(High Availability) TACACSGUI theo phương pháp chui hehe
Như đã nói ở trên Free chỉ được một server nên chỉ có thể bật HA mỗi con Master, còn con Slave sẽ không làm gì được trừ khi bạn có license.
Bắt đầu HA TACACSGUI chui như sau :
Chuẩn bị 2 con ubuntu server đã cài sẵn Tacgui như hướng dẫn trước.
1. TACACSGUI không cho bạn vào mysql bằng root nên sau khi update server lấy phiên bản mới nhất thì ta reset pass Mysql.
/etc/init.d/mysql stop
mkdir /var/run/mysqld/
chown mysql /var/run/mysqld/
mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set authentication_string=PASSWORD("conchimnon") where User='root';
flush privileges;
Thoát khỏi mysql và Khởi động lại
/etc/init.d/mysql stop
/etc/init.d/mysql start
mysql -u root -p
OK vậy giờ đã làm chủ được databases ở con thứ nhất, con thứ 2 cũng làm giống vậy và sau khi làm chủ database 2 con server sẽ sang bước tiếp theo.
2.Như hình bên trên Tacacsgui Master(1) và Tacacsgui Slave(2) ta bắt đầu cấu hình MySQL replication. Mục đích của nó là khi con master có DB nó sẽ replication sang Slave theo chiều 1.
Sau khi replication từ con 1 sang con 2 ta làm ngược lại từ con 2 sáng con 1 để master đồng bộ với slave. Tức là hai server trao đổi databases với nhau.
Tacacsgui Master(1) :
vi /etc/mysql/mysql.conf.d/mysqld.cnf
Sửa nội dung bên trong
bind-address = 192.168.1.253
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
Khởi độg lại mysql
service mysql restart
Tạo một user rep để làm nhiệm vụ replication databases.
mysql -u root -p
CREATE USER 're'@'%' IDENTIFIED BY '111111';
GRANT REPLICATION SLAVE ON *.* TO 're'@'%';
Lưu ý : Đôi lúc REPLICATION báo lỗi trùng lập UUID Database nên hay lỗi, kiểm tra 2 con server có bị trùng hay không. (Tuyệt đống không được trùng, nếu trùng thì sửa 1 2 chỗ cho khác)
vi /var/lib/mysql/auto.cnf
Tương tự như vậy trên con Slave cũng vậy, cứ i như trên và sửa lại server id = 2 và ip là ok
Tacacsgui Slave(2) :
vi /etc/mysql/mysql.conf.d/mysqld.cnf
Sửa nội dung bên trong
bind-address = 192.168.1.254
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
3.Sau khi hoàn thành các bước trên, thoát ra ngoài Mysql và dump toàn bộ con Master và restart trên con Slave, mục đích để 2 khối DB nó giống nhau, khi REPLICATION sẽ không bị lỗi.
Tacacsgui Master(1) :
Dump và copy từ con master sang con slave
mysqldump -u root -p --all-databases --master-data > masterdump.sql
scp masterdump.sql tacgui@10.10.30.254:/home/tacgui/
Tacacsgui Slave(2) : restore lại bảng dump vừa copy
Login vào Mysql
stop slave;
Logout mysql và restore bảng dump
mysql -u root -p < masterdump.sql
Vậy là 2 DB đã tương tự nhau, chú ý khi dump thì 2 data sẽ có chung user , bao gôm user rep đã tạo ở trên, vậy là bước sang bước tiếp theo.
4.REPLICATION databases mysql tacgui sẽ như sau, hoàn thành replication từ master sang slave và kiểm tra ok hoàn toàn , sau khi mọi thứ ok sẽ làm ngược lại.
Tacacsgui Master(1) :
Login vào con Master server 1 và thực hiện các bước sau
show master status\G;
Tacacsgui Slave(2) : Sau khi đã lấy thông số bên trên của con master 1 con 2 sẽ bắt đầu như sau
stop slave;
CHANGE MASTER TO MASTER_HOST = '192.168.1.253', MASTER_USER = 're', MASTER_PASSWORD = '111111', MASTER_LOG_FILE = 'mysql-bin.000090', MASTER_LOG_POS = 542;
OK như vậy là đã ngon lành rồi, vậy là thay đổi gì con master thì con slave sẽ đổi theo.
Như vậy là đã hoàn thành nữa chặn đường, tiếp theo nếu con slave 2 thay đôi thì sao, ta cứ làm ngược lại như trên thì con 2 sẽ đỗ sang con 1.
5.REPLICATION từ slave sang master.
Tacacsgui Slave(2) :
show master status\G;
Tacacsgui Master(1) :
stop slave;
CHANGE MASTER TO MASTER_HOST = '192.168.1.254', MASTER_USER = 're', MASTER_PASSWORD = '111111', MASTER_LOG_FILE = 'mysql-bin.000071', MASTER_LOG_POS = 2864;
show slave status\G;
OK, phần REPLICATION nói chung đã xong, nếu làm i chang như trên ít khi phát sinh lỗi, vì đã test khá kỹ, giờ là test trên giao diện web thôi.
Đây là cách REPLICATION trên databases mysql nên func này sẽ không thấy gì thay đổi, chúng ta cũng không nên đụng vào làm gì, cứ thoải mái sài các func còn lại. Còn có tiền thì cứ mua thôi (Không khuyên khích dùng cách này cho doanh nghiệp, tốt nhất nên mua xem như tôn trọng tác giả).