I. Khái niệm cân bằng tải
Cân bằng tải là một phương pháp phân phối khối lượng tải trên nhiều máy tính hoặc một cụm máy tính để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ.
Các lợi ích khi sử dụng phương pháp cân bằng tải:
- Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính linh hoạt và mở rộng cho hệ thống.
- Tăng độ tin cậy và khả năng dự phòng cho hệ thống:Sử dụng cân bằng tải giúp tăng tính HA (High Availability) cho hệ thống, đồng thời đảm bảo cho người dùng không bị gián đoạn dịch vụ khi xảy ra lỗi sự cố lỗi tại một điểm cung cấp dịch vụ.
- Tăng tính bảo mật cho hệ thống:Thông thường khi người dùng gửi yêu cầu dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá trình trả lời cho khách hàngcũng thông qua thành phần cân bằng tải, vì vậy mà người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các cổng khác.
2. Các thuật toán cân bằng tải
Có rất nhiều thuật toán cân bằng tải được sử dụng, sau đây là các thuật toán cân bằng tải phổ biến nhất:
2.1. Thuật toán Round Robin:
Đây gọi là thuật toán luân chuyển vòng, các máy chủ sẽ được xem ngang hàng và sắp xếp theo một vòng quay. Các truy vấn dịch vụ sẽ lần lượt được gửi tới các máy chủ theo thứ tự sắp xếp.
Ví dụ:
Cấu hình một cụm Cluster bao gồm 03 máy chủ: A, B, C.
Yêu cầu dịch vụ thứ nhất sẽ được gửi đến máy chủ A.
Yêu cầu dịch vụ thứ hai sẽ được gửi đến máy chủ B.
Yêu cầu dịch vụ thứ ba sẽ được gửi đến máy chủ C.
Yêu cầu dịch vụ thứ tư sẽ lại được gửi cho máy chủ A….
2.2. Thuật toán Weighted Round Robin:
Bản chất giống như thuật toán Round Robin, tuy nhiên chúng ta có thể cấu hình cho một máy chủ nào đó thường xuyên được sử dụng hơn.
2.3. Thuật toán Least Connection:
Đây là thuật toán dựa trên tính toán số lượng kết nối để thực hiện cân bằng tải cho máy chủ, nó sẽ tự động lựa chọn máy chủ với số lượng kết nối đang hoạt động là nhỏ nhất.
2.4. Thuật toán Weights Least Connection:
Bản chất giống thuật toán Least Connection, nhưng chúng ta có thể cấu hình ưu tiên cho một máy chủ trong cụm máy chủ hoạt động.
2.5. Thuật toán Least Response Time:
Đây là thuật toán sử dụng phương pháp thời gian đáp ứng ít nhất, lựa chọn dịch vụ trên máy chủ với thời gian đáp ứng là thấp nhất.
Ngoài ra còn có rất nhiều thuật toán cân bằng tải khác tùy theo phần mềm hoặc phần cứng cân bằng tải được sử dụng.
3. Mô hình triển khai cho hệ thống DNS quốc gia.
Hiện tại hệ thống máy chủ tên miền quốc gia gồm 5 cụm máy chủ đặt trong nước trong đó 2 cụm tại thành phố Hồ Chí Minh; 2 cụm tại Hà Nội và 1 cụm đặt tại Đà Nẵng.
Công nghệ cân bằng tải được sử dụng trên hệ thống DNS quốc gia bao gồm:
- Round Robin DNS.
- Sử dụng thiết bị cân bằng tải chuyên dụng.
- Công nghệ DNS Anycast.
3.1. Round Robin DNS:
Phương pháp Round Robin DNS là một phương pháp cân bằng tải phổ biến, đơn giản và dễ sử dụng; đặc biệt phương pháp này rất thích hợp khi cân bằng tải theo khu vực địa lý (Global Server Load Balancing).
Trung tâm Internet Việt Nam đang sử dụng phương pháp cân bằng tải Round Robin DNS trong việc cân bằng tải truy vấn DNS .VN cho các cụm máy chủ thuộc các khu vực địa lý khác nhau: Hà Nội, Đà Nẵng và Hồ Chí Minh.
Các truy vấn tên miền dưới .VN được phân bố đều trên các cụm máy chủ.
Ví dụ:
com.vn nameserver = a.dns-servers.vn
com.vn nameserver = b.dns-servers.vn
com.vn nameserver = c.dns-servers.vn
com.vn nameserver = d.dns-servers.vn
com.vn nameserver = e.dns-servers.vn
com.vn nameserver = f.dns-servers.vn
com.vn nameserver = vn.cctld.authdns.ripe.net
Hình 1: Cân bằng tải sử dụng Round Robin DNS
Phương pháp cân bằng tải này dựa trên thuật toán Round Robin đã được trình bày ở trên.
Khi yêu cầu truy vấn đầu tiên đến được máy chủ DNS, nó sẽ trả về địa chỉ IP của máy chủ DNS-A.
Khi có yêu cầu truy vấn thứ hai đến máy chủ DNS, nó sẽ trả về địa chỉ IP của máy chủ DNS-B.
Khi có yêu cầu truy vấn thứ ba đến máy chủ DNS, nó sẽ trả về địa chỉ IP của máy chủ DNS-C.
Quá trình này cứ tiếp tục như vậy với các yêu cầu tiếp theo, và sau khi đi hết một vòng Round Robin, truy vấn sẽ được lặp lại.
3.2. Sử dụng thiết bị cân bằng tải chuyên dụng:
Phương pháp cân bằng tải dùng thiết bị phần cứng sẽ tạo một địa chỉ IP ảo với mạng bên ngoài, địa chỉ này sẽ được bản đồ hóa (mapping) với các địa chỉ máy chủ bên trong một Cluster. Bên ngoài sẽ không thể truy cập trực tiếp đến các máy chủ bên trong, mà chỉ truy cập đến địa chỉ ảo được cấu hình trên thiết bị cân bằng tải.
Hiện tại, Trung tâm Internet Việt Nam đang sử dụng các thiết bị cân bằng tải chuyên dụng như Cisco CSM, Cisco CSS trong việc cân bằng tải cho các máy chủ trong từng cụm máy chủ DNS quốc gia. Việc cân bằng tải này được thực hiện tại từng cụm máy chủ DNS nên còn được gọi là Local Load Balancing.
Ví dụ, cụm máy chủ DNS-B và cụm máy chủ DNS-C hiện tại đang được sử dụng phương pháp cân bằng tải bằng thiết bị chuyên dụng. Trong hai cụm này có nhiều máy chủ DNS cùng hoạt động, tuy nhiên người dùng bên ngoài chỉ nhìn thấy địa chỉ IP là Virtual IP (VIP): 203.119.10.105 (Cụm DNS-B); 203.119.38.105 (Cụm DNS-C). Bằng cách này có thể đảm bảo tăng khả năng đáp ứng truy vấn, tăng tính dự phòng và tính bảo mật cho hệ thống DNS quốc gia.
3.3. Công nghệ DNS Anycast:
Hiện tại, hệ thống DNS quốc gia sử dụng công nghệ DNS Anycast cho 02 cụm máy chủ đặt ở nước ngoài, công nghệ này đảm bảo truy vấn tên miền ".vn" từ phía người dùng trên khắp thế giới sẽ được thực hiện rất nhanh qua máy chủ DNS gần nhất được tìm thấy trong số các máy chủ tên miền ".vn".
Thông tin chi tiết về công nghệ DNS Anycast có thể tham khảo đường link sau: Công nghệ DNS Anycast.