Luận văn Công nghệ cân bằng tải server

LỜI CẢM ƠN 3

DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT 4

DANH MỤC CÁC HÌNH VẼ 5

MỞ ĐẦU 6

CHƯƠNG 1: CẤU TRÚC MẠNG 7

1.1. Định nghĩa mạng máy tính 7

1.2. Kiến trúc mạng máy tính 8

1.2.1. Topo mạng 8

1.2.2. Giao thức mạng 9

1.3. Phân loại mạng máy tính 10

1.3.1 Mạng cục bộ (Local Area Networks - LAN) 10

1.3.2. Mạng diện rộng (Wide Area Networks - WAN) 11

1.3.3. Mạng đô thị (MAN) 12

1.3.4. Mạng lưu trữ (SAN) 13

1.3.5 Mạng riêng ảo (VPN) 13

1.4. Mô hình OSI 14

1.5. Mô hình OSI với hệ thống cân bằng tải 15

CHƯƠNG 2: 17

TỔNG QUAN VỀ HỆ THỐNG CÂN BẰNG TẢI SERVER 17

2.1 Tại sao phải xây dựng hệ thống cân bằng tải? 17

2.1.1.So sánh hệ thống cân bằng tải và hệ thống thông thường 18

2.2.Các giải pháp chia tải trên thế giới 19

2.2.2. Chia tải nhờ proxy 20

 

2.2.3. Chia tải nhờ thiết bị chia kết nối 20

2.3. Các thành phần của SLB 21

2.3.1. Chức năng của các thành phần trong SLB 21

2.3.3. Hoạt động của hệ thống cân bằng tải server 30

2.3.4. Kiến trúc hệ thống cân bằng tải 31

2.3.5 Phân phối lưu lượng trong SLB 33

2.3.6. Thuật toán cân bằng tải 38

2.3.7. Quá trình hội tụ của SLB 39

2.3.7. Hiệu suất của SLB 40

CHƯƠNG 3: 42

TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG 42

SERVER LOAD BALANCING 42

3.1. Giải pháp SLB dựa trên luân chuyển vòng DNS 42

3.2. Đánh giá SLB dựa trên luân chuyển vòng DNS 44

3.2.1. Ưu điểm của phương pháp luân chuyển vòng DNS 44

3.2.2. Nhược điểm của phương pháp này 44

3.3. Demo giải pháp SLB dựa trên DNS round robin 46

Cân bằng tải máy chủ web 46

KẾT LUẬN 49

Tài liệu tham khảo 50

