Tải bản đầy đủ (.doc) (26 trang)

kỹ thuật cân bằng tải mạng (NLB network load balancing)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 26 trang )

Lời nói đầu
Hiện nay, khi nhu cầu truy nhập mạng bùng nổ, các server cung cấp dịch vụ đang trở
nên quá tải. Việc lựa chọn một server đơn lẻ có cấu hình cực mạnh để đáp ứng nhu cầu
này sẽ kéo theo chi phí đầu tư rất lớn. Giải pháp hiệu quả được đưa ra là sử dụng một
nhóm server cùng thực hiện một chức nǎng dưới sự điều khiển của một công cụ phân
phối tải - Giải pháp cân bằng tải.
Có rất nhiều hãng đưa ra giải pháp cân bằng tải như Cisco, Coyote Point, Sun
Microsystems... với rất nhiều tính nǎng phong phú. Tuy nhiên, về cơ bản, nguyên tắc cân
bằng tải vẫn xuất phát từ những quan điểm kỹ thuật khá tương đồng. Một kỹ thuật cân
bằng tải điển hình là RRDNS (Round Robin DNS). Với giải pháp này, nếu một server
trong nhóm bị lỗi, RRDNS sẽ vẫn tiếp tục gửi tải cho server đó cho đến khi người quản
trị mạng phát hiện ra lỗi và tách server này ra khỏi danh sách địa chỉ DNS. Điều này sẽ
gây ra sự đứt quãng dịch vụ. Sau những phát triển, từ các thuật toán cân bằng tải tĩnh
như Round Robin, Weighted Round Robin đến các thuật toán cân bằng tải động như
Least Connection, Weighted Least Connection, Optimized Weighted Round Robin và
Optimized Weighted Least Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các
thuật toán trên ngày càng trở nên hoàn thiện mặc dù nhược điểm vốn có như tạo điểm lỗi
đơn và vấn đề nút cổ chai do sử dụng bộ điều phối tập trung (centralized dispatcher) vẫn
còn. Trong phần báo cáo này nhóm chúng tôi xin giới thiệu một giải pháp mà Microsoft
sử dụng cho các webserver, đó là kỹ thuật cân bằng tải mạng (NLB - Network Load
Balancing).
Đây là một chủ đề khá rộng lớn và phức tạp nên không tránh khỏi những thiếu sót
trong quá trình thực hiện, rất mong nhận được ý kiến đóng góp của cô giáo và các bạn.
Xin chân thành cảm ơn!

Nhóm 2

Network Load Balancing

1



1. Tổng quan về Network Load Balancing:
Server đang là nền tảng phân phối các ứng dụng quan trọng, thường xuyên và rộng khắp
như Web, Streaming media, VPN. Như một phần tích hợp của Windows Advanced
Server và Datacenter Server, Network Load Balancing (NLB) cung cấp một giải pháp lý
tưởng, kinh tế để tăng cường tính khả mở và khả dụng cho các ứng dụng trên cả môi
trường Internet và intranet.
NLB mở rộng hiệu năng của các server ứng dụng, chẳng hạn như Web server, nhờ phân
phối các yêu cầu của client cho các server trong nhóm (cluster). Các server (hay còn gọi
là host) đều nhận gói IP đến, nhưng gói chỉ được xử lý bởi một server nhất định.
Các host trong nhóm sẽ đồng thời đáp ứng các yêu cầu khác nhau của các client, cho dù
một client có thể đưa ra nhiều yêu cầu. Ví dụ, một trình duyệt Web cần rất nhiều hình ảnh
trên một trang Web được lưu trữ tại nhiều host khác nhau trong một nhóm server. Với kỹ
thuật cân bằng tải, quá trình xử lý và thời gian đáp ứng client sẽ nhanh hơn nhiều.

Mỗi host trong nhóm có thể định ra mức tải mà nó sẽ xử lý hoặc tải có thể phân phối một
cách đồng đều giữa các host. Nhờ sử dụng việc phân phối này, mỗi server sẽ lựa chọn và
xử lý một phần tải của host. Tải do các client gửi đến được phân phối sao cho mỗi server
nhận được số lượng các yêu cầu theo đúng phần tải đã định của nó.
Network Load Balancing

