Powered by Blogger.

Hướng dẫn cấu hình Pacemake + Corosync để HA cho APACHE

1. Chuẩn bị

Giới thiệu:

Pacemaker là một công cụ quản lý cụm tài nguyên. Nó dùng để giao tiếp và gắn kết các tài nguyên (máy chủ) với nhau. Trong bài, Corosync sẽ được sử dụng để thành cụm máy.
Ở mô hình Active -Passive, tất cả các dịch vụ sẽ chạy trên máy chính. Khi máy chính gặp sự cố, các máy phụ sẽ hoạt động thay các máy chính để đảm bảo dịch vụ không bị gián đoạn.
Trong bài, sẽ hướng dẫn cấu hình Mô hình A-P với cụm máy chủ APACHE. Cụm máy chủ này sẽ nhận một VIP, khi máy chủ chính bị lỗi. VIP được kích hoạt và lắng nghe trên các máy chủ trong cụm. Người dùng sẽ truy cập vào Web thông qua VIP. VIP được quản lý bởi Pacemaker. APACHE và VIP luôn luôn được cấu hình trên cùng 1 host, Khi host này bị lỗi, chúng sẽ di trú sang host còn lại để đảm bảo dịch vụ luôn sẵn sàng.

Chuẩn bị:

  • Node1
    OS: CentOS 7
    Hostname: node1.hoang.lab
    eth0: 192.168.100.197
    Gateway: 192.168.100.1
    NETWORK: 192.168.100.0/24
    
  • Node2
    OS: CentOS 7
    Hostname: node1.hoang.lab
    eth0: 192.168.100.198
    Gateway: 192.168.100.1
    NETWORK: 192.168.100.0/24
    
  • Virtual IP
    IP: 192.168.100.123
    Gateway: 192.168.100.1
    NETWORK: 192.168.100.0/24
    

Mô hình cài đặt

2. Cài đặt

2.1 Khai báo trong hosts của từng máy

Trên đây là file hosts của node1. Trên node2, chúng ta mở file /etc/hosts và sửa tương tự.

2.2 Cài đặt APACHE

Chúng ta cài đặt APACHE và cấu hình trên cả 2 node. Cụ thể như sau:
  • Cài đặt:
yum install httpd -y
  • Cấu hình: Tạo một file theo dõi trạng thái của APACHE
vi /etc/httpd/conf.d/status.conf
Với nội dung như sau:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Location>
Lưu lại file.
Lưu ý: Không khởi động APACHE lên, bằng systemctl ngay.

2.3 Cài đặt Pacemaker

Tiếp theo, chúng ta cài đặt Pacemaker lên cả 2 node với các bước như sau:
yum install pacemaker pcs -y
Khởi động pcs deamon và cho chạy cùng hệ thống:
systemctl start pcsd.service
systemctl enable pcsd.service
Sau khi quá trình cài đặt thành công, hệ thống sẽ có thêm một user mới có tên là hacluster. User này đã bị vô hiệu hóa chức năng đăng nhập từ xa, nhiệm vụ của user này để đồng bộ cấu hình và khởi động các dịch vụ giữa các node với nhau. Trên 2 node, chúng ta thống nhất password cho user này.
passwd hacluster

2.4 Cấu hình Pacemaker

  • Cấu hình FirewallD
Xem trạng thái của FirewallD
firewall-cmd --state
Nếu không hoạt động, hãy khởi động và thêm rule cho nó:
systemctl start firewalld.service
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --reload
  • Xác thực giữa 2 node với nhau (Làm trên bất kỳ node nào), bằng user hacluster và password đã tạo ở bước trên.
pcs cluster auth node1 node2
Bước tiếp theo, chúng ta sẽ tạo và đồng bộ file cấu hình Corosync. Chúng ta đặt tên cho cluster là webcluter, các bạn có thể chọn bất kỳ tên gì bạn thích.
pcs cluster setup --name webcluster node1 node2
Sau khi chạy lệnh trên thành công, file cấu hình của Corosync được tạo ra ở cả 2 node tại /etc/corosync/corosync.conf

2.5 Khởi động Cluster

Khởi động cluster bằng lệnh trên node1
pcs cluster start --all
Hãy chắc chắn rằng, Pacemaker và Corosync được khởi động cùng với hệ thống.
systemctl enable corosync.service
systemctl enable pacemaker.service
Kiểm tra trạng thái của cluster trên mỗi host
pcs status

2.6 Vô hiệu hóa STONITH và tắt QUORUM

Để hiểu hơn về 2 khái niệm, vui lòng đọc bài này để có thêm thông tin chi tiết, xin cảm ơn!
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore

2.7 Cấu hình Virtual IP

pcs resource create Cluster_VIP ocf:heartbeat:IPaddr2 ip=192.168.100.123 cidr_netmask=24 op monitor interval=20s

2.8 Thêm Resource apache

pcs resource create WebServer ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=20s

2.9 Cấu hình sử dụng tài nguyên trên 1 máy

Ở hình trên, chúng ta thấy VIP ở trên một máy, APACHE ở trên một máy. Chúng ta sẽ cấu hình cho nó sử dụng tài nguyên trên 1 máy chủ.
pcs constraint colocation add WebServer Cluster_VIP INFINITY
Chờ khoảng 30s và kiểm tra lại:
pcs status

3. Tham khảo

Source : https://github.com/hoangdh/ghichep-HA/blob/master/Pacemaker_Corosync/1.Huong-dan-cai-dat-Pacemaker-Corosync-cho-Webserver.md#h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-c%E1%BA%A5u-h%C3%ACnh-pacemake--corosync-%C4%91%E1%BB%83-ha-cho-apache
    Blogger Comment
    Facebook Comment