Trong thời đại bùng nổ của công nghệ thông tin hiện nay, mạng máy tính đóng vai trò ngày càng quan trọng hơn trong hoạt động của các doanh nghiệp, tổ chức cũng như các cơ quan nhà nước
Trang 1CHƯƠNG 1:
TỔNG QUAN VỀ HỆ THỐNG CÂN BẰNG TẢI SERVER
1.1 Tại sao phải xây dựng hệ thống cân bằng tải?
Trong thời đại bùng nổ của công nghệ thông tin hiện nay, mạng máy tính đóngvai trò ngày càng quan trọng hơn trong hoạt động của các doanh nghiệp, tổ chức cũngnhư các cơ quan nhà nước Thậm chí ở một số đơn vị, chẳng hạn như các công ty hàngkhông hoặc các ngân hàng lớn, mạng máy tính có thể ví như hệ thần kinh điều khiểnhoạt động của toàn doanh nghiệp Sự ngừng hoạt động của mạng máy tính hay sự hoạtđộng kém hiệu quả của mạng máy tính trong những cơ quan này có thể làm tê liệt cáchoạt động chính của đơn vị, và thiệt hại khó có thể lường trước được
Chúng ta đều biết các máy chủ là trái tim của của mạng máy tính, nếu máy chủmạng hỏng, hoạt động của hệ thống sẽ bị ngưng trệ Điều đáng tiếc là dù các hãng sảnxuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏnghóc đối với các thiết bị mạng nói chung và các máy chủ nói riêng là điều không thểtránh khỏi Do vậy, vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫnhoạt động tốt ngay cả khi có sự cố xảy ra đối với máy chủ mạng Việc lựa chọn mộtserver đơ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 và không giải quyết được các vấn đề đặt ra của các tổ chức 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ềukhiể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 ragiải pháp cân bằng tải như Cisco, Coyote Point, Sun Microsystems với rất nhiều tínhnǎ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ữngquan đ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à OptimizedWeighted Least Connection, kỹ thuật cân bằng tải hiện nay nhờ sự kết hợp các thuậttoá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)
Trang 2vẫn còn 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ớicác hệ server ứng dụng khác SLB không chỉ làm nhiệm vụ phân phối tải cho cácserver mà còn còn cung cấp cơ chế đảm bảo hệ thống server luôn khả dụng trước cácclient SLB 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úcphần mềm phân tán của SLB 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.
1.1.1.So sánh hệ thống cân bằng tải và hệ thống thông thường
Ứng dụng Xử lý đa nhiệm Xử lý nhanh đơn nhiệm
Ưu điểm của cân bằng tải
Tính mở rộng: thêm hoặc bỏ bớt server một cách dễ dàng
Trang 3 Tính sẵn sàng cao do hệ thống dùng nhiều Server Vì vậy hệ thống có tính dựphòng.
Tính quản lý: Theo dõi và quản lý tập trung hệ thống Server, bảo dưỡng hệthống server mà không cần tắt các dịch vụ
Có thể tách các ứng dụng khỏi server
Làm việc được với nhiều hệ điều hành
Hiệu suất cao
Server được nhóm lại thực hiện đa nhiệm vụ tốt hơn
Tất cả Server đều hoạt động đúng công suất không có tình trạng một Server làmviệc quá tải trong khi server khác lại đang “nhàn rỗi”
Những tổ chức nào cần có giải pháp cân bằng tải
Trường đại học, viện nghiên cứu…
1.2.Các giải pháp chia tải trên thế giới
Việc chia tải có thể thực hiện bằng nhiều phương cách, hình thức khác nhau, vớicác công nghệ khác nhau hoặc kết hợp chúng lại:
1.2.1 Chia tải bằng phần mềm cài trên các máy chủ
Kết hợp nhiều server một cách chặt chẽ tạo thành một server ảo (virtual server).Các hệ điều hành cho máy chủ thế hệ mới của các hãng Microsoft, IBM, HP hầu hếtđều cung cấp khả năng này, một số hãng phần mềm khác như Veritas(Symantec) cũngcung cấp giải pháp theo hướng này Các giải pháp thuộc nhóm này có ưu điểm là quenthuộc với những nhà quản trị chuyên nghiệp, có thể chia sẻ được nhiều tài nguyêntrong hệ thống, theo dõi được trạng thái của các máy chủ trong nhóm để chia tải hợp
lý Tuy nhiên, do sử dụng phần mềm trên server, tính phức tạp cao nên khả năng mởrộng của giải pháp này bị hạn chế, phức tạp khi triển khai cũng như khắc phục khi xảy
Trang 4ra sự cố, có rào cản về tính tương thích, khó có được những tính năng tăng tốc và bảomật cho ứng dụng.
1.2.2 Chia tải nhờ proxy
Nhóm này thường tận dụng khả năng chia tải sẵn có trên phần mềm proxy nhưISA Proxy của Microsoft hay Squid phần mềm mã nguồn mở cài trên máy phổ dụng.Proxy này sẽ thực hiện nhiệm vụ chia tải trên các server sao cho hợp lý Giải pháp này
vì hoạt động ở mức ứng dụng nên có khả năng caching (là công nghệ lưu trữ cục bộ dữliệu được truy cập với tần suất cao) và khả năng firewall ở tầng ứng dụng Vì sử dụngmáy phổ dụng nên giải pháp này có ưu điểm là chi phí thấp, khả năng mở rộng tốt vìcài đặt trên một máy độc lập, dễ quản trị Tuy nhiên, cũng vì chỉ hoạt động ở mức ứngdụng nên hiệu năng không cao, vì sử dụng máy phổ dụng nên không được tối ưu, dễtồn tại nhiều lỗi hệ thống, vì cài đặt trên một máy độc lập nên việc theo dõi trạng tháicủa các máy chủ gặp khó khăn Nhược điểm lớn nhất của các giải pháp dòng nàythường có tính ổn định kém, hiệu năng thấp, dễ mắc lỗi Đây là điều không thể chấpnhận được đối với các hệ thống đòi hỏi tính sẵn sàng cao như ngân hàng, tài chính
1.2.3 Chia tải nhờ thiết bị chia kết nối
Nhóm này thường sử dụng các mođun cắm thêm trên các thiết bị chuyên dụngnhư Bộ định tuyến (Router) hay hay bộ chuyển mạch (Switch) để chia tải theo luồng,thường hoạt động từ layer 4 trở xuống Vì sử dụng thiết bị chuyên dụng nên có hiệunăng cao, tính ổn định cao, khả năng mở rộng tốt hơn nhưng khó phát triển được tínhnăng bảo mật phức tạp như giải pháp proxy, thường thuật toán chia tải rất đơn giảnnhư DNS round-robin (đây là thuật toán chia tải phổ biến nhất và đơn giản, tuy nhiêncứng nhắc và hiệu quả thấp Với thuật toán này các yêu cầu về IP của một tên miềnứng với nhiều server sẽ được biên dịch thành địa chỉ IP của các server đó theo thứ tựquay vòng Nhóm này có khả năng chia tải động kém, không theo dõi được trạng tháicủa máy chủ, xử lý kết nối ở mức ứng dụng rất kém, dễ gây lỗi ứng dụng và giá thànhcao Cách thức này cũng hoàn toàn không phù hợp đối với các hệ thống yêu cầu tínhchuẩn xác của các hoạt động giao dịch như tài chính, ngân hàng
Như vậy, giải pháp có khả năng theo dõi trạng thái ứng dụng tốt thì mở rộng,tăng tốc, bảo mật kém(GP dùng phần mềm) Giải pháp mở rộng, tăng tốc, bảo mật tốt,thì theo dõi trạng thái ứng dụng kém, không ổn định, hiệu năng thấp(GP sử dụngproxy), giải pháp hiệu năng cao, ổn định, mở rộng tốt thì kém thông minh, dễ gây lỗiứng dụng, tăng tốc kém(GP chia tải nhờ thiết bị chia kết nối) Trong khi đó, tất cả các
Trang 5yêu cầu về hiệu năng cao, ổn định, mở rộng tốt, tăng tốc tốt và bảo mật là rất quantrọng đối với các hoạt động của ngân hàng, chứng khoán và các nhà cung cấp dịch vụ.
GP sẵn có của các hãng chỉ đáp ứng được một phần trong các yêu cầu trên nhưModule CSS của Cisco, ISA của Microsoft, hay Netscaler của Citrix)
Như vậy yêu cầu thực tế đặt ra là phải xây dựng được một hệ thống hoàn chỉnh
có khả năng quản trị lưu lượng, có khả năng kiểm soát, điều khiển và tối ưu hóa lưulượng mạng chạy qua nó SLB là một giải pháp có thể giải quyết được hầu hết các yêucầu đặt ra ở trên với một sự tối ưu cao nhất
1.3 Các thành phần của SLB
1.3.1 Chức năng của các thành phần trong SLB
Một giải pháp cân bằng tải phải (Server Load Balancer) có những chức năng sau đây:
Can thiệp vào luồng dữ liệu mạng tới một điểm đích
Chia luồng dữ liệu đó thành các yêu cầu đơn lẻ và quyết định máy chủ nào sẽ
xử lý những yêu cầu đó
Duy trì việc theo dõi các máy chủ đang hoạt động, đảm bảo rằng các máy chủnày vẫn đang đáp ứng các yêu cầu đến Nếu máy chủ nào không hoạt độngđúng chức năng, máy chủ đó bắt buộc phải đưa ra khỏi danh sách xoay vòng
Cung cấp sự đa dạng bằng việc tận dụng nhiều hơn một đơn vị trong các tìnhhuống fail-over (fail-over là khả năng tự động chuyển qua các thiết bị dựphòng khi gặp tình huống hỏng hóc hoặc trục trặc Việc thực thi này đượcthực hiện mà không có sự can thiệp của con người cũng như không có bất sựcảnh báo nào)
Cung cấp sự phân phối dự trên sự hiểu biết về nội dung ví dụ như đọc URL, canthiệp vào cookies hoặc truyền XML
Server Load Balancers: Load Balancer là một thiết bị phân phối tải giữa các máy tính
với nhau và các máy tính này sẽ xuất hiện chỉ như một máy tính duy nhất Phần dướiđây sẽ thảo luận chi tiết hơn về các thành phần của các thiết bị SLB
VIPs: Virtual IP (VIP): là một dạng thể hiện của của cân bằng tải Mỗi VIP sử dụng
một địa chỉ công khai IP Bên cạnh đó, một cổng TCP hay UDP sẽ đi kèm với một VIPnhư cổng TCP 80 được dành cho luồng dữ liệu của web Một VIP sẽ có ít nhất mộtmáy chủ thực sự được gán địa chỉ IP đó và máy chủ này sẽ làm nhiệm vụ phân phốiluồng dữ liệu được chuyển đến Thường thường thì sẽ có vài máy chủ và VIP sẽ dàn
Trang 6đều luồng dữ liệu đến cho các máy chủ bằng cách sử dụng các metric hoặc các phươngthức được mô tả trong phần “Active - Active Scenario” sau đây.
Các máy chủ (Servers): Máy chủ chạy một dịch vụ được chia sẻ tải giữa các dịch vụ
khác Máy chủ thường được ám chỉ tới các máy chủ HTTP, mặc dù các máy chủ kháchoặc ngay cả những dịch vụ khác có liên quan Một máy chủ thường có một địa chỉ IP
và một cổng TCP/UDP gắn liền với nó và không có địa chỉ IP công khai (điều này cònphụ thuộc vào topo của mạng)
Nhóm (Groups): Dùng để chỉ một nhóm các máy chủ được cân bằng tải Các thuật
ngữ như “farm” hoặc “server farm” có cùng một ý nghĩa với thuật ngữ này
Cấp độ người dùng truy nhập (User - Access Levels): Là một nhóm các quyền được
gán cho một người dùng nào đó khi đăng nhập vào một thiết bị cân bằng tải Khôngchỉ những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy nhập khácnhau, mà hầu hết các dịch vụ cũng sẽ có những cách thức truy nhập rất khác nhau.Cách triển khai phổ biến nhất là của Cisco, cung cấp truy nhập dựa trên tài khoảnngười dùng (cho phép cả tài khoản superuser) Một phương thức phổ biến khác là cáchthức truy cập cấp độ người dùng được dùng trong các hệ thống Unix
Read-only: Cấp độ truy cập chỉ đọc (Read-only) không cho phép bất kỳ một
thay đổi nào được thực hiện Một người dùng có quyền chỉ đọc chỉ có thể xemcác thiết đặt, các cấu hình, và nhiều thứ khác nữa nhưng không thể thực hiệnđược bất kỳ một thay đổi nào cả Một tài khoản như thế được sử dụng để xemcác thống kê hiệu suất hoạt động của thiết bị.Truy nhập chỉ đọc thường là cấp
độ truy cập đầu tiên của một người dùng khi đăng nhập vào hệ thống trước khithay đổi sang các chế độ với quyền truy cập cao hơn
Superuser: Superuser là cấp độ truy cập cho phép người dùng có đầy đủ quyền
điều khiển hệ thống Superuser có thể thêm các tài khoản khác, xóa file, cấuhình lại hệ thống với bất kỳ tham số nào
Các cấp độ khác: Rất nhiều sản phẩm cung cấp thêm một vài cấp độ người
dùng trung gian ở giữa hai cấp độ trên, có những quyền giới hạn trên hệ thống
Giải pháp dự phòng (Redundancy)
Giải pháp dự phòng rất đơn giản: nếu một thiết bị gặp trục trặc, thiết bị đó sẽđược thay thế bởi một thiết bị khác mà không hoặc gây ít ảnh hưởng nhất đến hoạtđộng của toàn bộ hệ thống Thiết bị được thay thế sẽ thực hiện những chức năng giốngnhư thiết bị bị thay thế Hầu hết các thiết bị trên thị trường đều có khả năng này
Trang 7Có một vài cách để thực hiện khả năng này Cách thông thường nhất là sử dụnghai thiết bị Một giao thức sẽ được sử dụng bởi một trong hai thiết bị để kiểm tra tìnhtrạng hoạt động của thiết bị còn lại Trong một vài tình huống, cả hai thiết bị đều hoạtđộng, đáp ứng các luồng dữ liệu đến Trong một vài tình huống khác, sẽ chỉ có mộtthiết bị hoạt động chính, thiết bị còn lại sẽ được sử dụng trong tình huống hỏng hóchoặc trục trặc.
Vai trò của việc dự phòng
Trong giải pháp dự phòng, tồn tại một quan hệ là active - standby Một thiết bị,hay còn gọi là thiết bị đang hoạt động thực hiện một vài hoặc đầy đủ các chức năngchính, trong khi đó thiết bị dự phòng sẽ đợi để thực hiện những chức năng này Mốiquan hệ này cũng có thể được gọi là mối quan hệ master/slave
Trong những tình huống nhất định, cả hai thiết bị sẽ là chủ (master) trong mộtvài chức năng và làm phục vụ (slave) trong một vài chức năng khác nhằm phân tán tải.Cũng trong một vài tình huống khác, cả hai thiết bị đều là chủ (master) của tất cả cácchức năng được chia sẻ giữa hai thiết bị Quan hệ này còn được gọi là quan hệ active -active
Kịch bản Active - Standby (hoạt động - chờ)
Kịch bản dự phòng hoạt động - chờ là cách dễ nhất để thực hiện Một thiết bị sẽnhận toàn bộ luồng dữ liệu đến, trong khi đó thiết bị còn lại sẽ chờ trong các tìnhhuống trục trặc
Hình 2.1: Kịch bản Active – Standby
Trang 8Nếu thiết bị đang hoạt động gặp trục trặc, một thiết bị kia sẽ xác định trục trặc
và nhận xử lý toàn bộ luồng dữ liệu đến
Hình 2.2: Hoạt động của kịch bản Active - Standby
Kịch bản Active - Active
Có một vài biến thể của kịch bản này Trong tất cả các trường hợp, cả hai thiết
bị đều chấp nhận xử lý luồng dữ liệu đến Trong tình huống một trong hai thiết bị gặptrục trặc thì thiết bị còn lại sẽ nhận thực thi luôn cả những chức năng của thiết bị gặptrục trặc
Trong một biến thể khác, VIPs được phân phối giữa hai thiết bị cân bằng tải(Load Balancer - LB) để chia sẻ luồng dữ liệu đến VIP 1 đến LB A, VIP 2 đến LB B.Xem hình 2 - 3
Trang 9Hình 2.3: Kịch bản Active-Active
Trong một biến thể khác, cả hai VIPs sẽ đều trả lời trên cả hai LB với một giaothức phá vỡ sự hạn chế rằng cả hai LB sẽ không có cùng một địa chỉ IP
Hình 2.4: Hoạt động của kịch bản Active-Active
Trong tất cả các kịch bản active - active, nếu một LB gặp trục trặc, các VIP cònlại sẽ tiếp tục trả lời trên LB còn lại Những thiết bị còn lại sẽ thực thi hết tất cả cácchức năng Hình 2-5
Trang 101.3.2 Hoạt động của hệ thống cân bằng tải server
Ở phần trên đã tìm hiểu về các khái niệm và các thành phần cơ bản của hệthống cân bằng tải server Phần tiếp theo này sẽ trình bày SLB hoạt động như thế nàonhìn trên khía cạnh mạng Mô hình SLB đơn giản được mô tả như ở hình dưới đây
Hình 2.5: Hệ thống SLB đơn giảnSLB 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 servernhấ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ácclient, 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ầnrấ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ộtnhó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ânphố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ốisao 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 hoặc rời khỏinhóm Đối với các ứng dụng như Web server, có rất nhiều client và thời gian mà cácyê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ốitả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ấpkhả nǎng đáp ứng nhanh khi nhóm server có thay đổi
Trang 11Cá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ạngthái hoạt động của nó (gọi là heartbeat message) tới các host khác trong nhóm đồngthờ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ụ chocá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
1.3.3 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ếntrú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ạysong 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 hosttrong 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ỉ IPchí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ênmỗ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ởihost đó 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áchost 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ânphố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 địnhtuyế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ảiphá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ũngtǎ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ựatrê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ượng250Mbit/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ánhoà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ộtnhó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) hoặc các bộ tập trung (hub) của mạng con trong việc đồngthờ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ươngphá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
Trang 12streaming media, do tỉ lệ lưu lượng đến chỉ chiếm một phần rất nhỏ trong tổng lưulượ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ớnquá 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ếunhiề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ácmạng LAN ảo cho từng nhóm không được thực hiện Trong quá trình nhận gói, việctriển khai của SLB 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ậncá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 DriverInterface Specification) nhận gói tiếp theo Trong quá trình gửi gói, SLB cũng tǎngcườ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, SLBthiế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
1.3.4 Phân phối lưu lượng trong SLB
Như ta có thể thấy, luồng dữ liệu từ người dùng cuối tới thiết bị cân bằng tải,tới máy chủ thực sự phía sau và sau đó quay ngược trở lại người dùng cuối Phần này
sẽ phân chia quá trình đi của gói tin trên từng đoạn mạng để giúp cho việc hiểu rõ SLBhoạt động như thế nào
SLB hoạt động bởi việc điều khiển gói tin trước và sau khi nó tới server thực sựphía sau Việc này thực hiện một cách đơn giản bởi việc sử dụng địa chỉ IP đích vànguồn tại lớp 3 trong hoạt động sử lý được biết đến như là NAT (Network AddressTranslation)
Trang 13Hình 2.6: Hành trình của một gói dữ liệuTrong Hình 2.6, ta có thể thấy một gói dữ liệu có địa chỉ nguồn là208.185.43.202 địa chỉ đích là 192.168.0.200 Bộ định tuyến sử dụng các thông tin này
để chuyển tiếp dữ liệu trên mạng qua các trạm trung gian tới đích Một vấn đề có tínhchất quan trọng sống còn với SLB nói riêng và mạng TCP/IP nói chung là, khi gửi mộtgói dữ liệu tới một địa chỉ đích, gói dữ liệu đó cần phải có báo nhận lại với cùng địachỉ nguồn và đích hay nói một cách khác, khi gửi một gói tin tới một máy đích, máyđích phải gửi ngược trở lại máy gửi với địa chỉ đích là máy gửi và địa chỉ nguồn là địachỉ của chính máy nhận, nếu từ một địa chỉ khác gói dữ liệu sẽ bị loại bỏ Nguyên tắcnày không có ý nghĩa quan trọng với gói tin UDP do UDP sử dụng giao thức khônghướng nối (Connectionless) Mặc dù vậy, phổ biến các SLB dựa trên giao thức hướngnối TCP
Để sáng tỏ SLB hoạt động cụ thể như thế nào cùng xét một ví dụ cụ thể về cáchthức một người dùng cuối truy cập tới máy chủ web đặt trong hệ thống SLB
Như ta có thể thấy ở hình 2.6 một máy khách có địa chỉ 208.185.43.202, mộtVIP có địa chỉ 192.168.0.200 và máy chủ web thực sự có địa chỉ 192.168.0.100 Đểduyệt web, người dùng cuối sử dụng một URL xác định vị trí của website cái mà ánh
xạ tới địa chỉ của VIP là 192.168.0.200 Gói dữ liệu với địa chỉ nguồn 208.185.43.202
và địa chỉ đích là 192.168.0.200 Thiết bị cân bằng tải thay vì trả lời yêu cầu từ máykhách, nó lưu lại gói dữ liệu và viết lại thông tin điều khiển trong gói dữ liệu bằng việcthay đổi địa chỉ đích trong gói dữ liệu thành 192.168.0.100 sao cho chuyển tiếp đượcgói dữ liệu tới máy chủ web thật có địa chỉ 192.168.0.100 Như vậy trong giai đoạn 2này địa nguồn là 208.185.43.202 và đích là 192.168.0.100 Máy chủ thực khi nhậnđược yêu cầu sẽ gửi thông tin phản hồi tới người dùng cuối Trong giai đoạn 3 này địachỉ nguồn trở thành 192.168.0.100 và đích trở thành 208.185.43.202, như vậy nảy sinhmột vấn đề Người dùng sẽ bỏ qua gói tin đáp lại từ địa chỉ 192.168.0.100 bởi kết nốikhông được gửi đến máy có địa chỉ đó mà đến địa chỉ 192.168.0.200 SLB giải quyếtvấn đề này bằng cách thay đổi đường đi mặc định của máy chủ thực và thay đổi địa chỉnguồn của gói tín thành địa chỉ của VIP 192.168.0.200 trước khi gửi trở lại máy khách.Trong giai đoạn 4 này địa chỉ nguồn là 192.168.0.200 và đích là 208.185.43.202 Vớilần thay đổi thông tin cuối này, gói dữ liệu đã hoàn thành chuyến đi và khởi tạo thànhcông một kết nối Nhìn từ phía máy khách, nó dường như chỉ là một kết nối thôngthường tới đúng một máy chủ, mà không hề biết trong thực tế có thể có một vài đến