2


Sự cân bằng tải này có thể điều chỉnh động khi các host tham gia vào hoặc rời khỏi
nhóm. Đối với các ứng dụng như Web Server, có rất nhiều client và thời gian mà các yêu
cầu của client tồn tại tương đối ngắn, khả năng của kỹ thuật này nhằm phân phối tải
thông qua ánh xạ thống kê sẽ giúp cân bằng một cách hiệu quả các tải và cung cấp khả
năng đáp ứng nhanh khi nhóm server có thay đổi.
Các server trong nhóm cân bằng tải phát đi một bản tin đặc biệt thông báo trạng thái hoạt

động của nó (gọi là heartbeat message) tới các host khác trong nhóm đồng thời nghe bản
tin này từ các khác host khác. Nếu một server trong nhóm gặp trục trặc, các host khác sẽ
điều chỉnh và tái phân phối lại tải để duy trì liên tục các dịch vụ cho các client.
Trong phần lớn các trường hợp, phần mềm client thường tự động kết nối lại và người sử
dụng chỉ cảm thấy trễ một vài giây khi nhận được đáp ứng trả lời.
2. Kiến trúc hệ thống cân bằng tải
Để tối đa hoá thông lượng và độ khả dụng, công nghệ cân bằng tải sử dụng kiến trúc
phần mềm phân tán hoàn toàn, trình điều khiển cân bằng tải được cài đặt và chạy song
song trên tất cả các host trong nhóm. Trình điều khiển này sắp xếp tất cả các host trong
nhóm vào một mạng con để phát hiện đồng thời lưu lượng mạng đến địa chỉ IP chính của
nhóm (và các địa chỉ bổ sung của các host ở nhiều vị trí khác nhau).
Trên mỗi host, trình điều khiển hoạt động như một bộ lọc giữa trình điều khiển card
mạng và chồng giao thức TCP/IP, cho phép một phần lưu lượng mạng đến được nhận bởi
host đó. Nhờ đó, các yêu cầu của client sẽ được phân vùng và cân bằng tải giữa các host
trong nhóm.
Hệ thống cân bằng tải chạy như một trình điều khiển mạng (về mặt logic) nằm dưới các
giao thức lớp ứng dụng như HTTP hay FTP. Kiến trúc này tối đa hoá dung lượng nhờ
việc sử dụng mạng quảng bá để phân phối lưu lượng mạng đến tất cả các host trong nhóm
và loại bỏ sự cần thiết phải định tuyến các gói đến từng host riêng lẻ.
Do thời gian lọc các gói không mong muốn diễn ra nhanh hơn thời gian định tuyến các
gói (định tuyến bao gồm các quá trình nhận gói, kiểm tra, đóng gói lại và gửi đi), kiến
trúc này cung cấp thông lượng cao hơn các giải pháp dựa trên bộ điều phối. Khi tốc độ
của mạng và server tăng lên, thông lượng cũng tăng theo tỉ lệ thuận, do đó loại bỏ được
bất cứ sự lệ thuộc nào vào việc định tuyến dựa trên các phần cứng đặc biệt.
Trên thực tế, bộ cân bằng tải có thể đạt thông lượng 250Mbit/s trong các mạng Gigabit.
Một ưu điểm cơ bản khác của kiến trúc phân tán hoàn toàn là độ khả dụng được tăng
cường với (N-1) cách khắc phục lỗi trong một nhóm có N host. Các giải pháp dựa trên bộ
Network Load Balancing

3



