Network Load Balancing Là Gì | Cách Tăng Khả Năng Chịu Tải

26 Tháng Một, 2024

Với tình hình mạng lưới liên tục tăng trưởng, việc duy trì sự ổn định của mạng là một vấn đề quan trọng. Một trong những giải pháp phổ biến là sử dụng Network Load Balancing.

Vậy Network Load Balacing? Làm thế nào để giải quyết những vấn đề này và tối ưu hóa hiệu suất của mạng của bạn? Web chuyên nghiệp sẽ cung cấp các giải pháp chuyên nghiệp và hiệu quả để giúp bạn triển khai và quản lý Network Load Balancing một cách dễ dàng và hiệu quả.

Vấn đề của các website lớn

Vấn đề của các website lớn
Vấn đề của các website lớn

Nếu bạn chỉ sở hữu một số website nhỏ như blog cá nhân hoặc các trang web không nhận nhiều lượt truy cập, thì việc website tải chậm hoặc server bị down không phải là một vấn đề thường xuyên xảy ra. Tuy nhiên, khi số lượng yêu cầu tăng lên, ví dụ như 1000 hoặc 10000 yêu cầu trong một khoảng thời gian ngắn, server có thể bị quá tải và gặp phải sự cố không mong muốn.

Điều này có thể dẫn đến tình trạng dịch vụ bị gián đoạn và khiến cho khách hàng không thể truy cập vào trang web. Nếu đó là một trang web kinh doanh, thì mất mát tài chính cũng sẽ rất lớn.

Tuy nhiên, để giải quyết vấn đề quá tải server, chúng ta có thể sử dụng Network Load Balancer. Kỹ thuật này cho phép phân phối các yêu cầu trên nhiều máy chủ khác nhau, giúp giảm bớt áp lực trên từng máy chủ và tăng khả năng xử lý yêu cầu. Điều này giúp tránh tình trạng server bị quá tải và đảm bảo cho dịch vụ web hoạt động ổn định hơn, không bị gián đoạn và khách hàng có thể truy cập vào trang web một cách nhanh chóng và thuận tiện.

Vậy Network Load Balancer, hay cân bằng tải web là gì?

Network load balancing là gì

Network Load Balancing là gì
Network Load Balancing là gì

Network load balancing (cân bằng tải web) được định nghĩa là phân phối lưu lượng truy cập mạng hoặc ứng dụng một cách có hiệu quả trên nhiều server trong một cụm server farm.

Network load balancing là một kỹ thuật giúp phân phối tài nguyên và lưu lượng truy cập mạng hoặc ứng dụng một cách hiệu quả trên nhiều server trong một cụm server farm. Điều này giúp tối ưu hóa thời gian phản hồi, tăng khả năng truyền tải và tốc độ truy xuất dữ liệu cho mỗi khách hàng.

Khi áp dụng kỹ thuật này, lưu lượng truy cập được phân phối đồng đều trên các server, giúp đảm bảo tính sẵn sàng và khả năng hoạt động liên tục của hệ thống. Nếu một server gặp sự cố, các server khác sẽ tiếp tục hỗ trợ mà không làm gián đoạn sự truy cập và hoạt động của doanh nghiệp.

1. Giải thích ý nghĩa

Mạng load balancing là một giải pháp tiết kiệm chi phí và hiệu quả để tăng cường tính sẵn sàng và khả năng mở rộng của các ứng dụng Internet. Kỹ thuật này cho phép các quản trị viên hệ thống xây dựng cụm máy chủ để phân phối lưu lượng truy cập từ khách hàng. Với kỹ thuật NLB, khách hàng không cần phải phân biệt giữa các máy chủ trong cụm, và các máy chủ trong cụm cũng không cần phải biết về sự tồn tại của các cụm khác.

Kết quả là, NLB cho phép quản trị viên kiểm soát tổng thể hơn, bao gồm cả việc quản lý cụm từ xa từ bất kỳ điểm nào trong mạng. Quản trị viên có thể điều khiển cụm với các dịch vụ thông qua các điều khiển cổng xác định. Ngoài ra, phần mềm và các máy chủ trong cụm có thể được cập nhật mà không gây gián đoạn dịch vụ. NLB gửi tin nhắn thông thường để cho tất cả các thành viên trong nhóm giám sát sự hiện diện của các máy chủ khác, giúp quản lý các trường hợp thất bại và phục hồi tự động và nhanh chóng.

