Cân bằng tải lớp 4 và lớp 7


21

Tôi đang cố gắng quyết định giữa việc sử dụng giải pháp cân bằng tải lớp 4 cho trung tâm dữ liệu của tôi hay giải pháp lớp 7. Thật không may (đối với sự tỉnh táo của tôi, đó là), trường hợp sử dụng của tôi đủ đơn giản để cả hai giải pháp đều hoạt động tốt, tránh được hầu hết các điểm yếu và không thực sự sử dụng các điểm mạnh khác. Bất cứ giải pháp nào chúng ta kết thúc sử dụng, nó phải có tính khả dụng cao và thông lượng cao. Nhưng chúng tôi chỉ có kế hoạch sử dụng nó để tải số dư trên một cụm máy chủ web, không có yêu cầu nào về quản lý phiên "dính" (cookie hoặc IP), quy tắc viết lại phức tạp - hoặc, đối với vấn đề đó, mọi quy tắc viết lại tại tất cả các.

Bộ cân bằng tải sẽ được kết nối với hai bộ chuyển mạch, cả hai đều có kết nối độc lập với lớp tập hợp trung tâm dữ liệu và được hợp nhất với nhau bằng Rapid Spanning Tree và bất kỳ giao thức độc quyền nào mà các bộ chuyển mạch sử dụng để ảo hóa. Các bộ cân bằng tải cũng sẽ được liên kết chéo với nhau qua cáp chéo. Tất cả các máy chủ trong cụm được kết nối với cả hai thiết bị chuyển mạch. Tất cả những gì các bộ cân bằng tải phải làm là chỉ lưu lượng truy cập trên chúng.

Vì chỉ là HTTP, tôi có thể sử dụng giải pháp cân bằng tải lớp 7 như HAProxy hoặc nginx. Nhưng tôi cũng có thể sử dụng dự án LVS với ldirectord hoặc được giữ lại hoặc bất cứ điều gì.

Tôi đã cố gắng phá vỡ những ưu và khuyết điểm khi tôi nhìn thấy chúng, nhưng nó chỉ dừng lại ở một lần giặt. Bạn muốn giới thiệu cái gì và tại sao? Tui bỏ lỡ điều gì vậy?

Câu trả lời:


17

Một lợi ích hữu ích của "L7" như haproxy là có thể sử dụng cookie để giữ cho cùng một trình duyệt truy cập vào cùng một máy chủ phụ trợ. Điều này làm cho việc gỡ lỗi của khách hàng dễ dàng hơn nhiều.

Cân bằng L4 có thể trả lại một người dùng xung quanh trên một số máy chủ phụ trợ. (trong một số trường hợp nhất định có thể là lợi thế, nhưng theo nghĩa gỡ lỗi / định hình, sử dụng "L7" có giá trị hơn nhiều.)

EDIT: Cũng có một lợi thế tốc độ tiềm năng của việc sử dụng cân bằng HTTP. Với những người giữ tiền, khách hàng có thể thiết lập một phiên TCP duy nhất cho bộ cân bằng của bạn và sau đó gửi nhiều HIT mà không cần phải thiết lập lại các phiên TCP mới (bắt tay 3 chiều). Tương tự, nhiều LB duy trì các phiên duy trì cho các hệ thống đầu cuối loại bỏ sự cần thiết phải bắt tay tương tự ở mặt sau.

Cân bằng tải TCP nghiêm ngặt có thể không thực hiện được cả hai điều này một cách dễ dàng.

/ * FWIW: Tôi sẽ không nói "L7" hoặc "L4", tôi sẽ nói HTTP hoặc TCP. Nhưng tôi là người kiên quyết tránh sử dụng OSI để mô tả những thứ mà nó không phù hợp lắm. * /

Tôi nghĩ về cơ bản nếu bạn không chắc chắn nên triển khai cái gì, hãy đi với những gì cảm thấy đơn giản và tự nhiên với bạn. Kiểm tra nó (sử dụng băng ghế apache?) Và chắc chắn rằng nó hoạt động cho nhu cầu của bạn. Đối với tôi HTTP LB là tự nhiên hơn.