điều phối tạo ra một điểm lỗi kế thừa mà chỉ có thể được khắc phục bằng cách sử dụng
một bộ điều phối dự phòng và do đó chỉ cung cấp một cách khắc phục lỗi duy nhất.
Kiến trúc cân bằng tải cũng tận dụng được những ưu điểm về kiến trúc các thiết bị
chuyển mạch (switch) hoặc các bộ tập trung (hub) của mạng con trong việc đồng thời
phân phối lưu lượng mạng đến tất cả các host trong nhóm.
Tuy nhiên, phương pháp này làm tăng "tải trọng" trên các chuyển mạch do chiếm thêm
băng thông cổng. Đây không phải là vấn đề trong phần lớn các ứng dụng như dịch vụ
Web hay streaming media, do tỉ lệ lưu lượng đến chỉ chiếm một phần rất nhỏ trong tổng
lưu lượng mạng.
Tuy nhiên, nếu các kết nối mạng phía client đến thiết bị chuyển mạch có tốc độ nhanh
hơn nhiều các kết nối phía server, lưu lượng có thể chiếm một tỉ lệ lớn quá mức cho phép
của băng thông cổng phía server. Vấn đề tương tự sẽ gia tăng nếu nhiều nhóm kết nối
trên cùng một thiết bị chuyển mạch và các biện pháp thiết lập các mạng LAN ảo cho từng
nhóm không được thực hiện.
Trong quá trình nhận gói, việc triển khai của NLB là sự kết hợp giữa việc phân phối các
gói tới tầng TCP/IP và nhận các gói khác qua trình điều khiển card mạng. Việc này giúp
tăng tốc độ xử lý chung và giảm trễ do TCP/IP có thể xử lý gói trong khi trình điều khiển
NDIS (Network Driver Interface Specification) nhận gói tiếp theo. Trong quá trình gửi
gói, NLB cũng tăng cường thông lượng, giảm độ trễ và phụ phí (overhead) nhờ tăng số
lượng gói mà TCP/IP có thể gửi trong một kết nối.
Để có được những cải thiện về hiệu năng này, NLB thiết lập và quản lý một tập hợp các
bộ đệm gói và các ký hiệu (descriptor) được sử dụng để phối hợp các hoạt động của
TCP/IP và trình điều khiển NDIS.
3. Phân phối lưu lượng trong nhóm
NLB sử dụng hai lớp broadcast hoặc multicast để phân phối đồng thời lưu lượng mạng
đến tất cả các host trong nhóm. Trong chế độ hoạt động mặc định là unicast, NLB sẽ gán
địa chỉ trạm làm việc (địa chỉ MAC) cho card mạng để card mạng có thể hoạt động (card
này gọi là card nhóm ? cluster adapter), và tất cả các host trong nhóm được gán cùng một

địa chỉ MAC.
Các gói đến do đó được nhận bởi tất cả các host trong nhóm và chuyển gói tới trình điều
khiển cân bằng tải để lọc. Để đảm bảo tính duy nhất, địa chỉ MAC được dẫn xuất từ địa

Network Load Balancing

4


chỉ IP chính của nhóm. Ví dụ, với địa chỉ IP chính của nhóm là 1.2.3.4, địa chỉ MAC
unicast được đặt là 02-BF-1-2-3-4.
Trình điều khiển cân bằng tải sẽ tự động sửa địa chỉ MAC của card nhóm bằng cách thiết
lập một thực thể đăng ký và tái nạp trình điều khiển card nhóm. Hệ điều hành không cần
phải khởi động lại. Nếu các host trong cluster được gắn vào một thiết bị chuyển mạch
(swicth) chứ không phải một bộ tập trung (hub), việc sử dụng chung một địa chỉ MAC sẽ
gây ra xung đột do các chuyển mạch lớp 2 chỉ có thể hoạt động khi các địa chỉ MAC
nguồn trên tất cả các cổng của thiết bị chuyển mạch là duy nhất.
Để tránh điều này, NLB sửa địa chỉ MAC nguồn cho các gói đầu ra là duy nhất, địa chỉ
MAC của nhóm là 02-BF-1-2-3-4 được chuyển thành 02-h-1-2-3-4, trong đó h là mức ưu
tiên của host trong nhóm. Kỹ thuật này ngăn không cho thiết bị chuyển mạch tìm ra địa
chỉ MAC thực sự của nhóm và kết quả là các gói đến nhóm được phân phối tới tất cả các
cổng của thiết bị chuyển mạch.
Nếu các host trong nhóm được kết nối trực tiếp vào một hub, mặt nạ địa chỉ MAC nguồn
của NLB trong chế độ unicast có thể được vô hiệu hoá để tránh gây ra hiện tượng tràn
cho các thiết bị chuyển mạch ở đường lên (upstream). Điều này có thể thực hiện bằng
cách thiết lập tham số đăng ký NLB là MaskSourceMAC=0. Việc sử dụng hệ thống
chuyển mạch đường lên ba mức cũng có thể hạn chế tràn cho các thiết bị chuyển mạch.

