Công nghệ cân băng tải Server

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. Thậm chí ở một số đơn vị, chẳng hạn như các công ty hàng khô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ển hoạ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ác hoạ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ản xuấ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ỏng hó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ẫn hoạ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ộ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 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ề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. 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. SLB 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 luôn khả dụng trước các client. 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úc phầ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.

doc27 trang | Chia sẻ: tuandn | Lượt xem: 3109 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Công nghệ cân băng tải Server, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠ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 đó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. Thậm chí ở một số đơn vị, chẳng hạn như các công ty hàng khô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ển hoạ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ác hoạ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ản xuấ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ỏng hó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ẫn hoạ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ộ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 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ề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. 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. SLB 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 luôn khả dụng trước các client. 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úc phầ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 Kịch bản A Kịch bản B Tính sẵn sàng cao Có Không Tính mở rộng Có Khô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 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àm việ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 Các doanh nghiệp Nhà cung cấp dịch vụ ISP Trung tâm xử lý dữ liệu Chính phủ Phòng thí nghiệm 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ới cá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ũng cung 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à quen thuộc với những nhà quản trị chuyên nghiệp, có thể chia sẻ được nhiều tài nguyên trong 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 ra 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ảo mậ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ụng má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 ứng dụ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ái củ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ày thườ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ấp nhậ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ụng như 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ệu nă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ính nă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ản như DNS round-robin (đây là thuật toán chia tải phổ biến nhất và đơn giản, tuy nhiên cứ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ái củ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ành cao. 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ính chuẩ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ụng proxy), 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 yê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 quan trọ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ưu lượ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êu cầ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ình huố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 được thự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, can thiệ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 VIP như 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ột má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ối luồ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 đề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ương thứ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ác hoặ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òn phụ 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ông chỉ những nhà cung cấp thiết bị khác nhau cung cấp những cấp độ truy nhập khác nhau, 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ản ngườ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ách thứ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ể xem cá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 để xem cá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 khi thay đổ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ấu hì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ống như 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. Có 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ụng hai 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ình trạ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ột thiế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óc hoặ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ăng chính, trong khi đó thiết bị dự phòng sẽ đợi để thực hiện những chức năng này. Mối quan 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ột và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ác chứ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ình huống trục trặc. Hình 2.1: Kịch bản Active – Standby Nế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ặp trụ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ặp trụ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. Hì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 giao thứ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òn lạ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ác chức năng. Hình 2-5. 1.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ào nhì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ản SLB 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 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. 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ế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. 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) 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 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ậ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, SLB 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, SLB 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. 1.3.4 Phân phối lưu lượng trong SLB Như ta có thể thấy, luồng dữ