34
Network Load Balancing [email protected] Phan Tự Quốc Thắng Nguyễn Viết Thắng Nguyễn Việt Hà Vũ Văn Ước Phạm Văn Thịnh Phí Bá Thành Lê Minh Đức Nhóm 8

Network Load Balancing

Embed Size (px)

Citation preview

Page 1: Network Load Balancing

Network Load Balancing

Phan Tự Quốc ThắngNguyễn Viết Thắng

Nguyễn Việt HàVũ Văn Ước

Phạm Văn ThịnhPhí Bá ThànhLê Minh Đức

Nhóm 8

Page 2: Network Load Balancing

Đặt vấn đề???

Page 3: Network Load Balancing

Cân bằng tải là gì?Cân bằng tải là một hệ thống giúp làm tăng tính khả mở và tính khả dụng của một nhóm các server dùng để cung cấp dữ liệu

Cân bằng tải là một hệ thống giúp làm tăng tính khả mở và tính khả dụng của một nhóm các server dùng để cung cấp dữ liệu

Phương pháp cân bằng tải:

• Một địa chỉ IP ảo được dùng để đại diện cho nhóm các server• Yêu cầu từ client đến sẽ được phân phối hợp lý đến các server trong

nhóm

Page 4: Network Load Balancing

Các phương pháp cân bằng tải

Page 5: Network Load Balancing

Cân bằng tải bằng phần cứng

• Sử dụng các module (load balancer) cắm thêm trên các thiết bị chuyên dụng như router, switch

Page 6: Network Load Balancing

Cân bằng tải bằng phần mềm

• Sử dụng phần mềm cài song song trên các máy chủ, kết hợp nhiều server tạo thành 1 server ảo

Page 7: Network Load Balancing

• Tận dụng khả năng chia tải sẵn có trên các phần mềm proxy như ISA Proxy của Microsoft hay Squid (open source).

Cân bằng tải bằng proxy sever

Page 8: Network Load Balancing

So sánh các phương pháp

So sánh Phần cứng Phần mềm Proxy server

Khả năng theo dõi trạng thái ứng dụng

Kém Tốt Kém

Mở rộng Tốt Kém Tốt

Tăng tốc, hiệu năng sử dụng Tốt Kém Kém

Bảo mật Kém Chấp nhận được Tốt ( firewall)

Page 9: Network Load Balancing

Network Load Balancing

Page 10: Network Load Balancing

Network Load Balancing là gì?

Windows NLB:• Là một giải pháp phần mềm phân tán cho cân bằng tải• Tích hợp sẵn trong các phiên bản Window Server 200x của Microsoft

Yêu cầu cho Windows Network Load Balancing

• Mỗi máy phải có ít nhất một card mạng dành cho cân bằng tải

• Chỉ được dùng TCP/IP cho NLB adapter• Các node trong mạng NLB phải có cùng subnet

Page 11: Network Load Balancing

NLB HostNLB Host

NLB Virtual IP Address

NLB Host NLB Host NLB Host

Internet/intranet

Network Load BalancingLogical Design

• Không có điểm chịu lỗi duy nhất

• Không có hiện tượng thắt cổ chai

• Không cần thêm phần cứng đặc biệt

Quá trình xử lý các server chết trong suốt với người sử dụng

• Tăng số node theo nhu cầu sử dụng

• Tối đa 32 node cho một cluster

• Định kỳ trao đổi bản tin heartbeat

Page 12: Network Load Balancing

Phân phối tải

• Mỗi host có thể định ra mức tải mà nó xử lý hoặc tải được phân phối đều giữa các host

Page 13: Network Load Balancing

Độ khả dụng

• Độ 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

Page 14: Network Load Balancing

Kiến trúc hệ thống NLB

• Kiến trúc phần mềm phân tán hoàn toàn: NLB driver được cài đặt và chạy song song trên tất cả các host trong nhóm

• Trên mỗi host, NLB driver hoạt động như một bộ lọc giữa network adapter driver và tầng TCP/IP, điều này cho phép một phần lưu lượng mạng đến được nhận bởi host đó

• Mỗi host sẽ thực hi n những tính toán giống nhau m t cách ê ôđ c l p và quyết định nên xử lý gói yêu cầu đó hay là không.ô â

Page 15: Network Load Balancing

Kiến trúc hệ thống NLB

Page 16: Network Load Balancing

• NLB làm tăng tải trên các chuyển mạch (switch) do chiếm thêm băng thông cổng khi quảng bá phân phối lưu lượng mạng đến các host trong nhóm• Đây không phải là vấn đề trong phần lớn ứng dùng (web,

streaming media,…) do tỉ lệ lưu lượng đến switch chiếm phần nhỏ trong tổng lưu lượng mạng