Network Load Balancing


5


Chế độ unicast của NLB có thể làm vô hiệu hoá quá trình trao đổi thông tin giữa các host
trong nhóm có sử dụng card nhóm. Khi các gói của một host được gửi đi với địa chỉ
MAC đích giống địa chỉ MAC nguồn, các gói này sẽ bị quay vòng (loop-back) giữa các
tầng giao thức mạng bên trong hệ thống phía gửi và không bao giờ ra đến đường truyền.
Hạn chế này có thể tránh được bằng cách thêm một card mạng thứ hai cho mỗi host.
Trong cấu hình này, NLB sử dụng một card mạng trên mạng con nhận các yêu cầu của
client và một card mạng khác thường được đặt tách biệt trên mạng con cục bộ để trao đổi
thông tin giữa các host trong nhóm và với các server cơ sở dữ liệu cũng như các file
server gốc. NLB chỉ sử dụng card nhóm để truyền các bản tin "heartbeat" và lưu lượng
điều khiển từ xa.
Chú ý rằng, trao đổi thông tin giữa các host trong nhóm và các host ngoài nhóm không
bao giờ bị ảnh hưởng bởi chế độ unicast của NLB. Lưu lượng mạng đến một địa chỉ IP
dành riêng cho host (trong card nhóm) được nhận bởi tất cả các host trong nhóm do
chúng sử dụng chung một địa chỉ MAC. Do NLB không bao giờ cân bằng tải lưu lượng
đối với các địa chỉ IP dành riêng, NLB sẽ lập tức phân phối lưu lượng này đến TCP/IP
trên host đã định. Các host khác trong nhóm coi lưu lượng này là lưu lượng đã được cân
bằng tải và sẽ loại bỏ lưu lượng này. Chú ý, nếu lưu lượng mạng đến quá lớn đối với các
địa chỉ IP dành riêng có thể ảnh hưởng đến hiệu năng khi hệ thống NLB hoạt động trong
chế độ unicast (tuỳ theo sự cần thiết đối với TCP/IP trong việc loại bỏ các gói không
mong muốn).
NLB cung cấp chế độ thứ hai để phân phối lưu lượng mạng đến các host trong nhóm, chế
độ multicast. Chế độ này gán địa chỉ multicast 2 lớp cho card nhóm thay vì thay đổi địa
chỉ trạm làm việc của card. Ví dụ, địa chỉ MAC multicast sẽ được gán là 03-BF-1-2-3-4
tương ứng với địa chỉ IP chính là 1.2.3.4. Do mỗi host trong nhóm có một địa chỉ trạm
làm việc duy nhất, chế độ này không cần một bộ card mạng thứ hai để trao đổi thông tin
giữa các host trong nhóm và nó cũng không có bất cứ ảnh hưởng nào đến hiệu năng của
toàn hệ thống do việc sử dụng các địa chỉ IP dành riêng.

Chế độ unicast của NLB gây ra tràn trên switch do sự phân phối đồng thời lưu lượng
mạng trên tất cả các cổng. Tuy nhiên, chế độ multicast của NLB đưa ra cơ hội hạn chế
tràn switch để người quản trị hệ thống có thể cấu hình một mạng LAN ảo trên switch cho
các cổng tương ứng với các host. Có thể làm được điều này bằng cách lập trình cho
switch hoặc sử dụng giao thức IGMP hoặc giao thức GARP, GMRP.
NLB cần triển khai chức năng ARP để đảm bảo rằng địa chỉ IP chính của nhóm và các
địa chỉ IP ảo khác có thể phân giải sang địa chỉ MAC multicast của nhóm. (Địa chỉ IP
dành riêng sẽ tiếp tục phân giải sang địa chỉ trạm làm việc của card nhóm).
Network Load Balancing

6


