Với các công ty, doanh nghiệp sở hữu trong tay nhiều máy chủ ứng dụng web phục vụ cho việc truy cập của người dùng thì giải pháp khắc phục khi có sự cố xảy ra với máy chủ là việc mà các chuyên gia cần phải tính toán. Một trong số các giải pháp được nhắc tới đó là cân bằng tải. Trong bài viết này BlogThaoPham sẽ cùng các bạn tìm hiểu kỹ hơn về kỹ thuật này.
Nội dung của bài viết gồm 2 phần
- Phần I: Khái quát về cân bằng tải
- Phần II: Thuật toán cân bằng tải
- Phần III: Network Balancing trên Windows server
1. Khái niệm
Cân bằng tải là một kỹ thuật để phân phối khối lượng công việc phải xử lý một các đồng đều lên hai hoặc nhiều máy tính về các vấn đề liên kết mạng, CPU, không gian đĩa,... để sử dụng tài nguyên một các tối ưu, giảm thiểu thời gian hoạt động, tránh tình trạng quá tải.
2. Chức năng của cân bằng tải
- Chặn lưu lượng mạng (chẳng hạn lưu lượng web) đến một trang web
- Tách lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ nào nhận yêu cầu đó.
- Duy trì một cơ chế ở những máy chủ đang sẵn sàng
- Cung cấp khả năng dự phòng bằng cách sử dụng nhiều hơn một kịch bản
- Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn cookie và biên dịch XML
3. Ưu điểm của cân bằng tải
- Tính linh hoạt
- Tính sẵn sàng cao
- Khả năng mở rộng thêm các node.
4. Các phương pháp cân bằng tải
* Cân bằng tải phần cứng
Sử dụng các module (load balancer) cắm trên các thiết bị chuyên dụng như router. Bộ cân bằng tải sẽ thể hiện một địa chỉ IP ảo đối với bên ngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy tỏng cluster. Chính vì vậy bộ cân bằng tải này cần đưa ra một địa chỉ IP của toàn bộ các máy tính trong cluster đối với thế giới bên ngoài.
* Cân bằng tải bằng phần mềm
Sử dụng phần mềm cài song song trên các máy chủ kết hợp nhiều server tạo thành một server ảo.
* Cân bằng tải bằng proxy server
Một Web server proxy nằm trước một cluster của các máy chủ Web lấy tất cả các request và mã hóa chúng. Sau đó chuyển hướng chúng đến một nút thích hợp, dựa trên các thông tin header trong phần header, cookie và URL. Với cách này, nó tận dụng khả năng chia tải sẵn có trên các phần mềm proxy như ISA Proxy của Microsoft hay Squid (open source)
5. So sánh các phương pháp
II) Thuật toán cân bằng tải
- Ngẫu nhiên: máy chịu tải sẽ được phân một cách ngẫu nhiên vào trong các web-server dựa trên một hàm chọn số ngẫu nhiên sau đó chuyển yêu cầu hiện tại từ phía người dùng vào server này.
- Round Robin: phương thức này lựa chọn server theo tuần tự. Bộ cân bằng tải sẽ chọn server đầu tiên trong danh sách của mình cho yêu cầu đầu tiên, sau đó di chuyển xuống server tiếp theo trong danh sách theo thứ tự và bắt đầu lại từ đầu khi hết danh sách.
- Weighted Round Robin: Nguyên lý cũng dựa trên thuật toán Round Robin, yêu cầu từ phía người dùng sẽ được bộ cân bằng tải chuyển đến các server theo thứ tự xoay vòng dựa trên khả năng xử lý của các server. Trong 1 chu kỳ, 1 server có khả năng xử lý gấp đôi server khác sẽ nhận gấp đôi số yêu cầu từ phía bộ cân bằng tải.
- Fastest: Thuật toán dựa trên thời gian đáp ứng mỗi khi có yêu cầu của mỗi server và bộ cân bằng tải sẽ chọn ra server có thời gian đáp ứng nhanh nhất.
- Least Connections: hệ thống cân bằng tải sẽ chọn server có ít kết nối nhất và cách này được khuyên dùng khi tốc độ truy cập bị chậm.
- Source: với thuật toán Source, bộ cân bằng tải sẽ chọn server dựa trên một chuỗi các IP gốc của yêu cầu, chẳng hạn như IP của người truy cập. Phương thức này đảm bảo một người dùng cụ thể sẽ luôn kết nối với cùng một server.
Các bạn cùng đọc tiếp phần 2 - Cân bằng tải Network Load Balancing
0 Comments