Web Server Load Balancing

1. Giới thiệu

Cơ sở hạ tầng CNTT đang đóng một vai trò ngày càng quan trọng trong sự thành công của một doanh nghiệp. Thị phần, khách hàng hài lòng với sản phẩm của công ty và hình ảnh công ty tất cả những yếu tố này có thể do website của doanh nghiệp đó chiếm một phần quan trọng. Mạng lưới các máy chủ hiện nay thường xuyên được sử dụng để lưu trữ ERP, thương mại điện tử và vô số các ứng dụng khác. Nền tảng của các trang web này, các chiến lược kinh doanh, cơ sở hạ tầng tốt sẽ cung cấp hiệu suất cao, tính sẵn sàng cao, và các giải pháp an toàn và khả năng mở rộng để hỗ trợ tất cả các ứng dụng.

Vì vậy một yêu cầu đặt ra cho hệ thống web server của các doanh nghiệp hiện nay là phải đảm bảo cho hệ thông luôn luôn hoạt động thông suốt. Tuy nhiên đối với những website lớn hiện nay yêu cầu này đang bị đe dọa nghiêm trọng, bởi số lượng người dùng kết nối vào hệ thống trên cùng một thời điểm ngày càng lớn. Năng lực xử lý của một server đơn thuần không còn khả năng đáp ứng yêu cầu của tất cả người dùng. Vì vậy, người ta phải tính đến xây dựng từng cụm server chia tải để đảm bảo đáp ứng được yêu cầu của người dùng.

WEB  SERVER LOAD BLANCING 1

 

2. Lợi ích của giải pháp Load Balancing

Server Load Balancing (máy chủ cân bằng tải) là một quá trình phân phối các yêu cầu dịch vụ trên một nhóm các máy chủ. Server Load Balancing (máy chủ cân bằng tải) ngày càng trở nên quan trọng trong hệ thống cơ sở hạ tầng mạng trong doanh nghiệp:

- Tăng cường khả năng mở rộng.

- Nâng cao hiệu suất.

- Tính sẵn sàng cao và khắc phục sự cố.

Nhiều ứng dụng chuyên sâu có quy mô lớn, vì vậy đòi hỏi các máy chủ phải có sự cân bằng tải cho nhau mới có thể chạy tốt các ứng dụng như vậy. Cả doanh nghiệp và nhà cung cấp dịch vụ cần sự linh hoạt để triển khai thêm các máy chủ một cách nhanh chóng để đáp ứng được nhu cầu xử lý công việc trong doanh nghiệp. Server Load Balancing làm cho nhiều máy chủ xuất hiện như là một máy chủ duy nhất, một dịch vụ đơn ảo, phân phối các yêu cầu người sử dụng trong các máy chủ.

Hãy tượng tượng máy chủ xử lý 1 yêu cầu của client mất khoảng 3s, vậy sẽ như thế nào nếu có khoảng 10.000 yêu cầu được gửi đến đồng thời tới một máy chủ? Load Balancing sẽ chịu trách nhiệm phân phối 10.000 yêu cầu này cho một nhóm máy chủ cùng xử lý. Mỗi máy chủ sẽ nhận được số lượng yêu cầu dựa vào khả năng xử lý của nó vào thời điểm đó. Qua đó giúp việc xử lý các yêu cầu đồng thời của nhiều client được nhanh chóng và không gây nên hiện tượng quá tải cho một máy chủ riêng biệt.

Lợi ích thứ ba của cân bằng tải máy chủ là khả năng cải thiện tính sẵn sàng ứng dụng. Nếu một ứng dụng hoặc máy chủ không thành công, cân bằng tải có thể tự động phân phối lại yêu cầu dịch vụ người dùng cuối đến các máy chủ khác trong một nhóm xử lý. Khi một máy chủ nào trong nhóm có vấn đề thì các session đang được nó xử lý sẽ tự động chuyển qua cho các máy chủ khác thực hiện mà client không bị mất session. Ngoài ra việc xây dựng mô hình load balancing giúp cho công tác bảo trì của nhân viên kỹ thuật thuận lợi hơn, họ có thể tiến hành bào trì từng bước mà không gây gián đoán đến dịch vụ của mình.

3. Các phương pháp triển khai Load Balancing

Có 2 phương pháp cơ bản để triển khai load balancing cho web server như sau:

- 3.1 Luân chuyển DNS

 web--server-load-blancing-2

Để cân bằng tải bằng DNS, máy chủ DNS phải duy trình một số địa chỉ IP khác nhau cho cùng một tên site. Nhiều địa chỉ IP thể hiện nhiều máy trong một cluster, tất cả trong số chúng đều được map đến một tên site logic. Trong ví dụ của chúng ta, www.vdo.com.vn có thể được cấu hình trên ba máy chủ trong một cluster với các địa chỉ IP dưới đây:

210.211.120.1

210.211.120.2

210.211.120.3

Trong trường hợp này, máy chủ DNS được maps như sau:

www.vdo.com.vn 210.211.120.1

www.vdo.com.vn 210.211.120.2

www.vdo.com.vn 210.211.120.3

Khi yêu cầu đầu tiên đến được máy chủ DNS, nó sẽ trả về địa chỉ IP 210.211.120.1, máy đầu tiên. Khi có yêu cầu thứ hai, nó sẽ trả về địa chỉ IP thứ hai: 210.211.120.1. Tiếp tục như vậy, với yêu cầu thứ tư, địa chỉ IP đầu tiên lại được lặp lại.

Bằng cách sử dụng luân chuyển vòng DNS như ở trên, tất cả các yêu cầu đối với một site nào đó đều được phân phối đều đến tất cả các máy trong cluster. Chính vì vậy, với phương pháp cân bằng tải này, tất cả các nút trong cluster đều được sử dụng.

- 3.2 Sử dụng các bộ cân bằng tải bằng phần cứng

o Về kỹ thuật : hệ thống sẽ bao gồm các hệ thống con:

1. Web server

Đây là hệ thống public, phục vụ cho mục đích marketing, quảng bá đưa hình ảnh hoạt động, sản phẩm của công ty đến với mọi người.

Hệ thống này, về kỹ thuật, cho phép tất cả người dùng Internet đều có thể tìm kiếm thông tin, trao đổi thông tin với website của bạn. Do vậy, cần phải đảm bảo về tốc độ truy cập, tính ổn định.

2. Database Server

Hệ thống Database chung để Web server access vào lấy dữ liệu và hiển thị nội dung trên website.

Đây là hệ thống chứa mọi thông tin cho hoạt động cả Public & nội bộ công ty.

Do vậy, hệ thống DB phải đủ mạnh, ổn định & an toàn dữ liệu.

3. Proxy server (Load Balancing)

Đây là hệ thống chuyển tiếp thông tin và kiểm soát thông tin, tạo sự an toàn cho server web, database server.

Chức năng Load Balancing (LB) cho các web server sẽ được cài đặt trên máy chủ Proxy này.

o II. Mô hình kết nối:

WEB  SERVER LOAD BLANCING 3

-

Mô hình giải pháp high availability và load balancing cho website

o Thiết bị và các yêu cầu khác:

3 IP PUBLIC :

• IP WAN 1 : Sẽ được gán cho LB1

• IP WAN 2 : Gán cho LB2

• IP WAN 3 : Sử dụng cho Virtual IP ( Người dùng sẽ truy cập đến các Webserver thông qua địa chỉ này )

Cần 4 Server :

• 2 Server đóng vai trò control việc load balancing :

Mỗi Server cần có 2 Interface .

Vì là nơi chuyển traffic chính nên yêu cầu throughput cho network traffic cao . Khả năng throughput này dựa trên CPU và RAM .

• 2 Server đóng vai trò Website

Lưu trữ thông tin website trên đây .

Trên 2 Server ta có có thể setup mysql để làm database .

Để đảm việc đồng bộ giữa 2 database trên 2 server này luôn giống nhau , ta có thể thiết lập giải pháp replicate mysql .

o Cách thức hoạt động:

Ta sẽ có 2 Server đảm nhận vai trò là LoadBalancer và Firewall .

Load Balancer :

• 1 Server đóng vai trò là active. ( ở đây là LB1)

• Server còn lại giữ vai trò standby. ( LB2 )

• Khi bên ngoài truy cập đến website thông qua địa chỉ : IP WAN3 . sẽ được redirect theo đường dẫn (mũi tên màu đen) đến server LB1 ( Active ). LB1 sẽ tự động thực hiện nắm giữ việc load balancing tới 2 Web Server .