4. Thuật toán cân bằng tải
NLB sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ các client đến các host trong
nhóm. Thuật toán này cho phép các host trong nhóm đưa ra các quyết định cân bằng tải
một cách độc lập và nhanh chóng cho từng gói đến. Nó được tối ưu hoá để cung cấp khả
năng cân bằng tải một cách thống kê đối với một số lượng lớn các yêu cầu nhỏ do vô số
client tạo ra, điển hình là đối với các Web server.
Nếu số client hoặc các kết nối client tạo ra các tải quá chênh lệch nhau trên server, thuật
toán cân bàng tải sẽ ít hiệu quả. Tuy nhiên, tính đơn giản và tốc độ của thuật toán cho
phép cung cấp hiệu nǎng rất cao bao gồm cả thông lượng cao và thời gian đáp ứng ngắn
trong một dải rộng các ứng dụng client/server thông dụng.

NLB xử lý các yêu cầu của client bằng cách dẫn đường cho một tỉ lệ phần trăm đã chọn
những yêu cầu mới cho từng host trong nhóm. Thuật toán không đáp ứng những thay đổi
về tải trên mỗi host (chẳng hạn như tải CPU hay vấn đề sử dụng bộ nhớ). Tuy nhiên, quá
trình ánh xạ sẽ được thay đổi khi quan hệ thành viên trong nhóm thay đổi và tỉ lệ phần
trăm tải phân bố sẽ được tái cân bằng.
Khi xem xét một gói đến, tất cả các host thực hiện đồng thời việc ánh xạ thống kê để xác

định nhanh chóng host nào sẽ xử lý gói đó. Quá trình ánh xạ sử dụng một hàm ngẫu
nhiên để tính mức ưu tiên của host dựa trên địa chỉ IP và cổng đến của client cùng các
Network Load Balancing

7


thông tin trạng thái khác để tối ưu hoá việc cân bằng tải. Host tương ứng sẽ chuyển gói
đó từ các tầng dưới lên tầng TCP/IP còn các host khác sẽ loại bỏ gói này. Quá trình ánh
xạ không thay đổi trừ phi quan hệ giữa các host trong nhóm thay đổi, để đảm bảo rằng
địa chỉ IP và cổng đến của client cho trước sẽ luôn được ánh xạ đến cùng một host trong
nhóm.
Tuy nhiên, host cụ thể trong nhóm mà địa chỉ IP và cổng đến của client ánh xạ tới không
thể được xác định trước do hàm ngẫu nhiên có tính đến quan hệ thành viên trong nhóm
hiện tại và quá khứ để tối thiểu hoá khả năng ánh xạ lại.
Nhìn chung, chất lượng cân bằng tải được xác định một cách thống kê bởi số lượng client
tạo ra yêu cầu. Như kết cấu tăng giảm về số lượng client theo thống kê, sự đều đặn về
chất lượng của thuật toán cân bằng tải sẽ thay đổi nhẹ.
Để hoạt động cân bằng tải có độ chính xác cao trên mỗi host trong nhóm, một phần tài
nguyên hệ thống sẽ được sử dụng để đo và phản ứng trước những thay đổi của tải. Sự trả
giá về hiệu năng này phải được cân nhắc so với lợi ích của việc tối đa hoá khả năng sử
dụng các tài nguyên trong nhóm (về cơ bản là CPU và bộ nhớ).
Trong bất cứ trường hợp nào, việc sử dụng hợp lý các nguồn tài nguyên server phải được
duy trì để có thể phục vụ cho các tải client khác trong trường hợp xảy ra lỗi.
Khi một host mới tham gia vào nhóm, nó sẽ kích hoạt quá trình hội tụ và một quan hệ
thành viên mới trong nhóm sẽ được tính toán. Khi quá trình hội tụ hoàn thành, một phần
tối thiểu client sẽ được ánh xạ tới host mới. NLB dò các kết nối TCP trên mỗi host và sau
khi kết nối TCP hiện tại của chúng hoàn thành, kết nối tiếp theo từ các client bị ảnh
hưởng sẽ được xử lý bởi host mới.
Do đó, các host nên được bổ sung vào nhóm tại những thời điểm tải tăng quá mạnh nhằm

