Quản trị mạng – Trong bài này chúng tôi sẽ giới thiệu cho các bạn về cách cấu hình tính năng Webserver Load Balancing trên Forefront TMG Server để thực hiện việc cân bằng tải các web server bên trong.
Giới thiệu
Trong bài viết này chúng tôi sẽ giới thiệu cho các bạn về cách cấu hình tính năng Webserver Load Balancing trên Forefront TMG Server để thực hiện việc cân bằng tải giữa các web server bên trong. Bên cạnh đó chúng tôi cũng sẽ giới thiệu một số vấn đề cơ bản về cân bằng tải trọng trong mạng (NLB) trong Forefront TMG và Windows Server 2008 R2 để tạo một cái nhìn khái quát về khả năng cân bằng tải của Forefront TMG và Windows Server 2008 R2.
Bắt đầu
Forefront TMG có thể phân phối lưu lượng web đến các web server được cấu hình giống nhau mà thông thường vấn đề này vẫn được thực hiện bởi bộ cân bằng tải bằng bằng phần cứng. Webserver Load Balancing có thể phân phối lưu lượng mạng đến các host khác nhau trong mạng nội bộ mà không cần sử dụng đến các chức năng NLB cũ của hệ điều hành Windows.
Bạn hoàn toàn có thể publish một thiết bị cân bằng tải bằng phần cứng để cân bằng lưu lượng web cho web server bên trong nhưng Forefront TMG web farm load balancing (tính năng cân bằng tải cho các web server của Forefront TMG) còn có rất nhiều ưu điểm khác (tuy nhiên cũng không phải không có những nhược điểm):
Một số bộ cân bằng tải bằng phần cứng sử dụng các địa chỉ source IP (địa chỉ khởi nguồn) để cân bằng các request, tuy nhiên giải pháp này có thể chỉ phù hợp với các môi trường mà ở đó các máy chủ không nằm phía sau NAT. Forefront TMG không chuyển tiếp địa chỉ IP gốc trong kịch bản publish web server chuẩn. Địa chỉ IP từ máy khách bên ngoài luôn được che dấu bằng địa chỉ IP của TMG Server. Nếu bạn muốn chuyển tiếp IP máy khách (client IP) gốc từ máy khách (client) đang request bên ngoài, thì web server đã publish sẽ phải thiết lập Default Gateway của nó là Forefront TMG, thứ không phù hợp trong một số môi trường.
Một cách làm khác để phân phối lưu lương cho các web server là sử dụng cơ chế cân bằng tải mạng (Network Load Balancing - NLB) có trong Windows. NLB cho phép phân phối lưu lượng mạng dựa trên luật (rule) của các cổng. Tất cả các nút trong nhóm NLB (NLB cluster) đều sử dụng một địa chỉ IP ảo (VIP), địa chỉ này sẽ được sử dụng bởi Forefront TMG để chuyển tiếp lưu lượng. Thuật toán NLB sẽ phân phối lưu lượng trên toàn bộ các thành viên NLB cluster.
Những cơ bản trong NLB
Có thể nói vắn tắt; NLB là một kỹ thuật cluster, không riêng cho Microsoft Windows. NLB là một phần của hệ điều hành Windows Server 200x và được sử dụng để phân phối lưu lượng mạng lên đến con số 32 host trong mạng. NLB sử dụng thuật toán phân phối để có thể cân bằng tải gửi vào với tất cả các nút trong nhóm NLB. Vì vậy, NLB có thể được sử dụng để cung cấp khả năng chuyển đổi dự phòng và cân bằng tải trọng.
Bạn có thể kích hoạt tính năng Network Load Balancing trong các phiên bản Windows Server 2008. Hình bên dưới đây hiển thị cửa sổ chương trình Windows Server 2008R2 Network Load Balancing Manager với một nút NLB.
Hình 1
NLB với Forefront TMG
Nếu có kế hoạch cân bằng tải cho các Web Server bên trong với tính năng Forefront TMG Web Server Farm Load Balancing, bạn nên lưu ý một điều rằng Forefront TMG Server có thể là một Single Point of Failure (SPOF – một điểm lỗi) khi TMG không được cân bằng tải. Forefront TMG Enterprise sử dụng NLB để cân bằng tải trọng cho TMG Server. Chúng ta hoàn toàn có thể sử dụng NLB trong chế độ tích hợp, chế độ ưu tiên và khuyến khích trong Forefront TMG. Cũng hoàn toàn có thể sử dụng NLB với Forefront TMGStandard nhưng điều này không được hỗ trợ chính thức bởi Microsoft vì có một số hạn chế.
Cơ chế cân bằng tải
Round-robin
Các yêu cầu của Webserver từ các địa chỉ IP khác nhau sẽ được phân phối tới các thành viên trong hệ thống web server (Web farm). Cơ chế round-robin bảo đảm rằng request của người dùng cho một ứng dụng web được phục vụ bởi một Web farm sẽ được phân phối ngang bằng giữa các thành viên của Web farm đang online. Khi chuyển đổi dự phòng (failover) xuất hiện, các máy chủ không đáp ứng sẽ được phát hiện và tải trọng sẽ được phân phối đến các máy chủ có trạng thái available.
Session (Cookie) based affinity
Mối quan hệ dựa trên Session (Cookie) thường được sử dụng để publish Outlook Web Access (OWA) từ Exchange Server 200x Microsoft SharePoint services/Servers. Không nên sử dụng Session affinity nếu muốn publish RPC trên các dịch vụ HTTP(S) hoặc Outlook Anywhere trong Exchange Server 2007 và cao hơn. RPC trên HTTP(S) được sử dụng để cung cấp cho các máy khách Outlook mức truy cập full đến Exchange Server từ Internet. Lưu lượng RPC sẽ được tạo hiệu ứng đường hầm thông qua cơ chế HTTPS. Với Outlook, nó không thể sử dụng mối Cookie based affinity.
IP affinity
Với IP affinity, lưu lượng web server được phân phối dựa trên IP đến tất cả các thành viên của Web farm. Nếu một Server bị lỗi trong quá trình đáp trả, lưu lượng sẽ được gửi đến một thành viên khác của Web farm.
Bạn không nên sử dụng IP affinity nếu các máy khách từ xa được đặt phía sau máy chủ NAT, điều này là vì hệ thống web server (web server farm) sẽ chỉ thấy địa chỉ IP của TMG Server. Nếu rơi vào trường hợp này, bạn nên sử dụng Session affinity nếu có thể.
IP affinity tỏ ra rất hữu dụng trong một Exchange RPC trên HTTP(S) hay cũng được gọi là kịch bản Outlook Anywhere, nơi Session affinity không thể được sử dụng, trong kịch bản publish của Exchange Active Sync, máy khách không hiểu hết HTTP 1.1.
Để tạo một luật (rule) trong publish, bạn hãy mở giao diện quản lý TMG và tìm đến mục Firewall policy và tạo một luật Web Site Publishing.
Hình 2: Cửa sổ Web publishing
Đặt tên cho chính sách mới và cho phép lưu lượng
Kích publish a server farm of load balanced Web servers.
Hình 3: Publish một hệ thống máy chủ
Do đang Publish một web server bên trong không HTTPS, nên chúng ta cần chỉ định tùy chọn thích hợp.
Hình 4: Chỉ sử dụng HTTP
Nhập vào tên Site bên trong và chỉ định đường dẫn nếu bạn muốn publish web server chỉ đến một đường cụ thể.
Các bước tiếp theo là tạo một Farm mới, nhập vào tên Farm và add các web server bên trong vào Web Server farm, như những gì bạn có thể thấy trong hình dưới, hãy chỉ định cách Forefront TMG sẽ cân bằng tải cho các request gửi đến.
Hình 5: Chỉ định thành viên Farm
Forefront TMG sẽ tạo một bộ thẩm định kết nối để kiểm tra tính có sẵn của các thành viên trong hệ thống máy chủ. Nếu một máy chủ nào đó không thể truy cập (not reachable), một cảnh báo sẽ được tạo ra. Bạn có thể tùy chỉnh các hành động cảnh báo.
Hình 6: Bộ thẩm định kết nối
Một cửa sổ mới sẽ xuất hiện và hỏi bạn xem có muốn kích hoạt rule chính sách hệ thống để cho phép các yêu cầu HTTP từ Forefront TMG đến các web server đã publish hay không. Kích Yes nếu bạn muốn điều đó.
Hình 7: Luật chính sách hệ thống
Bước tiếp theo là tạo một bộ lắng nghe (Listener), đây chính là thứ mà Forefront TMG sử dụng để lắng nghe lưu lượng gửi đến. Bài viết này chỉ tập trung vào chức năng cân bằng tải cho hệ thống máy chủ, do đó chúng tôi không giới thiệu cho bạn về thời điểm bạn publish một web server trên HTTP.
Lúc này Forefront TMG cảnh báo người dùng rằng cấu hình hiện hành có thể không an toàn khi các yêu cầu thẩm định được gửi trên HTTP.
Hình 8: Luật chính sách hệ thống
Để cho phép thẩm định máy khách với cơ chế HTTP, bạn phải cho phép điều này trong cửa sổ có các tùy chọn Advanced Authentication trong trang các thuộc tính của Listener, như thể hiện trong hình bên dưới.
Hình 9: Cho phép thẩm định máy khách với cơ chế HTTP
Sau khi tạo xong luật Webserver publishing, tìm đến trang các thuộc tính của luật và kích tab Web Farm để thẩm định cấu hình đúng.
Hình 10: Các thuộc tính của Web Farm
Kiểm tra trạng thái hệ thống web server (Web Server Farm)
Nếu bạn muốn biết một thành viên của hệ thống máy chủ nào có sẵn hay không có sẵn, Forefront TMG sẽ tự động tạo các bộ thẩm định kết nối khi bạn tạo hệ thống máy chủ web. Bộ thẩm định kết nối sẽ phát hiện ra trạng thái của thành viên trong hệ thống web server và báo cáo sự kiện này đến cấu hình cảnh báo trong TMG Server, từ đây máy chủ TMG sẽ tạo ra các thông báo giống như các thư điện tử, hay các entry trong bản ghi sự kiện,..
Các máy chủ trong hệ thống web server có thể có 5 trạng thái khác nhau:
Đây là trạng thái bình thường của một web server trong hệ thống và chỉ thị rằng máy chủ có thể truy cập và có thể chấp nhận các yêu cầu.
Out-of-service
Trạng thái này chỉ thị rằng web server không đáp trả cho bộ thẩm định kết nối bên trong trong khoảng thời gian timeout. Không yêu cầu nào được gửi đến thành viên trong hệ thống này.
Draining
Trạng thái này chỉ thị rằng web server hiện đang trong quá trình Draining. Các kết nối đang tồn tại sẽ được đóng lại nhưng các yêu cầu mới sẽ không được gửi đến máy chủ này. Tính năng này rất hữu dụng nếu bạn muốn đặt máy chủ trong Web Server Farm vào chế độ bảo trì.
Removed
Trạng thái này chỉ thị rằng web server đã được gỡ đi khởi hệ thống và không chấp nhận các yêu cầu.
Unable to verify
Chỉ thị rằng trạng thái máy chủ không thể được thẩm định.
Bảo trì web server
Nếu bạn muốn tự đặt một web server vào chế độ bảo trì, hãy truy cập vào tab Servers, chọn máy chủ đó và kích nút Drain để đưa máy chủ vào chế độ bảo trì mà Forefront TMG biết rằng chế độ này không có sẵn cho việc cân bằng các yêu cầu tải. Với session based affinity, máy chủ sẽ tiếp tục quản lý các session hiện hành nhưng sẽ không chấp nhận các kết nối mới. Nếu bạn sử dụng IP based affinity, khi đó một máy chủ đã được drain sẽ ngừng các yêu cầu đang nhận, tuy nhiên các kết nối đang tồn tại với máy chủ đó sẽ vẫn được duy trì.
Hình 11: Các máy chủ trong Web Farm
Các hành động cảnh báo
Để cấu hình các hành động cảnh báo khi các máy chủ trong hệ thống không có sẵn, tìm đến nút monitoring và trong panel nhiệm vụ và chọn Alerts properties, sau đó chỉ định hành động mà bạn muốn thực hiện khi một máy chủ trong hệ thống không có sẵn.
Hình 12: Việc cảnh báo và kiểm tra Web Farm
Kết luận
Trong bài này, chúng tôi đã cố gắng cung cấp cho các bạn một cái nhìn tổng quan nhất về cách Microsoft Forefront TMG cho phép cân bằng tải các web server nhằm cân bằng lưu lượng web cho các web server bên trong mà không cần sử dụng giải pháp Load Balancer phần cứng hay NLB (Network Load Balancing) có trong Windows Server 2008 R2. Theo quan điểm của tôi, tính năng Web Server Load Balancing của Forefront TMG là một tính năng tuyệt vời cho một số hạn chế các web server với những chức năng cơ bản.