CÂN BẰNG TẢI
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 - NLB (Network load balancing). ...
CÂN BẰNG TẢI
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. Giới thiệ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. Bài báo này giới thiệu một giải pháp mà Microsoft sử dụng cho
web server chạy website Microsoft.com, đó là kỹ thuật cân bằng tải mạng (NLB -
Network Load Balancing). Ngoài khả nǎng áp dụng với Web server, kỹ thuật này còn
có thể áp dụng với các hệ server ứng dụng khác. NLB không chỉ làm nhiệm vụ phân
phối tải cho các server mà còn còn cung cấp cơ chế đảm bảo hệ thống server tính luôn
khả dụng trước các client. NLB không có yêu cầu đặc biệt gì về phần cứng, bất cứ
máy tính nào hợp chuẩn đều có thể được sử dụng làm server. Chi phí triển khai nhờ đó
giảm đáng kể. Kiến trúc phần mềm phân tán của NLB cho phép cung cấp hiệu nǎng
và tính khả dụng của kỹ thuật này ở mức cao nhất. NLB hoạt động như thế nào 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 tả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ó. Sự cân bằng tải này có thể điều chỉnh động khi các host tham gia vào
1
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. 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. Hình sau
cho thấy việc triển khai hệ thống cân bằng tải như một trình điều khiển trung gian
trong chồng giao thức mạng của Windows2000 tại mỗi host trong nhóm. 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ộ đ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) và/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ả cac 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
2
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. 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 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. 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
3
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). 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
và/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 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
4
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. 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 "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. 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. Điều khiển từ xa 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
5
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. 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. - 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. 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. Trên thực tế,
phương pháp này được sử dụng cho Web site của Microsoft www.microsoft.com, hiện
thường xuyên có 5 nhóm NLB, mỗi nhóm có 6 host và các host chạy ở mức 60% nǎng
lực tối đa. - 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. Kết luận 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 Windows2000 Advanced Server và Datacenter
Server, 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. Tuy nhiên, ngoài
những ứng dụng tích hợp trong Windows2000, NLB còn có thể tích hợp trong các hệ
điều hành mạng và các ứng dụng chạy trên server khác một cách hiệu quả. Ngân Hà
6