Cài đặt Haproxy:

Một phần của tài liệu Thiết kế bộ phân tải cho các dịch vụ mạng lớn đảm bảo khả năng nhanh chóng mở rộng quy mô hệ thống (Trang 79 - 82)

3. Cài đặt và cấu hình Haproxy trên server Centos:

3.2. Cài đặt Haproxy:

Đối với những website nhỏ, có thể cài đặt haproxy từ mạng (download và chạy trực tiếp), bản chạy trực tiếp có dung lượng nhỏ, hoạt động ổn định đối với nhiều website và có nhiều options để cho người quản trị website lựa chọn:

# mkdir /usr/local/haproxy “Tạo thư mục chứa Haproxy # cd /usr/local/haproxy

# wget HAProxy download link “Download Haproxy # gunzip downloaded file “Giải nén

# mv unzip file haproxy “Tạo file chạy haproxy

# chmod 700 haproxy “Cho phép đọc

Hoặc biên dịch từ bộ mã nguồn (đối với các nhà phát triển): # gcc –c *.c

# gcc –o haproxy *.o

# vi haproxy.cfg defaults balance leastconn stats enable session timeout 50000 frontend www 192.168.1.72:80 mode http default_backend all_servers backend all_servers mode http

server server1 192.168.1.72:81 weight 1 maxconn 5000 server server2 192.168.1.72:82 weight 2 maxconn 5000 server server3 192.168.1.72:83 weight 2 maxconn 10000

Chạy HaProxy

# ./haproxy -f ./haproxy.cfg –c

# ./haproxy -f ./haproxy.cfg -p /var/run/haproxy.pid -D # /sbin/service httpd start “Khởi động service httpd

Mở trình duyệt của một máy kết nối với máy này trong mạng LAN, gõ vào địa chỉ 192.168.1.72, lúc này bộ cân bằng tải đang listen trên cổng 80 của máy

192.168.1.72, nó sẽ nhận biết yêu cầu, chuyển chúng đến một trong 3 server trên các cổng 81, 82, 83. Chúng ta sẽ nhận được kết quả

Welcome to server x (với x = 1, 2, 3)

Nếu thuật toán sử dụng là round robin đơn giản, không sử dụng cookie, khi refresh liên tục bằng cách nhấn F5, giá trị “x” sẽ quay vòng trong khoảng 1-3. Điều này cho thấy thuật toán của chúng ta hoạt động tốt. Nếu sử dụng thuật toán least connections thì kết quả sẽ khác. Trên thực tế thuật toán least connections chỉ thể hiện rõ giá trị của nó khi có rất nhiều kết nối đang hướng tới server, đồng nghĩa với việc sẽ có rất nhiều session đang hoạt động. Thuật toán sẽ hướng yêu cầu đến server đang có ít active session nhất

Có thể kiểm tra các thông số về server, trạng thái server hiện tại, số lượng kết nối hiện tại, số lượt truy cập bằng địa chỉ http://192.168.1.72/haproxy?stats. Tính năng này hoạt động khi chúng ta lựa chọn trong file cấu hình tùy chọn “stats enable

”. Kết quả thu được trong ví dụ trên như sau:

H.3.3-3 Kiểm tra thông số server trong HAProxy

Một số thông số đáng chú ý như sau:

 pid 3093: process id đang chạy Haproxy trên máy chủ linux

 www là frontend, backend là 3 webserver server1, server2, server3  Các thông số kiểm tra server được mô tả bằng màu như trên hình vẽ, bao

gồm các trạng thái giống nhau ở cả 2 phần backup server và active server UP, DOWN, UP and going down, DOWN and going UP

 Ở dưới là các thông số về session hiện tại, về các connections đang trong hàng đợi, thông lượng Bytes ra vào, số các yêu cầu bị từ chối, lỗi và cảnh báo.

Do bảng trạng thái của Haproxy chưa phản ánh hết được tình trạng hiện tại, trước đây của các server trong hệ thống nên em xin đề xuất thêm cải tiến cài đặt thêm công cụ để monitor các server trong hệ thống. Cộng cụ được cộng đồng mã

nguồn mở đánh giá cao là Ganglia (http://ganglia.info/) Với việc cài đặt thêm này sẽ giúp cho người quản trị dễ dàng theo dõi và xem lại lịch sử các thong số của server như: CPU, RAM, DISK, Network… Cách cài đặt và cấu hình sẽ được trình bày cụ thể ở phần dưới đây:

Một phần của tài liệu Thiết kế bộ phân tải cho các dịch vụ mạng lớn đảm bảo khả năng nhanh chóng mở rộng quy mô hệ thống (Trang 79 - 82)