Giới thiệu load balancing là gì?
Đầu tiên hỏi tiếng anh load balancing là gì? Dịch tiếng việt còn gọi cân bằng tải, là thành phần chính của cơ sở hạ tầng có sẵn cao thường được sử dụng để cải thiện hiệu suất và độ tin cậy của các trang web, ứng dụng, cơ sở dữ liệu và các dịch vụ khác bằng cách phân phối khối lượng công việc trên nhiều máy chủ.
Thiết bị cân bằng tải ; Kemp Loadmaster X1 ; Kemp Loadmaster X3 ; Kemp Loaddmaster X15 ; Kemp Loadmaster X25 ; Thiết bị cân bằng tải Kemp Loadmaster 2600 ; Thiết bị cân bằng tải Kemp Loadmaster 3600 ; Kemp Loadmaster X40 ; Kemp Loadmaster LM XHC-25G ; Kemp LM-XHC-100G ; Kemp Loadmaster X40M
Cơ sở hạ tầng web không có cân bằng tải có thể trông giống như sau:
Trong ví dụ này, người dùng kết nối trực tiếp với máy chủ web, tại yourdomain.com. Nếu máy chủ web đơn này bị hỏng, người dùng sẽ không thể truy cập trang web nữa. Ngoài ra, nếu nhiều người dùng cố gắng truy cập vào máy chủ cùng một lúc và không thể xử lý tải, họ có thể gặp phải thời gian tải chậm hoặc có thể không kết nối được.
Điểm duy nhất của thất bại có thể được giảm nhẹ bằng cách giới thiệu một bộ cân bằng tải và ít nhất một máy chủ web bổ sung trên phần cuối. Thông thường, tất cả các máy chủ phụ trợ sẽ cung cấp nội dung giống nhau để người dùng nhận được nội dung nhất quán bất kể máy chủ nào phản hồi.
Trong ví dụ minh họa ở trên, người dùng truy cập trình cân bằng tải, chuyển tiếp yêu cầu của người dùng tới máy chủ phụ trợ, sau đó phản hồi trực tiếp yêu cầu của người dùng. Trong trường hợp này, điểm duy nhất của sự thất bại bây giờ là chính cân bằng tải. Điều này có thể được giảm nhẹ bằng cách giới thiệu một cân bằng tải thứ hai, nhưng trước khi chúng ta thảo luận về điều đó, chúng ta hãy khám phá cách cân bằng tải hoạt động.
Loại lưu lượng truy cập nào có thể tải cân bằng xử lý?
Quản trị viên cân bằng tải tạo quy tắc chuyển tiếp cho bốn loại lưu lượng truy cập chính:
- HTTP – Cân bằng HTTP tiêu chuẩn hướng các yêu cầu dựa trên cơ chế HTTP tiêu chuẩn. Load Balancer đặt X-Forwarded-For, X-Forwarded-Protovà X-Forwarded-Porttiêu đề để cung cấp thông tin backends về yêu cầu ban đầu.
- HTTPS – HTTPS cân bằng chức năng giống như cân bằng HTTP, với việc bổ sung mã hóa. Mã hóa được xử lý theo một trong hai cách: hoặc với SSH passthrough duy trì mã hóa tất cả các cách để phụ trợ hoặc với SSL chấm dứt mà đặt gánh nặng giải mã trên cân bằng tải nhưng gửi lưu lượng truy cập không được mã hóa để kết thúc trở lại.
- TCP – Đối với các ứng dụng không sử dụng HTTP hoặc HTTPS, lưu lượng TCP cũng có thể được cân bằng. Ví dụ, lưu lượng truy cập đến một cụm cơ sở dữ liệu có thể được lan truyền trên tất cả các máy chủ.
- UDP – Gần đây, một số cân bằng tải đã bổ sung hỗ trợ cho các giao thức internet lõi cân bằng tải như DNS và syslogd sử dụng UDP.
Các quy tắc chuyển tiếp này sẽ xác định giao thức và cổng trên chính trình cân bằng tải và ánh xạ chúng tới giao thức và cổng mà trình cân bằng tải sẽ sử dụng để định tuyến lưu lượng truy cập đến trên phần cuối.
Làm thế nào để cân bằng tải chọn máy chủ phụ trợ?
Cân bằng tải chọn máy chủ để chuyển tiếp yêu cầu dựa trên sự kết hợp của hai yếu tố. Trước tiên, họ sẽ đảm bảo rằng bất kỳ máy chủ nào họ có thể chọn thực sự phản hồi phù hợp với các yêu cầu và sau đó sử dụng quy tắc được định cấu hình trước để chọn trong số các hồ bơi lành mạnh đó.
Health Checks
Cân bằng tải chỉ nên chuyển tiếp lưu lượng truy cập đến các máy chủ phụ trợ “lành mạnh”. Để giám sát tình trạng của máy chủ phụ trợ, kiểm tra sức khỏe thường xuyên cố gắng kết nối với máy chủ phụ trợ bằng giao thức và cổng được xác định bởi quy tắc chuyển tiếp để đảm bảo rằng máy chủ đang lắng nghe. Nếu máy chủ không kiểm tra tình trạng sức khỏe, và do đó không thể phục vụ yêu cầu, nó sẽ tự động bị xóa khỏi nhóm và lưu lượng truy cập sẽ không được chuyển tiếp tới khi nó phản hồi lại kiểm tra sức khỏe.
Load Balancing Algorithms
Thuật toán cân bằng tải được sử dụng xác định máy chủ nào trong số các máy chủ lành mạnh trên phần cuối sẽ được chọn. Một vài thuật toán thường được sử dụng là:
Round Robin – Round Robin có nghĩa là các máy chủ sẽ được chọn tuần tự. Bộ cân bằng tải sẽ chọn máy chủ đầu tiên trong danh sách của nó cho yêu cầu đầu tiên, sau đó di chuyển xuống danh sách theo thứ tự, bắt đầu lại ở trên cùng khi nó đến cuối.
Least Connections – Ít nhất kết nối có nghĩa là cân bằng tải sẽ chọn máy chủ với các kết nối ít nhất và được khuyến khích khi kết quả lưu lượng truy cập trong các phiên dài hơn.
Source – Với thuật toán nguồn, trình cân bằng tải sẽ chọn máy chủ nào sẽ sử dụng dựa trên mã băm của IP nguồn của yêu cầu, chẳng hạn như địa chỉ IP của khách truy cập. Phương pháp này đảm bảo rằng một người dùng cụ thể sẽ liên tục kết nối với cùng một máy chủ.
Các thuật toán có sẵn cho quản trị viên khác nhau tùy thuộc vào công nghệ cân bằng tải cụ thể đang được sử dụng.
Làm thế nào để cân bằng tải load balancing xử lý?
Một số ứng dụng yêu cầu người dùng tiếp tục kết nối với cùng một máy chủ phụ trợ. Thuật toán nguồn tạo mối quan hệ dựa trên thông tin IP của khách hàng. Một cách khác để đạt được điều này ở cấp ứng dụng web là thông qua các phiên cố định , trong đó bộ cân bằng tải đặt cookie và tất cả các yêu cầu từ phiên đó được chuyển hướng đến cùng một máy chủ vật lý.
Cân bằng tải load balancing dư thừa
Để loại bỏ các cân bằng tải như một điểm duy nhất của sự thất bại, một cân bằng tải thứ hai có thể được kết nối với người đầu tiên để tạo thành một cụm, nơi mỗi người theo dõi sức khỏe của người khác. Mỗi loại đều có khả năng phát hiện và khôi phục lỗi.
Trong trường hợp bộ cân bằng tải chính bị lỗi, DNS phải đưa người dùng đến bộ cân bằng tải thứ hai. Bởi vì các thay đổi DNS có thể mất một khoảng thời gian đáng kể để được nhân lên trên Internet và tự động chuyển đổi dự phòng này, nhiều quản trị viên sẽ sử dụng các hệ thống cho phép tái định địa chỉ IP linh hoạt, chẳng hạn như IP nổi . Theo yêu cầu, địa chỉ IP remapping loại bỏ các vấn đề tuyên truyền và bộ nhớ đệm vốn có trong các thay đổi DNS bằng cách cung cấp một địa chỉ IP tĩnh có thể dễ dàng được ánh xạ lại khi cần. Tên miền có thể vẫn được liên kết với cùng một địa chỉ IP, trong khi chính địa chỉ IP được di chuyển giữa các máy chủ.
Đây là cách một cơ sở hạ tầng có sẵn cao bằng cách sử dụng IP nổi có thể nhìn:
Kết luận
Trong bài viết này, chúng tôi đã đưa ra một cái nhìn tổng quan về khái niệm cân bằng tải và cách chúng hoạt động nói chung. Để tìm hiểu thêm về các công nghệ cân bằng tải cụ thể, bạn có thể muốn xem
Cân bằng tải là một kỹ thuật được sử dụng để phân phối tải công việc thống nhất trên các máy chủ hoặc các tài nguyên tính toán khác để tối ưu hóa hiệu quả mạng, độ tin cậy và khả năng. Cân bằng tải được thực hiện bởi một công cụ – vật lý hoặc ảo – xác định trong thời gian thực mà máy chủ trong một hồ bơi có thể đáp ứng tốt nhất một yêu cầu khách hàng nhất định , trong khi đảm bảo lưu lượng truy cập mạng không quá áp đảo một máy chủ duy nhất.
Ngoài việc tối đa hóa dung lượng mạng và hiệu suất, cân bằng tải cung cấp chuyển đổi dự phòng . Nếu một máy chủ bị lỗi, bộ cân bằng tải ngay lập tức chuyển hướng tải công việc của nó sang máy chủ sao lưu, do đó giảm thiểu tác động đến người dùng cuối.
Cân bằng tải thường được phân loại là hỗ trợ Lớp 4 hoặc Lớp 7 . Các cân bằng tải lớp 4 phân phối lưu lượng dựa trên dữ liệu truyền tải, chẳng hạn như các địa chỉ IP và số cổng TCP (Transmission Control Protocol) . Các thiết bị cân bằng tải lớp 7 đưa ra các quyết định định tuyến dựa trên các đặc tính mức ứng dụng bao gồm thông tin tiêu đề HTTP và nội dung thực tế của thông báo, chẳng hạn như URL và cookie . Các cân bằng tải lớp 7 phổ biến hơn, nhưng các cân bằng tải lớp 4 vẫn phổ biến, đặc biệt trong các triển khai cạnh.