Stickiness, dựa trên cookie hoặc dựa trên IP, chắc chắn là một lợi thế của chuyển đổi L7. Nhưng đó không phải là ứng dụng của chúng tôi có thể đặc biệt sử dụng.
Scrivener

Không phải một nhược điểm của cân bằng tải mức HTTP là bạn sẽ phải có bộ cân bằng tải cấp TCP trước các bộ cân bằng HTTP để cho phép chuyển đổi dự phòng giữa hai?
Scrivener

@Scrivener - bạn không nên, không. DNS tròn có thể giải quyết vấn đề mà tôi tin, trừ khi tôi hiểu nhầm câu hỏi của bạn.
mfinni

@mfinni: DNS địa lý toàn cầu sẽ có thể trỏ đến một IP trên mỗi trung tâm dữ liệu. Tôi cần một cái gì đó để đáp ứng với IP đó.
Scrivener

Tôi hiểu rồi. Vâng, nó phụ thuộc vào khả năng của (các) thiết bị của bạn. Bạn có thể có thể tìm thấy một thiết bị có khả năng L7 có thể hoạt động theo cặp với một cụm VIP duy nhất không yêu cầu bộ cân bằng tải TCP / IP phần cứng. Nếu IIS và MS Windows NLB có thể làm điều đó, tôi tưởng tượng hầu hết các sản phẩm thương mại khác có thể làm điều đó.
mfinni

4

Do thiếu lợi thế cho bạn khi thực hiện cân bằng L7, thay vào đó tôi sẽ giải quyết cân bằng L4. Tôi là một fan hâm mộ lớn của việc giữ nó đơn giản nhất có thể, mà không phải hy sinh quá nhiều.

L7 yêu cầu bộ cân bằng kiểm tra các tiêu đề http trong các gói đang đi qua chúng để định tuyến thích hợp, thêm chi phí bổ sung và tăng độ trễ cho người dùng cuối. Nó dường như là một chi phí vô nghĩa đối với tôi nếu bạn không kiếm được gì từ nó.


0

Một số nhà cung cấp DNS có chức năng chuyển đổi dự phòng đơn giản. Bạn đã đề cập đến những yêu cầu của bạn không phải và không phải là những gì chúng có, nhưng nếu tất cả những gì bạn cần là vòng tròn với chuyển đổi dự phòng nếu có gì đó không ổn, thì bạn có thể sử dụng, ví dụ như Failover của Zoneedit.com . Tùy thuộc vào nhu cầu HA của bạn có thể đủ tốt và bạn có thể bỏ qua toàn bộ tầng trong kiến ​​trúc của mình.


Tôi ước nó thật đơn giản - chúng ta cần một cái gì đó giống như vòng tròn với thất bại, cộng với sự tách biệt về địa lý. Tuy nhiên, tất cả những điều đó không nằm trong câu hỏi, bởi vì nó được thực hiện bởi một công ty bên ngoài.
Scrivener

Ý bạn là gì - Tôi đoán ý tôi là DNS cũng được thực hiện bởi một công ty bên ngoài và một số trong số họ hỗ trợ cả cân bằng tải địa lý và chuyển đổi dự phòng dưới dạng dịch vụ DNS - hoặc bạn có nghĩa là có thêm bên thứ ba giữa bạn và nhà cung cấp DNS, hoặc là bạn không có tiếng nói trực tiếp qua DNS?
Ernest Mueller

Trước đây - chúng tôi đã thực hiện DNS với một công ty bên ngoài đang thực hiện chuyển đổi dự phòng và cân bằng tải địa lý cho các trung tâm dữ liệu khác nhau. Tôi chỉ cần tải cân bằng nó bên trong trung tâm dữ liệu.
Scrivener

Bạn có thể sử dụng cùng một vòng tròn cho máy chủ bởi máy chủ ở mặt trước, phải không? DNS để cân bằng tải vòng tròn thường được sử dụng cho một trung tâm dữ liệu; nhiều định vị địa lý là một yêu cầu lớn trên đỉnh đó.
Ernest Mueller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.