• Khi Server LB1 không còn khả năng phục vụ , lúc này server LB2 sẽ được tự động chuyển lên Active tiếp tục nắm giữ việc load balancing đến 2 Web Server , đảm bảo cho việc truy cập đến website liên tục đối với người dùng internet ( đường dẫn mũi tên màu đỏ ) .

• Khi Server LB1 up lên lại , vai trò sẽ được tự động chuyển lại cho LB1 .

• Bằng cách này ta có thể đảm bảo độ sẵn sàng cao và cân bằng tải cho website .

Firewall :

• Các Web Server sẽ được đặt trong vùng DMZ được bảo vệ bởi LoadBalancer ( Nhờ vào Firewall được cài đặt trên Load Balancer )

Mô hình 1:

WEB  SERVER LOAD BLANCING 4

 

Mô hình này thích hợp cho trường hợp :

- Dữ liệu trong database lớn và yêu cầu bảo mật cao

- Web Server thực thi Read và Write liên tục đến Database.

Với mô hình trên :

. Web Server và Database chạy độc lập trên mỗi Server vật lý .

. Có thể triển khai cấu hình phần cứng thích hợp cho Web Server và Database Server .

. Đảm bảo Secure . Trường hợp Hacker tấn công nắm quyền kiểm soát trên Web Server =>Vẫn còn phải thao tac kết nối đến Database Server

- Việc Replicate giữa 2 Database Server sẽ không ảnh hưởng nhiều đến khả năng hoạt động của Web Server ( Do chạy độc lập ) .

- Tăng khả năng chịu tải của Web Server ( Do không phải share resource với database )

- Việc truy xuất dữ liệu chỉ trong mạng LAN và không ảnh hưởng đến 2 Load Balancer .

Mô hình này ta đặt Database và Web trên đồng thời mỗi Server .

Mô hình này áp dụng trong trường hợp dữ liệu database thuộc vào dạng ít hoặc trung bình . Nhưng đòi hỏi truy cập vào web nhanh và luôn sẵn sàng ( số lượng Web Server lên đến 4 )

Với mô hình trên , lượng request từ Internet sẽ được phân tải đến 4 Server.

- Database trên mỗi Server sẽ đồng bộ với nhau . ( Lên đến 4 )

- Lúc này , do Load Balancer phải chịu tải lên đến 4 Server => Yêu cầu cấu hình mạnh cho 2 máy LoadBalancer .

Ngoài ra hiện nay còn có những thiết bị phần cứng load balancer chuyên dụng như F5 BigIP cho hiệu quả rất cao. Tuy nhiên, đi kèm với đó là chi phí bỏ ra cho các thiết bị này cũng không hề nhỏ mà không phải công ty nào cũng có thể đâu tư được. Nắm bắt được thực trạng đó nên ngoài việc cho thuê server vật lý để xây dựng hệ thống Load Balancing. Trên hệ thống cloud VPS của ViettelIDC cũng tích hợp tính năng load balancer để cung cấp cho KH. Sử dụng tính năng này KH sẽ tiết kiệm được rất nhiều chi phí khi xây dựng hệ thống load balancing cho web server của mình.

4. Kết Luận

Server Load Balancing là một kỹ thuật mạnh mẽ để nâng cao tính sẵn sàng ứng dụng và hiệu quả trong việc cung cấp dịch vụ, các nhà cung cấp dịch vụ web cung cấp nội dung và mạng lưới doanh nghiệp, thực hiện trọn vẹn nhưng cũng có thể làm tăng chi phí và độ phức tạp mạng. Bên cạnh những ưu thế từ việc ứng dụng Server Load Balancing và các thiết bị không dây, nó còn có hạn chế là nếu hoạt động ở tốc độ cao cũng có thể tạo ra nghẽn cổ chai của riêng mình.

Extreme Networks cung cấp các lợi ích chính của máy chủ cân bằng tải, giúp doanh nghiệp tiết kiệm chi phí và làm giảm độ phức tạp giúp hệ thống đạt được hiệu suất cao khi làm việc. Bằng cách tích hợp đầy đủ máy chủ cân bằng tải và wire-speed trên nhiều Layer giúp hệ thống website của doanh nghiệp luôn ổn định và luôn trực tuyến, mang lại hiệu quả tốt nhất cho hệ thống IT trong doanh nghiệp.