Phần mềm NLB thực hiện việc xử lý giao thông mạng với chi phí rất thấp, cung cấp hiệu suất mở rộng tuyệt vời, chỉ giới hạn bởi băng thông subnet. NLB cũng cung cấp khả năng dự phòng mạng bằng cách cung cấp truy cập liên kết thứ cấp trong trường hợp mất liên kết mạng.

2, Lợi ích của việc sử dụng load balancer cho server?

Lợi ích của việc sử dụng load balancer cho server
Lợi ích của việc sử dụng load balancer cho server
  • Uptime 99.9%:Với Load Balancing, khi máy chủ gặp sự cố, lưu lượng truy cập sẽ được tự động chuyển đến máy chủ còn lại. Nhờ đó, trong hầu hết mọi trường hợp, sự cố bất ngờ có thể được phát hiện và xử lý kịp thời, không làm gián đoạn các truy cập của người dùng.
  • Datacenter linh hoạt: Khả năng linh hoạt trong việc điều phối giữa các máy chủ cũng là một ưu điểm khác của Load Balancing. Tự động điều phối giữa các máy chủ cũ và mới để xử lý các yêu cầu dịch vụ mà không làm gián đoạn các hoạt động chung của hệ thống.
  • Tăng bảo mật cho Datacenter: Bằng cách sử dụng Load Balancing, những yêu cầu từ người dùng sẽ được tiếp nhận và xử lý trước khi phân chia đến các máy chủ. Đồng thời, quá trình phản hồi cũng được thông qua Load Balancing, ngăn cản việc người dùng giao tiếp trực tiếp với máy chủ, ẩn đi thông tin và cấu trúc mạng nội bộ, từ đó chặn đứng những cuộc tấn công mạng hay truy cập trái phép… Load balancer luôn đóng một vai trò quan trọng trong quá trình hoạt động hiệu quả và giảm thiểu những rủi ro cho doanh nghiệp. Đây một trong những thành phần cơ sở hạ tầng quan trọng nhất của ngành mạng máy tính hiện nay. Hãy đảm bảo sự hài lòng của khách hàng truy cập website bằng cách sử dụng giải pháp Load Balancing này.

Load balancer hoạt động như thế nào?

Load balancer hoạt động như thế nào
Load balancer hoạt động như thế nào

Quá trình hoạt động của load balancing trên website bao gồm nhiều bước quan trọng. Ban đầu, website sẽ tiếp nhận một lượng lớn yêu cầu từ khách truy cập. Những yêu cầu này sẽ được xử lý và phân phối đều trên các tài nguyên máy chủ thông qua phần mềm hoặc phần cứng load balancing.

Tiếp theo, các máy chủ sẽ tiếp nhận và xử lý từng yêu cầu, giúp giảm tải cho mỗi máy chủ và tránh quá tải ở các nút. Cuối cùng, máy chủ sẽ gửi phản hồi trở lại cho người dùng.

Tuy nhiên, để thực hiện các bước này, hệ thống cần phải có nhiều tài nguyên như nhiều máy chủ, mạng hoặc máy chủ ảo. Nếu chỉ có một máy chủ, tất cả yêu cầu sẽ được dồn vào đó, khiến cho việc cân bằng tải trở nên vô nghĩa. Vì vậy, để đảm bảo hoạt động hiệu quả và giảm thiểu tải cho mỗi máy chủ, load balancing là một trong những thành phần hạ tầng quan trọng nhất của ngành mạng máy tính hiện nay.

Tóm lại, một load balancer sẽ thực hiện các chức năng chính sau đây:

  • Phân phối lưu lượng đến các server khác nhau trong nhóm tài nguyên để đảm bảo rằng không có server nào bị quá tải.
  • Giảm thiểu thời gian phản hồi của server và tối đa hóa throughput.
  • Cung cấp hiệu suất và bảo mật cần thiết để duy trì các môi trường CNTT, cũng như các quy trình công việc phức tạp diễn ra trong chúng.
  • Khả năng mở rộng nhất để xử lý vô số yêu cầu từ quy trình làm việc đa ứng dụng, đa thiết bị hiện đại.
  • Cho phép truy cập liền mạch vào nhiều ứng dụng, tệp và máy tính để bản khác nhau trong không gian làm việc số ngày nay.

Các loại Load Balancer và thuật toán ứng dụng trong Load Balancing

1. Các loại Load Balancer