tối thiểu hoá hiện tượng ngắt quãng các phiên. Để tránh vấn đề này, trạng thái phiên phải
được quản lý bởi ứng dụng server sao cho nó có thể được tái cấu trúc hay được trả lại từ
bất kỳ một host nào trong nhóm. Ví dụ, trạng thái phiên có thể được đẩy đến server cơ sở
dữ liệu và lưu trong các cookies của client.
5. Quá trình hội tụ
Các host trong nhóm trao đổi định kỳ các bản tin "heartbeat" multicast hoặc broadcast với
nhau. Điều này cho phép các host có thể giám sát trạng thái của nhóm. Khi trạng thái của
nhóm thay đổi (chẳng hạn như khi có host gặp trục trặc, rời khỏi hoặc tham gia vào
nhóm), NLB kích hoạt một chu trình gọi là hội tụ trong đó các host trao đổi bản tin
Network Load Balancing

8


"heartbeat" để định ra một trạng thái mới, bền vững cho nhóm. Khi tất cả các đạt được sự
"nhất trí" trạng thái mới của chúng sẽ được thiết lập và những thay đổi này sẽ được lưu
vào nhật ký sự kiện.
Trong quá trình hội tụ, các host tiếp tục xử lý lưu lượng mạng đến như mọi khi ngoại trừ
lưu lượng đến host bị lỗi không nhận được dịch vụ. Quá trình hội tụ kết thúc khi tất cả
các host trong nhóm có được một quan hệ thành viên ổn định trong vòng một vài chu kỳ
heartbeat.
Khi hoàn thành quá trình hội tụ, lưu lượng đến host bị lỗi sẽ được tái phân phối cho các
host còn lại. Nếu một host được thêm vào nhóm, quá trình hội tụ cho phép host này nhận
được phần tải của nó trong lưu lượng đã được cân bằng.
Việc mở rộng nhóm không ảnh hưởng đến các hoạt động của nhóm và theo một cách
hoàn toàn trong suốt đối với tất cả các Internet client cũng như trước các chương trình
phần mềm server. Tuy nhiên, nó có thể ảnh hưởng đến các phiên client vì các client có
thể phải tái ánh xạ tới các host khác trong nhóm.

Network Load Balancing


9


Trong chế độ unicast, mỗi host sẽ phát quảng bá (broadcast) bản tin "heartbeat" theo chu
kỳ. Còn trong chế độ multicast, nó sẽ phát các bản tin này ở chế độ multicast. Mỗi bản tin
"heartbeat" chiếm một khung Ethernet và được gắn thêm địa chỉ IP chính của nhóm nhằm
cho phép nhiều nhóm có thể cùng tồn tại trên cùng một mạng con. Bản tin "heartbeat"
của NLB của Microsoft được gán một giá trị 0x886F. Chu kỳ gửi các bản tin này mặc
định là 01 giây. Giá trị này có thể thay đổi.
Trong quá trình hội tụ, chu kỳ này được giảm xuống chỉ còn một nửa để đẩy nhanh việc
hoàn tất quá trình này. Thậm chí, đối với các cluster lớn, băng thông cần thiết để truyền
các bản tin "heartbeat" rất thấp (24kBytes/s cho một cluster 16 đường). Để có thể khởi
tạo quá trình hội tụ, theo mặc định cần 05 bản tin heartbeat không được nhận. Giá trị này
có thể thay đổi.
6. Điều khiển từ xa
Network Load Balancing

10


Cơ chế điều khiển từ xa của NLB sử dụng giao thức UDP và được gán cổng dịch vụ
#2504. Các gói dữ liệu điều khiển từ xa được gửi tới địa chỉ IP chính của nhóm. Do trình
điều khiển trên mỗi host trong nhóm xử lý các gói này, chúng cần được định tuyến tới
mạng con của nhóm (thay vì tới một mạng con gốc mà nhóm đó gắn vào). Khi các lệnh
điều khiển từ xa được đưa ra trong nhóm, chúng sẽ được phát quảng bá trên mạng con
cục bộ.
Điều này đảm bảo tất cả các host trong nhóm đều có thể nhận được chúng ngay cả khi
nhóm chạy trong chế độ unicast.
7. Hiệu năng cân bằng tải