• Nếu các kết nối từ client đến switch có tốc độ nhanh hơn nhiều phía server ???

• Nhiều nhóm kết nối trên cùng 1 switch mà không có biện pháp thiết lập VLAN cho từng nhóm ???

Nhược điểm NLB

Page 17: Network Load Balancing

Các chế độ hoạt độngUnicast mode: (default)• Một địa chỉ MAC ảo duy nhất đại diện cho nhóm được cấp cho card mạng vật lý

của tất cả các node trong nhóm• Không sử dụng địa chỉ MAC gốc của node• Gói dữ liệu đến được nhận bởi tất cả node trong nhóm• Chỉ một node được phép xử lý và trả lời• Các node không thể giao tiếp với nhau• Có thể sử dụng thêm một card mạng để trao đổi thông tin với các node khác

Multicast mode:• Một địa chỉ MAC multicast được cấp cho card mạng của tất cả các node• Địa chỉ MAC gốc của node vẫn được sử dụng• Loại bỏ được vấn đề sử dụng 2 card mạng• Chỉ một node được phép xử lý gói tin đến

Page 18: Network Load Balancing

Before NLBIP:10.10.10.1MAC:48-2C-6A-1E-59-3D

IP:10.10.10.2MAC:AA-9B-6A-1E-59-6E

IP:10.10.10.3MAC:58-B7-6A-1E-59-4D

IP:10.10.10.4MAC:B3-AA-6A-1E-59-5B

Node 1

Node 4

Node 3

Node 2

Page 19: Network Load Balancing

NLB with Unicast Operation ModeIP:10.10.10.1VIP:10.10.10.10MAC:48-2C-6A-1E-59-3DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.2VIP:10.10.10.10MAC:AA-9B6A-1E-59-6EVMAC:AA-BB-CC-99-88-77

IP:10.10.10.3VIP:10.10.10.10MAC:58-B7-6A-1E-59-4DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.4VIP:10.10.10.10MAC:B3-AA-6A-1E-59-5BVMAC:AA-BB-CC-99-88-77

VIP:10.10.10.10VMAC:AA-BB-CC-99-88-77

Node 1

Node 4

Node 3

Node 2

Page 20: Network Load Balancing

NLB with Unicast Operation ModeIP:10.10.10.1VIP:10.10.10.10MAC:48-2C-6A-1E-59-3DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.2VIP:10.10.10.10MAC:AA-9B6A-1E-59-6EVMAC:AA-BB-CC-99-88-77

IP:10.10.10.3VIP:10.10.10.10MAC:58-B7-6A-1E-59-4DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.4VIP:10.10.10.10MAC:B3-AA-6A-1E-59-5BVMAC:AA-BB-CC-99-88-77

VIP:10.10.10.10VMAC:AA-BB-CC-99-88-77

IP:10.10.10.90MAC:F5-D1-BB-99-68-C7

Node 3

Node 2

Node 4

Node 1

Page 21: Network Load Balancing

NLB with Multicast Operation ModeIP:10.10.10.1VIP:10.10.10.10MAC:48-2C-6A-1E-59-3DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.2VIP:10.10.10.10MAC:AA-9B6A-1E-59-6EVMAC:AA-BB-CC-99-88-77

IP:10.10.10.3VIP:10.10.10.10MAC:58-B7-6A-1E-59-4DVMAC:AA-BB-CC-99-88-77

IP:10.10.10.4VIP:10.10.10.10MAC:B3-AA-6A-1E-59-5BVMAC:AA-BB-CC-99-88-77

VIP:10.10.10.10VMAC:AA-BB-CC-99-88-77

Note: Network Device, such as switch infrastructure, must support multicast MAC addressing.

Node 2

Node 1

Node 3

Node 4

Page 22: Network Load Balancing

Tổng kết các phương pháp

Page 23: Network Load Balancing

• NLB sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ yêu cầu từ client đến các host trong nhóm• Cho phép các host đưa ra quyết định cân bằng tải một cách độc lập và

nhanh chóng cho từng gói đến• Cung cấp hiệu nǎng rất cao bao gồm cả thông lượng cao và thời gian đáp

ứng ngắn

• Khi xem xét một gói đến, tất cả các host đồng thời ánh xạ thống kê để xác định host sẽ xử lý gói đó• Dùng hàm ngẫu nhiên dựa trên IP và cổng của client cùng các thông tin

khác để tính mức ưu tiên của host• Host được chọn sẽ chuyển gói lên TCP/IP, còn lại sẽ loại bỏ gói này

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