Load balancer (cân bằng tải) thường được nhóm thành 2 loại: Layer 4 và Layer 7. Để thúc đẩy tính nhất quán cao hơn và theo kịp nhu cầu ngày càng tăng của người dùng, tài nguyên server phải có sẵn và cân bằng tải ở Layer 4 hoặc Layer 7 của mô hình Open Systems Interconnection (Liên kết hệ thống mở – OSI):

  • Cân bằng tải Layer 4 (L4) hoạt động ở cấp độ vận chuyển. Điều đó có nghĩa là chúng có thể đưa ra các quyết định định tuyến dựa trên các cổng TCP hoặc UDP mà các gói sử dụng cùng với địa chỉ IP nguồn và đích của chúng. L4 load balancers thực hiện Network Address Translation nhưng không kiểm tra nội dung thực tế từng gói.
  • Cân bằng tải Layer 7 (L7) hoạt động ở cấp ứng dụng, cao nhất trong mô hình OSI. Chúng có thể đánh giá phạm vi dữ liệu rộng hơn so với các đối tác L4, bao gồm các tiêu đề HTTP và ID phiên SSL, khi quyết định cách phân phối các yêu cầu trên toàn bộ cụm máy chủ. Load balancing chuyên sâu hơn về mặt tính toán tại L7 hơn so với L4 và nó cũng có thể hoạt động hiệu quả hơn ở L7, do cấu hình được thêm vào để hiểu và xử lý các yêu cầu của máy khách đến máy chủ.

Ngoài load balancing L4 và L7 cơ bản, Global server load balancing (cân bằng tải máy chủ toàn cầu – GSLB) có thể mở rộng khả năng của một trong hai loại trên nhiều trung tâm dữ liệu để có thể phân phối lưu lượng lớn một cách hiệu quả.

Khi các ứng dụng ngày các được lưu trữ trong các trung tâm dữ liệu đám mây nằm ở nhiều khu vực địa lý, GSLB cho phép các tổ chức CNTT cung cấp các ứng dụng có độ tin cậy cao hơn và độ trễ thấp hơn cho bất kỳ thiết bị hoặc vị trí nào. Làm như vậy đảm bảo trải nghiệm nhất quán hơn cho end user khi họ đang điều hướng nhiều ứng dụng và dịch vụ trong không gian làm việc số.

2. Một số thuật toán Load balancer (cân bằng tải) phổ biến

Một số thuật toán Load balancer (cân bằng tải) phổ biến
Một số thuật toán Load balancer (cân bằng tải) phổ biến)

Tùy thuộc vào công nghệ Load Balancing sẽ ứng dụng thuật toán khác nhau. Dưới đây là phân tích về cách thức hoạt động của những loại thường thấy nhất.

Round Robin

Round Robin là thuật toán NLB cơ bản nhất, chỉ chuyển tiếp dựa trên thứ tự ưu tiên của các server. Khi thêm một Server vào Cluster (mình sẽ gọi là 1 node), chúng ta sẽ phải chỉ ra thứ tự ưu tiên của server đó.

Khi có một request được gửi đến, NLB sẽ kiểm tra theo thứ tự ưu tiên từ trên xuống, server nào đang có ít kết nối hơn thì sẽ đẩy request sang server đó. Nếu tất cả các node đều có cùng số lượng kết nối thì NLB sẽ chuyển request cho node có độ ưu tiên cao nhất.

VD: hiện tại các request đang được chuyển tiếp như sau:

  • Request từ Client 1 – 3 được chuyển sang Server 1 – 3 xử lý.
  • Do các Node đang có cùng số lượng kết nối, request từ Client 4 được chuyển sang Server 1 xử lý.

Lúc này, request từ Client 5 sẽ được đẩy tiếp cho Server 2 xử lý.

Nhược điểm: do chỉ phân phối theo thứ tự ưu tiên, nên có khả năng 1 server có thứ tự cao được đẩy nhiều request quá => server đó ngưng hoạt động.

Thuật toán Weighted Round Robin

Weighted Round Robin khắc phục vấn đề của thuật toán Round Robin bằng cách đánh thứ tự ưu tiên dựa trên khả năng chịu tải của server. Khả năng chịu tải này sẽ được đánh dựa trên các thông số CPU, RAM,… của server. VD chúng ta có 3 server:

  • S1: 10.10.0.11 khả năng chịu tải là 1
  • S2: 10.10.0.12 khả năng chịu tải là 3
  • S3: 10.10.0.13 khả năng chịu tải là 2

Khi đó thứ tự ưu tiên được xếp như sau: S2-S2-S2-S3-S3-S1. Có thứ tự ưu tiên rồi thì sẽ thực hiện như Round Robin bình thường.

Thuật toán Least Connection

Least Connection hoạt động dựa trên việc tính toán số lượng kết nối đang hoạt động tại mỗi node mạng, và chọn ra node mạng đang có ít kết nối hoạt động nhất. Trong trường hợp số lượng kết nối của các node mạng bằng nhau thì Cluster sẽ thực hiện thuật toán Round Robin.