Vai trò của NLB tác động đến hiệu năng của hệ thống có thể được đánh giá dựa trên bốn
tiêu chí chính sau:
- CPU overhead trên các host của nhóm - Phần trăm CPU cần thiết để phân tích và lọc
các gói của mạng (càng thấp càng tốt).
Tất cả các giải pháp cân bằng tải đều cần sử dụng một phần tài nguyên của hệ thống để
xem xét gói đến và đưa ra quyết định cân bằng tải và do đó ít nhiều ảnh hưởng đến hiệu
năng của mạng.
Giải pháp cân bằng tải dựa trên bộ điều phối cần kiểm tra, hiệu chỉnh và truyền lại gói tới
các host trong nhóm (thường phải sửa đổi lại địa chỉ IP để tái định tuyến gói từ địa chỉ IP
ảo tới địa chỉ IP của từng host cụ thể). Đối với NLB, nó phân phối đồng thời các gói đến
tới tất cả các host trong nhóm và áp dụng một thuật toán lọc để loại bỏ các gói không
mong muốn...
Quá trình lọc gây ảnh hưởng ít hơn so với quá trình tái định tuyến và kết quả là thời gian
đáp ứng nhanh hơn với thông lượng toàn hệ thống cao hơn.
8. Thông lượng và thời gian đáp ứng yêu cầu
NLB nâng cao hiệu năng hệ thống bằng cách tăng thông lượng và tối thiểu hoá thời gian
đáp ứng tới các yêu cầu của client. Khi năng lực của các host trong nhóm được khai thác
tối đa, nó sẽ không thể cung cấp thêm thông lượng và thời gian đáp ứng tăng đột biến tuỳ
theo độ trễ hàng đợi các yêu cầu của client. Bổ sung thêm host sẽ cho phép tăng thông
lượng và giảm thời gian đáp ứng.

Network Load Balancing

11


Nếu nhu cầu của khách hàng tiếp tục tăng, các host sẽ được thêm vào cho đến khi mạng
con bão hoà. Và nếu tải tiếp tục tăng, cần sử dụng nhiều nhóm NLB và việc phân phối
lưu lượng giữa các host được thực hiện bằng kỹ thuật Round Robin DNS.


- Băng thông sử dụng của Switch (Switch occupancy): Tỉ lệ băng thông của switch được
sử dụng bởi quá trình làm tràn các yêu cầu của client.
Kiến trúc lọc gói của NLB dựa trên mạng con broadcast để phân phối các yêu cầu của
client tới tất cả các host cùng lúc. Trong các nhóm nhỏ, có thể sử dụng hub để kết nối các
host. Với các nhóm lớn hơn, switch sẽ là sự lựa chọn. Và như mặc định, NLB sẽ tạo ra
hiện tượng "tràn" switch để có thể phân phối các yêu cầu của client tới tất cả các host
cùng lúc.
Cần chắc chắn rằng hiện tượng "tràn" switch không được vượt quá năng lực của switch,
đặc biệt khi switch được chia sẻ giữa nhóm và các máy tính ngoài nhóm. Bình thường,
băng thông sử dụng cho lưu lượng yêu cầu của client chỉ chiếm một tỉ lệ nhỏ trong tổng
lượng băng thông cần thiết cho quá trình truyền thông giữa server và client.
Tuy nhiên quá trình "tràn" switch sẽ trở thành vấn đề trong những ứng dụng có tỉ lệ phần
trăm đáng kể lưu lượng mạng được dẫn tới nhóm (chẳng hạn như quá trình upload file
trong các ứng dụng FTP) hay khi nhiều nhóm sử dụng chung một switch. Trong những
trường hợp này, chạy NLB trong chế độ multicast và thiết lập mạng LAN ảo để hạn chế
tràn switch là biện pháp khắc phục rất hiệu quả khiếm khuyết này. Ngoài ra, tính khả mở
của NLB quyết định khả năng cải thiện hiệu năng của hệ thống khi các host được thêm
vào nhóm.
Network Load Balancing

12


9. Xây dựng hệ thống Network Load Balancing trên ISA Enterprise.
Mô hình bài lab:

Chuẩn bị:
* 1 máy DC:
IP: 172.16.1.1
SM:255.255.255.0

DG:172.16.1.254
* 2 máy cài Win Server để làm ISA server, 2 máy này phải join domain, mỗi máy có 3
card mạng:
Máy 1:
-Card Internal (Thông với mạng nội bộ)
IP: 172.16.1.252
SM:255.255.255.0
-Card External (Thông với Internet)
Network Load Balancing

13


Cấp IP tự động
-Card Array (Thông 2 ISA trong cùng array với nhau)
IP:10.0.0.1
SM:255.0.0.0
Máy 2:
-Card Internal (Thông với mạng nội bộ)
IP: 172.16.1.253
SM:255.255.255.0
-Card External (Thông với Internet)
Cấp IP tự động
-Card Array (Thông 2 ISA trong cùng array với nhau)
IP:10.0.0.2
SM:255.0.0.0
*1 máy client để test hệ thống mạng:
IP:172.16.1.2
SM:255.255.255.0
DG:172.16.1.254

Tiến hành:
Nâng cấp máy DC lên thành máy chủ DC với domain là tuanthe.com
Sau khi nâng cấp thành công ta tạo 2 user isapri và isasla trên máy DC:

Network Load Balancing

14


Network Load Balancing

15


Add 2 user này làm Admin Domains của máy DC:

Network Load Balancing

16


Join 2 máy isa1 và isa2 vào miền tuanthe.com:
Chuột phải vào My Computer  Properties  Computer Name  Change  chọn
Domain và gõ tuanthe.com sẽ ra thông báo yêu cầu đăng nhập bằng tài khoản
Administrator để xác nhận việc gia nhập miền tuanthe.com.

Network Load Balancing

17



Tiến hành đăng nhập  thành công:

Sau khi máy được join vào domain thì phải tiến hành khởi động lại máy và đăng nhập
vào miền tuanthe.com bằng các user isapri và isasla đã tạo ở trên

Tiếp theo, tiến hành cài đặt ISA lên máy isa1, chú ý ở cửa sổ Setup Scenarios chọn Install
both ISA Server services and Configuration Storage server:
Network Load Balancing

18


Cứ nhấn Next và add card mạng Internal:

Network Load Balancing

19


Cứ tiếp tục Next rồi Install để cài đặt lên máy isa1.
Ở máy isa2 ta tiến hành cài đặt tương tự, chỉ khác là ở cửa sổ Setup Scenarios ta chọn
Install ISA Server services:

Network Load Balancing

20


Next tới cửa sổ Locate Configuration Storage Server chọn Browse:


Chọn máy isa1  Next, ở cửa sổ Array Membership chọn Ioin an existing array  Next,
chọn máy isa  Next rồi chọn Windows authentication Next  Next  Install.
Vào máy isa1, mở cửa sổ ISA, chọn Array  Firewall Policy tạo rule Allow ping cho
phép giao thức ping:

Network Load Balancing

21


Sang máy isa2 ta thấy ở trong cửa sổ ISA lập tức xuất hiện rule này:

Network Load Balancing

22


Tên máy isa1, chọn Enterprise  Enterprise Policies  Default Policy, vào Toolbox 
Computer Sets  Replicate Configuration Storage  Add  Computer, chọn máy isa1:

Chọn OK  Add  Computer, chọn isa2:

Chọn OK  Apply để chấp nhận thay đổi.
Tiếp theo, vào Array  Configuration  Networks, trong mục Task chọn Enable
Network Load Balancing Intergration:

Network Load Balancing

23



Chọn Set Virtual IP, gõ đại chỉ IP như sau rồi OK:

Network Load Balancing

24


Nhấn Next  Finish sẽ có thông báo hiện lên, bạn chọn OK  Apply sẽ có bảng thông
báo, bạn chọn như dưới đây rồi OK:

Ta đã hoàn thành việc cấu hình Netwwork Load Balancing trên ISA. Bây giờ ta tiến hành
test thử xem hệ thống có chạy chính xác không:
Vào máy XP thử ping tới địa chỉ 172.16.1.254 và 1 địa chỉ bên ngoài Internet:

Network Load Balancing

25


×