Page 24: Network Load Balancing

• Để hoạt động cân bằng tải có độ chính xác cao, một phần tài nguyên của hệ thống dùng để đo và phản ứng trước những thay đổi của tải (cơ bản là CPU và bộ nhớ)

• Khi một host tham gia vào nhóm, nó sẽ kích hoạt quá trình hội tụ thông qua heartbeat message và hệ thống sẽ tính toán lại thuật toán cân bằng tải

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

Page 25: Network Load Balancing

• Các host trong nhóm trao đổi định kỳ các bản tin heartbeat multicast hoặc broadcast cho nhau. Điều này cho phép các host giám sát được trạng thái của nhóm

• Trong unicast, mỗi host sẽ quảng bá heartbeat theo chu kỳ. Còn trong multicast, nó sẽ phát các bản tin này ở chế độ multicast

• Bản tin NLB của Microsoft gán giá trị 0x886F, chu kỳ mặc định là 1 giây. Để khởi tạo quá trình hội tụ, mặc định cần 5 heartbeat không được nhận

Quá trình hội tụ

Page 26: Network Load Balancing

• Đánh giá hiệu năng của hệ thống NLB dựa trên 4 tiêu chí:• CPU overhead trên các host của nhóm• Thông lượng đáp ứng• Thời gian đáp ứng• Băng thông của switch

Hiệu năng cân bằng tải

Page 27: Network Load Balancing

Hiệu năng cân bằng tải

• Khi năng lực các host trong nhóm được khai thác tối đa cần bổ sung thêm host (tối đa 32 host)

• Nếu tải tiếp tục tăng cần nhiều nhóm NLB và việc phân phối lưu lượng giữa các nhóm được thực hiện bằng kỹ thuật round robin DNS• Thực tế được sử dụng cho website www.microsoft.com,

có 5 nhóm NLB, mỗi nhóm gồm 6 host và mỗi host chạy 60% năng lực tối đa

Page 28: Network Load Balancing

Demo

Page 29: Network Load Balancing

Nội dung bài demo

• Giả lập 2 website chạy trên 2 server vật lý• Cấu hình Network Load Balancing• Các bước kiểm tra

Page 30: Network Load Balancing

[email protected]

Demo trên Windows Server 2003

• Chuẩn bị 3 máy ảo Windows Server 2003 trên nền VMWare, 2 máy đóng vai trò Server, 1 máy là Client.

• Các máy ảo tắt hết Windows Firewall.

Page 31: Network Load Balancing

Demo trên Windows Server 2003

• Công việc cấu hình Network Load Balancing cũng chính là đi tạo ra một Virtual IP đại diện cho các server web.

• Cấu hình TCP/IP cho các máy ảo như sau:Server 1: 192.168.1.18 / 255.255.255.0 và Server 2: 192.168.1.19/ 255.255.255.0

• Giả lập 1 website chạy trên 2 server bằng công cụ Internet Information Services (IIS).

Page 32: Network Load Balancing

Demo trên Windows Server 2003

• Tiến hành cấu hình bằng dịch vụ Network Load Balancing có sẵn trên Windows Server 2003.

• Chọn chế độ Multicast (được khuyến cáo là sẽ ít phát sinh lỗi trong quá trình hoạt động hơn so với chế độ Unicast).

• Thiết lập Virtual IP chung cho 2 Server là 192.168.1.90• Thiết lập cổng cho 2 Server là port 79.• Chúng ta có thể quy định độ ưu tiên truy cập vào server vật lý

nào trước thông qua giá trị Priority, priority càng nhỏ thì độ ưu tiên càng cao, ở đây giá trị Priority cho 2 Server lần lượt là 1 và 2.

• + Xem kết quả xác nhận lại quá trình cấu hình NLB bằng câu lệnh wlbs query.

Page 33: Network Load Balancing

Demo trên Windows Server 2003

• Bây giờ chúng ta sẽ đi kiểm tra kết quả. Vì trong mô hình có số lượng máy ít nên ta không thể kiểm tra được khả năng cân bằng lượng truy cập vào hai máy server khi có số lượng truy cập lớn.

• Ta chỉ kiểm tra khả năng gánh tải khi một trong các máy server trục trặc không hoạt động.

• Đầu tiên đứng ở máy Client truy cập vào WebServer bằng địa chỉ 192.168.1.90

• Sau đó ngắt kết nối 1 trong 2 Server vào truy cập WebServer từ máy Client, kết quả vẫn truy cập thành công.

Page 34: Network Load Balancing

QUESTION???