doc50 trang | Chia sẻ: maiphuongdc | Lượt xem: 3282 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn 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
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. VRRP Giao thức dự phòng phổ biến nhất là giao thức VRRP (Virtual Router Redundancy Protocol). Đây là một chuẩn mở và các thiết bị được cho là hỗ trợ VRRP sẽ đều phù hợp đối với các đặc điểm được mô tả trong RFC 2338. Hình 2.5: Hoạt động của VRRP Mỗi một thiết bị trong một cặp gửi đi các packet và nhận phản hồi từ các thiết bị còn lại. Nếu không nhận được phản hồi từ các thiết bị khác thì thiết bị này sẽ đánh giá là thiết bị kia bị vô hiệu hóa và bắt đầu thực hiện tiếp quản tất cả các chức năng. Chúng ta không cần nắm rõ tất cả các chi tiết bên trong của giao thức VRRP, tuy nhiên một vài đặc điểm của giao thức này cũng cần được nắm rõ. VRRP sử dụng cổng UDP 1985 để gửi đi các packet tới địa chỉ multicast là 225.0.0.2. Những chi tiết này sẽ rất hữu ích trong khi làm việc với các bộ lọc IP hoặc các thiết bị có chức năng tường lửa. VRRP đòi hỏi cả hai thiết bị đều có thể giao tiếp được với nhau. Nếu như cô lập một trong hai thiết bị đó với thiết bị còn lại thì mỗi thiết bị đó sẽ xác định thiết bị đã chết và tiếp quản trạng thái master. Trường hợp này có gây ra những lỗi nghiêm trọng trong mạng bởi vì xung đột địa chỉ IP hoặc các vấn đề khác sẽ xảy ra khi cả hai thiết bị đều nghĩ rằng chúng đang là thiết bị đang hoạt động trong kịch bản active - standby. xxRP Có một vài phiên bản thương mại của giao thức VRRP và tên của chúng đều kết thúc bằng “RP” như ESRP của Extreme Network (Extreme Standby Router Protocol) hay HSRP (Hot Standby Routing Protocol) của Cisco. Mặc dù các giao thức này có một vài điểm khác biệt so với chuẩn tuy nhiên tất cả chúng đều thực thi những chức năng cơ bản nhất. Cáp Fail-Over Một phương pháp khác để xác định thiết bị gặp trục trặc giữa một cặp thiết bị là cáp fail-over. Cách này sử dụng một giao thức kiểm tra trên một đường serial nối giữa một cặp LB. Nếu cáp fail-over bị ngắt, nó sẽ gây ra tình huống là cả hai thiết bị đều nghĩ rằng mình đang hoạt động và đều đặt trạng thái master. Cũng giống như đối với VRRP, điều này cũng sẽ gây ra các vấn đề nghiêm trọng đối với mạng. STP (Spanning-Tree Protocol) là một giao thức dự phòng cho lớp 2 nhằm phòng ngừa việc lặp kết nối. STP xác định độ ưu tiên cho những cổng được cho trước, và khi tồn tại nhiều đường đi cho luồng dữ liệu đến, chỉ có cổng với độ ưu tiên cao nhất mới được hoạt động, tất cả các cổng còn lại sẽ bị tắt. Stateful Fail-Over (Fail-Over có trạng thái) Một vấn đề xuất hiện trong tình huống Fail-Over là nếu như một thiết bị gặp trục trặc thì tất cả các kết nối TCP đang hoạt động đều bị reset và như thế thông tin về sequence number bị mất. Kết quả là thông báo mạng bị lỗi sẽ được hiển thị trên trình duyệt của bạn. Và dĩ nhiên, nếu như bạn đang triển khai một vài dạng kết nối liên tục thì thông tin cũng sẽ bị reset (một kịch bản tồi cho các ứng dụng dạng web-store). Một vài nhà cung cấp đưa ra một tính năng đó là stateful fail-over (fail-over có trạng thái). Tính năng này sẽ lưu giữ thông tin về các session cũng như các thông tin liên tục trên cả thiết bị đang hoạt động và thiết bị dự phòng. Nếu thiết bị chính đang hoạt động gặp trục trặc thì thiết bị dự phòng sẽ có tất cả các thông tin cần thiết và như thế dịch vụ sẽ không bị đứt đoạn giữa chừng. Và như vậy người dùng sẽ không nhận biết được điều gì đang xảy ra. Tính liên tục (Persistence) Sự liên tục là hành động giữ cho luồng dữ liệu đến cuả một người dùng xác định sẽ chỉ đến một máy chủ duy nhất. Trong khi thiết bị SLB có thể có một vài máy để lựa chọn thì nó sẽ luôn giữ luồng dữ liệu đến của một người dùng đến một máy chủ duy nhất. Điều này đặc biệt quan trọng đối với các ứng dụng kiểu web-store - cho phép người dùng điền các thông tin mua bán và những thông tin này chỉ được lưu lại trên một máy tính duy nhất. Có một số cách để thực hiện kết nối liên tục tuy nhiên mỗi cách đều có những ưu và nhược điểm nhất định. Kiểm tra dịch vụ (Service Checking) Một nhiệm vụ của thiết bị SLB là nhận biết khi nào server hoặc dịch vụ bị treo và loại bỏ server đó ra khỏi danh sách quay vòng. Tính năng này còn được gọi là kiểm tra tình trạng (Health Checking). Có một số cách để thực hiện việc kiểm tra này từ cách đơn giản nhất như ping kiểm tra, kiểm tra cổng (kiểm tra xem cổng 80 có trả lời hay không) hoặc kiểm tra nội dung trong trường hợp web server được truy vấn cho các phản hồi đặc biệt nào đó. Một thiết bị SLB sẽ chạy kiểm tra các dịch vụ một cách liên tiếp, quan những khoảng thời gian được người dùng định nghĩa sẵn. Thuật toán cân bằng tải (Load Balancing Algorithm) Tùy theo những yêu cầu nhất định của người dùng mà có một số cách thức phân tán tải giữa các nhóm server sử dụng một metric cho sẵn. Các cách thức đó dựa trên các thuật toán được lập trình sẵn trong thiết bị. Các cách thức này chạy ở lớp trên cùng và kết hợp được với bất kỳ một cách thức duy trì tính liên tục nào. Chúng được gán cho những VIP riêng lẻ. Cơ sở hạ tầng cung cấp Hạ tầng cơ sở mạng là sự kết hợp của các mạng thành phần cung cấp kết nối tới Internet, Extranet hoặc Intranet cho máy chủ web. Nó kết nối giữa các máy chủ web và người sử dụng dịch vụ. Có hai cách để thực hiện điều này: tại một địa điểm được kiểm soát bởi một site hoặc một địa điểm được duy trì bởi một colocation / nhà cung cấp dịch vụ hosting cho các công ty. Trung tâm dữ liệu: Các site của chúng ta dù chạy ở các mạng cục bộ hay chạy trên máy chủ của các nhà cung cấp hosting thì chúng đều được đặt tại các data center. Data Center là một khái niệm dùng để chỉ một khu vực có độ an toàn cao, môi trường được điều tiết (thường sử dụng điều hòa không khí), các thiết bị phòng cháy chữa cháy không sử dụng nước (như Halon hoặc FM200) và hệ thống các UPS lưu trữ điện năng. Số tiền được đầu tư vào đây có thể là một khía cạnh để xác định chất lượng của một data center. Leased Line: Một site có thể chạy với một hoặc nhiều các kết nối leased line của một hay nhiều nhà cung cấp dịch vụ. Leased line đơn giản có thể là các đường DSL cũng có thể rất phức tạp như sử dụng nhiều đường OC3s chạy trên các phiên BGP đầy đủ tới nhiều nhà sử dụng. Lợi ích mà Leased line đem lại là người chủ có toàn quyền điều khiển và truy cập vào các thiết bị của mình. Hình 2 - 6 là một ví dụ một cách sử dụng leased line phổ biến: một điểm kết nối ra Internet thông qua 2 đường DS-3 (45Mbps) của hai nhà cung cấp dịch vụ khác nhau. Site này có thể chạy BGP trên cả hai đường kết nối này để dự phòng trong trường hợp một trong hai đường gặp trục trặc. Colocation Hình 2.6 Mô tả Colocation Colocation là một dịch vụ cho phép bạn lắp đặt và sắp xếp các máy chủ của mình tại địa điểm của nhà cung cấp dịch vụ. Thông thường là các rack hoặc các lồng an ninh. Nhà cung cấp sẽ đảm bảo an toàn, cung cấp điện năng, điều hòa không khí cũng như băng thông cho các thiết bị của bạn. Những nhà cung cấp dịch vụ này sẽ cho phép các thiết bị của bạn kết nối tới các đường kết nối backbone của họ thông qua “network drop” thường là sử dụng kết nối Ethernet. Điểm lợi của cách này là băng thông của nhà cung cấp dịch vụ thường có khả năng mở rộng hơn là những gì bạn có với các thiết bị của mình. Nếu bạn muốn mở rộng băng thông từ nhà cung cấp dịch vụ, bạn chỉ cần yêu cầu nhà cung cấp hoặc nâng cấp các kết nối Ethernet cùa mình. Điều này sẽ không tốn quá nhi Còn nếu khi bạn sử dụng Leased line thì bạn phải mất từ 30 ngày đến 6 tháng để yêu cầu công ty viễn thông tăng thêm băng thông cho đường kết nối của mình như đường T-1 (1,5 Mbps) hoặc DS-3 (45 Mbps). Với các đường kết nối có băng thông lớn hơn thì sẽ cần thời gian lâu hơn. Colocation là một dịch vụ được ưa chuộng hiện nay bởi các yếu tố giá cả và khả năng mở rộng mà nó đem lại. Dịch vụ này sẽ tốn ít chi phí và dễ dàng triển khai hơn đối với các công ty vì các công ty sẽ không cần phải quan tâm đến data center cũng như là các đường kết nối. Các đường kết nối mạng thường thường rất phức tạp, có liên quan đến các điểm ngang hàng, các leased line tới các nhà cung cấp, và có thể là chính đường backbone của bạn. Thông thường, tất cả các site chỉ cần quan tâm đến network drop từ nhà cung cấp dịch vụ. 2.3.3. 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.7: 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. 2.3.4. 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. 2.3.5 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õ SLB hoạ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 Address Translation). Hình 2.8: Hành trình của một gói dữ liệu Trong Hình 2.3, 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ính chấ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ột gó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 địa chỉ 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à địa chỉ 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ắc này không có ý nghĩa quan trọng với gói tin UDP do UDP sử dụng giao thức không hướng nối (Connectionless). Mặc dù vậy, phổ biến các SLB dựa trên giao thức hướng nố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ách thứ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.3. một máy khách có địa chỉ 208.185.43.202, một VIP 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áy khá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ệc thay đổi địa chỉ đích trong gói dữ liệu thành 192.168.0.100 sao cho chuyển tiếp được gó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 2 nà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 địa chỉ nguồn trở thành 192.168.0.100 và đích trở thành 208.185.43.202, như vậy nảy sinh mộ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ối không được gửi đến máy có địa chỉ đó mà đến địa chỉ 192.168.0.200. SLB giải quyết vấ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ới lầ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ành cô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ông thườ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 hàng trăm máy chủ thực sự phía sau trả lời yêu cầu của nó. Có thể hình dung các bước theo mô tả ở bảng dưới đây. Direct Server Return DSR là một trong các phương pháp phân phối lưu lượng của các thiết bị cân bằng tải từ các kết nối bên ngoài. Phương pháp phân phối này làm tăng sự thực thi của thiết bị cân bằng tải bởi việc giảm một cách đáng kể lưu lượng đi qua thiết bị và quá trình xử lý viết lại thông tin điều khiển trong gói dữ liệu như các bước ở phần trên. DSR làm điều đó bởi việc bỏ qua giai đoạn 3 trong bảng xử lý ở trên. Bởi việc lợi dụng một máy chủ thực phía trong gửi ra ngoài một gói dữ liệu với địa chỉ nguồn đã được viết lại là địa chỉ nguồn của VIP (trong trường hợp của này là 192.168.0.200). DSR thực hiện điều đó bằng cách điều khiển khung dữ liệu tại lớp 2 để thực hiện SLB. Xử lý đó được biết đến như là MAT (MAC Address Translation). Để hiểu xử lý đó và cách DSR làm việc như thế nào trước hết cần xem xét một số đặc tính của packets tại lớp 2 và mối liên quan của nó tới SLB. Địa chỉ vật lý của Card mạng (Network Interface Card – NIC): Đó là một số 48 bit, thường được biểu diễn bằng 12 số hexa (cơ số 16), trong đó 24 bit đầu là mã số của công ty sản xuất Card mạng, còn 24 bit sau là số seri của từng Card mạng đối với một hãng sản xuất. Như vậy người ta bảo đảm không có hai Card mạng nào trùng nhau về địa chỉ vật lý, nói chính xác hơn là số “Identification” của từng Card mạng. Các số Identification này được lưu trong một chip ROM gắn trên mỗi Card mạng ngay từ khi sản xuất, nên còn gọi là “Burnt-in Address”, do đó người dùng không thể thay đổi được. Trên một mạng Ethernet, địa chỉ MAC giúp cho gói tin IP tìm đúng thiết bị vật lý cần nhận gói tin. DSR sử dụng sự kết hợp của MAT và một máy chủ được cấu hình đặc biệt để thực thi SLB mà không đi ra qua thiết bị cân bằng tải. Một máy chủ thực sự đã được cấu hình với một địa chỉ như cách làm việc thông thường, nhưng nó cũng được cấu hình với địa chỉ IP của VIP. Theo nguyên tắc hoạt động của mạng thì không thể tồn tại hai máy có cùng một địa chỉ IP bởi vì hai địa chỉ MAC không thể kết hợp tới cùng một địa chỉ IP. Để giải quyết vấn đề này, thay vì việc cấu hình địa chỉ IP của VIP tới giao diện mạng của máy chủ thực thì ta kết hợp nó với giao diên loopback. Giao diện loopback là một giao diện ảo sử dụng cho việc truyền thông bên trong của máy chủ và thông thường không có tác động tới cấu hình hay hoạt động của máy chủ. Địa chỉ IP của giao diện loopback thường là 127.0.0.1, mặc dù vậy có thể cấu hình nhiều địa chỉ IP trên cùng một giao diện (thường được biết đến như địa chỉ IP bí danh) và giao diện loopback cũng không nằm ngoài khả năng đó. Như vậy địa chỉ của VIP có thể được

Các file đính kèm theo tài liệu này:

  • docCng ngh7879 cn b7857ng t7843i server.doc