Thuật toán hoạt động như sau, giả sử ta có mô hình cân bằng tải với 3 node mạng:

Lúc này, khi có lượt truy cập mới, Network Load Balancing Cluster sẽ kiểm tra thấy Node 2 đang có ít kết nối hoạt động nhất. Vì thế kết nối sẽ được đẩy sang cho Node 2:

Giờ thì số lượng kết nối hoạt động tại Node 2 tăng lên thành 6, ngang với Node 1. Nếu tại thời điểm này tiếp tục có kết nối thì Network Load Balancing Cluster sẽ thực hiện thuật toán Round Robin. Theo đó kết nối sẽ được đẩy sang Node 1:

Nhược điểm: do chỉ xét đến số lượng kết nối trong khi dung lượng kết nối của các node có thể khác nhau, nên vẫn có thể xảy ra trường hợp phân phối không đồng đều, 1 số Server bị quá tải.

Thuật toán Weighted Least Connection

Weighted Least Connection khắc phục nhược điểm của Least Connection. Bản chất thuật toán vẫn là lựa chọn node mạng có lượng kết nối hoạt động ít nhất, nhưng thay vì dựa trên số lượng thì Weighted Least Connection sẽ lựa chọn dựa trên tỉ lệ phần trăm:

Khi có kết nối, do Node 3 mới chỉ có 5% số lượng kết nối hoạt động, nên kết nối sẽ được đẩy sang Node 3:

Thuật toán Resource Based

Các thuật toán như Round Robin, Least Connection chỉ khác ở cách điều hướng, còn thực tế mỗi request sẽ cần server phải xử lý và trả về thông tin khác nhau. Ví dụ: máy A request 1 lượng thông tin cực lớn (VD toàn bộ thông tin sản phẩm) trong khi máy B chỉ request thông tin về 1 sản phẩm. Cả 2 đều là 1 request, nhưng cần server tốn thời gian và tài nguyên để xử lý chênh nhau rất nhiều, như vậy thì việc chia ra các server dựa trên số lượng kết nối cũng không hoàn toàn ổn.

Resource Base sẽ giải quyết vấn đề này. Resource Based điều hướng request từ Client dựa trên tình trạng hiện tại của Server. Network Load Balancer thu thập thông tin về CPU, RAM, số lượng session đang hoạt động tại mỗi node mạng để quyết định chuyển hướng request cho Server nào xử lý. Tuy hoạt động tốt hơn, nhưng chi phí cài đặt và vận hành hệ thống Network Load Balancing cũng tốn kém hơn.

Các giao thức được xử lý bởi Load Balancer

Trong thực tế, quản trị Load Balancer có thể quy định chuyển tiếp 4 loại giao thức. Cụ thể như sau:

  • HTTP: Cách thức hoạt động dựa trên cơ chế HTTP chuẩn. HTTP Balancing sẽ đưa ra yêu cầu về tác vụ. Tiếp theo, Load Balancer đặt X-Forwarded-For, X-Forwarded-Proto và tiêu đề X-Forwarded-Port cung cấp các thông tin Backends về những yêu cầu ban đầu.
  • HTTPS: HTTPS Balancing được bổ sung mã hóa và xử lý bằng 2 cách. Đầu tiên chính là passthrough SSL duy trì mã hóa tất cả con đường đến Backend. Kiểu khác là chấm dứt SSL, đặt gánh nặng giải mã vào Load Balancer và gửi lưu lượng được mã hóa đến Backend.
  • TCP: Khi không sử dụng được HTTP hay HTTPS, TCP sẽ là giải pháp cân bằng lưu lượng. Cụ thể, khi một lượng Traffic đi vào cụm cơ sở dữ liệu, giao thức sẽ giúp lan truyền lưu lượng đến tất cả máy chủ.
  • UDP: Load Balancer đã bổ sung thêm hỗ trợ cho cân bằng tải giao thức Internet lõi như DNS và syslog sử dụng UDP.

Quy tắc chuyển tiếp sẽ có nhiệm vụ xác định loại giao thức và cổng vào Load Balancer. Lúc này, các gate được sử dụng để định tuyến lưu lượng trên Backend.

Cách thức Load Balancing xử lý trạng thái

Trong nhiều tình huống, ứng dụng yêu cầu người truy cập tiếp tục kết nối đến cùng Backend Server. Lúc này, thuật toán mã nguồn sẽ tạo ra một mối quan hệ dựa trên thông tin là IP của khách hàng.

