Linux Lab Pacemaker & Corosync trong HA Web Services CentOS 7

Discussion in 'Ứng dụng' started by nessiggk, Jun 17, 2019.

  1. nessiggk

    nessiggk Member

    Joined:
    Feb 25, 2018
    Messages:
    62
    Likes Received:
    5
    Trophy Points:
    8
    Gender:
    Male
    Location:
    HOCHIMINH CITY
    Home Page:

    Lab Pacemaker & Corosync trong HA Web Services CentOS 7




    1. Giới thiệu Pacemaker & Corosync

    2. Chuẩn bị lab

    3. Cài đặt
    3.1. Cài đặt Apache

    3.2. Cài đặt và cấu hình Pacemaker + Corosync

    3.3. Thêm Resource Virtual IP

    4. HA Active/Passive Web Services Apache



    1. Giới thiệu Pacemaker & Corosync

    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.

    2. Chuẩn bị lab


    Mô hình thử nghiệm lab.

    lab pacemaker & corosync in HA Service (1)


    Mô hình lab sử 2 máy ảo Linux CentOS 7 Minimal 64bit (sử dụng một card mạng Bridge, subnet 192.168.1.0/24).

    *node1

    OS: CentOS 7 Minimal 64bit

    Hostname: node1.svuit.vn

    Ens33: 192.168.1.101/24

    Gateway: 192.168.1.1

    *node2

    OS: CentOS 7 Minimal 64bit

    Hostname: node2.svuit.vn

    Ens33: 192.168.1.102/24

    Gateway: 192.168.1.1

    *Virtual IP address: Các phiên truy cập từ client đến địa chỉ IP này sẽ Pacemaker được điều hướng về một trong 2 node trên.

    IP address: 192.168.1.123

    Tiếp theo chúng ta sẽ khai báo các node trong file hosts vào từng máy, vi /etc/hosts.

    192.168.1.101 node1.svuit.vn node1

    192.168.1.102 node2.svuit.vn node2

    lab pacemaker & corosync in HA Service (2)

    lab pacemaker & corosync in HA Service (3)


    3. Cài đặt

    3.1. Cài đặt Apache (làm trên cả 2 node)

    Cài đặt

    Cấu hình: tạo một file vi /etc/httpd/conf.d/status.conf theo dõi trạng thái của Apache

    với nội dung dưới, sau đó lưu lại file:


    Lưu ý: Dịch vụ httpd trên Centos sau khi được cài đặt trên mỗi node cần đảm bảo đã stop và không khởi động cùng hệ thống, việc quản lí khởi tạo khởi chạy sẽ do Pacemaker đảm nhiệm, tránh trường hợp bị xung đột, nhập câu lệnh:


    Kiểm tra trạng thái firewall.

    lab pacemaker & corosync in HA Service (4)

    Hiện tại firewall đang chạy, mình cần cấu hình mở Port http(80) và https(443) cho phép truy cập từ bên ngoài đến 2 Port trên.


    3.2. Cài đặt và cấu hình Pacemaker & Corosync

    Cài đặt Pacemaker & Corosync: Thực hiện trên cả Hai node.

    Mở firewall:

    Cài đặt các gói cài đặt cần thiết cho Pacemaker.

    Khởi động pcs và cho chạy cùng hệ thống.

    Sau khi quá trình cài đặt thành công, hệ thống sẽ có thêm một người dùng 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 1 password duy nhất cho user này, để cả 2 node có thể xác thực lẫn nhau.

    Kiểm tra trạng thái pacemaker

    lab pacemaker & corosync in HA Service (5)


    Cấu hình Pacemaker: thực hiện trên Một node.

    Xác thực giữa 2 node với nhau, sử dụng user hacluster và password đã thống nhất tạo trước đó.

    lab pacemaker & corosync in HA Service (6)

    Tiếp theo, chúng ta sẽ tạo và đồng bộ file cấu hình Corosync. Mình đặt tên cho cluster là WebCluster, các bạn có thể chọn tên tùy ý. node1 và node2 là hostname máy chủ trong cụm Cluster đã khai báo trước đó, nếu không có thể sử dụng IP Address thay thế.

    lab pacemaker & corosync in HA Service (7)

    Khởi động Cluster

    lab pacemaker & corosync in HA Service (8)

    Cho phép Cluster khởi động cùng OS

    lab pacemaker & corosync in HA Service (9)

    Kiểm tra trạng thái hoạt động của Pacemaker trên mỗi node.

    lab pacemaker & corosync in HA Service (10)


    3.3. Thêm Resource Virtual IP & Apache

    Thực hiện trên Một node.

    Lưu ý:

    • Disable cơ chế STONITH
    • Thiết lập policy cho cơ chế quorum (bỏ qua bước này nếu như cluster có nhiều hơn 2 node)
    • Disable auto failback
    • Kiểm tra lại các thiết lập trên
    lab pacemaker & corosync in HA Service (11)

    Cấu hình Virtual_IP (VIP) cho Cluster. Như đầu bài mình đã ghi VIP sẽ là 192.168.1.123.

    Tên resource mình đặt là VIP_Cluster.

    Kiểm tra trạng thái của các Resource hiện tại.


    4. HA Active/Passive Web Services Apache

    Vẫn thực hiện trên Một node.

    Thêm resource Apache, mình đặt tên là WebServer.

    Chú ý:

    • Resource chính là các ứng dụng được cấu hình cluster.

    • Tùy vào tài ngyên mà bạn muốn Pacemaker quản lý thì sẽ được add thêm vào trong Cluster.

    • Khi add resource vào cluster thì việc start, stop, restart resource này sẽ do Pacemaker quản lý.

    • Corosync có nhiệm vụ làm messenger để báo cho các node biết tính hình các resource đang như thế nào.
    Kiểm tra lại trạng thái của các resource hiện tại.

    lab pacemaker & corosync in HA Service (12)

    Như hình trên chúng ta thấy VIP_Cluster ở trên một node và WebServer ở trên một node. Chúng ta sẽ cấu hình ràng buộc cho nó chỉ sử dụng tài nguyên trên cùng một máy chủ trong cụm Cluster.

    Chờ một khoảng 30s, chúng ta kiểm tra lại trạng thái resource.

    lab pacemaker & corosync in HA Service (13)

    Thiết lập chế độ khởi động của các resource (khởi động VIP_Cluster rồi mới đến WebServer)

    Kiểm tra lại các điều kiện ràng buộc đã cấu hình.

    lab pacemaker & corosync in HA Service (14)

    Thử nghiệm bài lab:

    Mình sẽ thêm source code HTML trên mỗi node vi /var/www/html/index.html

    Node1:
    Node2:

    Ta sẽ shutdown node1 (node đang active) và dùng lệnh pcs status trên node2. Các resource sẽ tự động chuyển sang hoạt động trên node2 (node passive được chuyển thành node active).

    Hiện tại: node1 đang active, node2 đang passive

    lab pacemaker & corosync in HA Service (15)

    lab pacemaker & corosync in HA Service (16)

    Sau đó: shutdown node1, node2 từ passive -> active

    lab pacemaker & corosync in HA Service (17)

    lab pacemaker & corosync in HA Service (18)


    Vậy là mình đã hoàn thành Lab HA Active/Passive Apache với Pacemaker + Corosync. Tuy nhiên dịch vụ Apache được cài đặt riêng biệt trên 2 node khác nhau, khác cả về source code web, nên để source code web giống nhau tối ưu cho hệ thống website trên CentOS chúng ta cần thêm cơ chế động bộ dữ liệu nhằm đảm bảo source code web là giống nhau.
     

Share This Page