Đối với ứng dụng web thông qua sticky sessions, Load Balancer sẽ tiến hành đặt một Cookie. Nhờ vậy, tất cả yêu cầu sẽ hướng đến cùng một máy chủ vật lý.

Cài đặt Network Load Balancing

Chuẩn bị:

Dưới đây là thực tế trên máy của mình nhe.

  • 2 máy ảo VM-1 có IP: 10.10.10.36 và VM-2 có IP: 10.10.10.76
  • 1 máy làm AD có DNS là DKCTEST.COM.
  • Các máy nằm trong cùng Domain.
  • Chú ý đến Firewall nha các chế!!!

Bắt đầu cài đặt:

Bước 1: Cài đặt Network load balancing trên 2 máy ảo, VM-1 và VM-2.

Mình hướng dẫn trên máy 2 máy 1 cài tương tự.


Đầu tiên vào menu Server Manager sau đó chọn Manage=>Add Roles and Features như hình bên dưới.

Tiếp theo trên của sổ Add Roles and Features sau đó chọn tab Features

Check vào Feature Network Load Balancing sau đó chọn Add Features

Next đến hết rồi chọn InstallVới máy 1 cài tương tự.

Bước 2: Tạo host của 2 máy ảo trong DNS.

Trên máy sử dụng làm AD mở DNS Manager => Chọn DSN(DKCTEST.COM) => Forward lookup Zones

Trên của sổ tạo mới Host bạn nhập thông tin tên host và địa chỉ ip trỏ đến máy VM-1.

Làm tương tự với máy VM-2.

Bước 3: Tạo host Cluster để 2 máy ảo cùng trỏ đến

Tiếp tục tạo thêm 1 host nữa host này trỏ đến IP ảo (IP này chưa tồn tại trong Domain) để về sau cấu hình cho 2 máy ảo cùng trỏ về địa chỉ này. Ở đây mình đặt tên host là www với IP là 10.10.10.58 (Kiểm tra xem đã tồn tại IP chưa bằng cách sử dụng ping trong cmd).

Bước 4: Sử dụng IIS để làm nơi chứa website

Trên máy 1 mình tạo 1 website có nội dung là “Day la may 1”

Cũng tương tự trên máy 2 mình tạo 1 website có nội dung “Day la may 2”

Bước 5: Cấu hình Network Load Balancing trên 1 máy ảo

Ở bước này chúng ta chỉ cần cấu hình NLB trên 1 con máy ảo là ok.


Đầu tiên trong menu Server Manager => chọn Tools => Network Load Balancing

Trên cửa sổ Network Load Balancing => chuột phải chọn New Cluster

Ở cửa sổ New Cluster

Nhập Tên Host của máy 1 => chọn Connect

Kiểm tra IP bên dưới xem đúng chưa. Sau đó Next tiếp. Trên màn hình tiếp theo New Cluster: HostParamaters chọn Next

Tiếp theo nhập ip cluster được tạo ở Bước 2 sau đó chọn OK. Sau đó Next.

Ở bước Edit Port Rules này chú ý Port Range để ý cái website mình tạo trên IIS có cổng là 80 nên mình để Port range từ 80 => 80;

Sau khi đã cấu hình xong chọn Finish

Đợi 1 lúc thấy Cluster mình vừa tạo xong ở trạng thái Converged là OK.

Tiếp theo sẽ cấu hình để 2 máy ảo cùng kết nối được với nhau. Tạo mới Host To Cluster

Tên Host mình sẽ nhập tên host của máy 2 => sau đó chọn Connect => Next

Trên cửa sổ Add Host to Cluster: Host Parameters chọn Next tiếp

Vậy là đã cấu hình xong. Giờ chúng ta test thử nhé.

Chúng ta test bằng cách tắt mạng hoặc tắt 1 trong 2 máy, đừng tắt cả 2 máy nhe. hehe

Sau khi mình tắt mạng máy 2

Lời kết

Trên đây là những thông tin về Network Load Balancing, giải pháp tối ưu cho hệ thống mạng của bạn. Với khả năng tự động phân phối tải và bảo đảm hoạt động liên tục của hệ thống, Load Balancing đóng vai trò quan trọng trong việc nâng cao trải nghiệm của khách hàng truy cập website và giảm thiểu những rủi ro cho doanh nghiệp.

Nếu bạn đang tìm kiếm một giải pháp mạng hiệu quả, hãy cân nhắc sử dụng Network Load Balancing để tăng cường hiệu suất và đảm bảo sự hài lòng của khách hàng. Chúc các bạn thành công!!