LUẬN VĂN THẠC SỸ CNTT
Trang 1nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ côngtrình nào khác.
Tác giả luận văn ký và ghi rõ họ tên
Mai Quốc Duy
Trang 2thầy TS Võ Văn Khang đã nhiệt tình hướng dẫn tôi hoàn thành luận văn này Kể từ lúc tôi đề xuất đề tài với thầy cho tới hôm nay, thầy đã dành nhiều thời gian để hướng dẫn phương pháp nghiên cứu khoa học, xác định mục tiêu của đề tài và đặc biệt là luôn theo sát tiến độ nghiên cứu của tôi để có những góp ý kịp thời Ngoài những kiến thức thầy truyền đạt, tôi còn học được ở thầy một phong cách làm việc rất khoa học, nghiêm túc và đầy trách nhiệm.
Tiếp theo, tôi vô cùng cảm ơn anh em kỹ thuật đang làm việc tại công ty NetNam đã tạo điều kiện tốt nhất để tôi có thể ứng dụng kết quả luận văn vào môi trường thực tế Những lúc ngoài giờ, những anh em này đã cùng tôi xây dựng hệ thống test trên mạng nội bộ của công ty Chính nhờ vậy mà tôi đã có cơ hội kiểm chứng được tính hiệu quả của giải thuật cũng như chương trình cân bằng tải đã đề xuất.
Cuối cùng, tôi xin cảm ơn quý thầy cô Học viện Công nghệ Bưu chính Viễn thông đã tận tình giảng dạy, truyền đạt kiến thức nền tảng cho tôi
Xin chúc tất cả quý thầy cô và các anh em kỹ thuật tại công ty NetNam luôn tràn đầy sức khỏe và thành công trong mọi lĩnh vực!
TP.HCM, ngày 01 tháng 08 năm 2013
Học viên
Mai Quốc Duy
Trang 3MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC CHỮ VIẾT TẮT iii
DANH MỤC BẢNG iv
Chương 1 GIỚI THIỆU 1
1.1 Hiện trạng 1
1.2 Nhu cầu và xu hướng cân bằng tải 2
1.3 Mục tiêu nghiên cứu 3
1.3.1 Xây dựng một giải thuật cân bằng tải mới và hiệu quả 3
1.3.2 Xây dựng phần mềm dựa vào giải thuật đã đề xuất 4
1.4 Đối tượng và phạm vi nghiên cứu 4
1.5 Bố cục luận văn 5
Chương 2 XÂY DỰNG GIẢI THUẬT CÂN BẰNG TẢI 6
2.1 Khái niệm 6
2.2 Phân loại 9
2.3 Chức năng của cân bằng tải kết nối (link load-balancer) 10
2.4 Giải thuật và mô hình 11
2.4.1 Xoay vòng (round-robin) 11
2.4.2 Xoay vòng theo trọng số (Weighted round-robin ) 13
2.4.3 Độ ưu tiên (Priority) 15
2.4.4 Tràn băng thông (overflow) 17
2.4.5 Băng thông sử dụng thấp nhất (Least used) 19
2.4.6 Băng thông sử dụng thấp nhất theo trọng số (Weighted least used) 21
2.4.6 Số kết nối thấp nhất (Least connection) 23
2.4.7 Số kết nối thấp nhất theo trọng số (Weighted least connection) 25
2.4.8 Độ trễ thấp nhất (“Lowest latency” hay “Fastest repsonse time”) 27
2.4.8 Cố định hướng truyền dữ liệu (Enforced) 29
2.5 Giải thuật đề xuất 30
2.5.1 Đặt vấn đề 30
2.5.2 Ví dụ so sánh giữa giải thuật đã biết và giải thuật đề xuất 31
2.5.3 Nguyên lý hoạt động của giải thuật mới – “Best QoS” 33
Trang 42.5.4 Đánh giá giải thuật “Best QoS” 34
Chương 3 XÂY DỰNG PHẦN MỀM CÂN BẰNG TẢI DỰA VÀO GIẢI THUẬT ĐỀ XUẤT 35
3.1 Ý tưởng chương trình 35
3.2 Nội dung chương trình 36
3.2.1 Class Main 37
3.2.2 Class Routing 39
3.2.3 Class Loadbalancer 44
3.2.4 Class DatabaseUpdate 51
3.3 Đánh giá chương trình 57
Chương 4 KẾT QUẢ TEST TRONG MÔI TRƯỜNG THỬ NGHIỆM VÀ THỰC TẾ 58
4.1 Mô hình test 58
4.1.1 Mô hình lab ảo VMWare 58
4.1.2 Mô hình lab thực tế tại công ty đang làm việc 59
4.2 Các bước cài đặt, triển khai 60
4.3 Kịch bản test 60
4.3.1 Kịch bản 1: Test khả năng chọn hướng có Best QoS 60
4.3.2 Kịch bản 2: Test khả năng tự thay đổi hướng truyền dữ liệu khi Best QoS thay đổi hoặc băng thông sắp nghẽn 63
TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN 65
1 Kết quả đạt được 65
2 Vấn đề tồn đọng 65
3 Hướng phát triển 65
TÀI LIỆU THAM KHẢO 66
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
Trang 6DANH MỤC BẢ
Bảng 1.1: Vài giải thuật cân bằng tải hiện nay 2YBảng 2.1: Cách phân phối gói tin trong giải thuật “xoay vòng” (round-robin) 12Bảng 2 2:Cách phân phối gói tin trong giải thuật “xoay vòng theo trọng số”
(weighted round-robin) 14Bảng 2.3: Vài giải thuật cân bằng tải thông dụng hiện nay 3
Bảng 4.1: Danh sách thiết bị cần thiết cho lab ảo VMWare 59
Trang 7DANH MỤC HÌNH
Hình 2.1: Công việc của bộ cân tải (load-balancer) 7
Hình 2.2: Ví dụ về cân bằng tải kết nối (link load-balancer) 9
Hình 2.3: Tổng quát về cân bằng tải kết nối (link load-balancer) 10
Hình 2.4: Giải thuật “xoay vòng” (round-robin) 11
Hình 2.5: Giải thuật “xoay vòng theo trọng số” (weighted round-robin) 13
Hình 2.6: Giải thuật “độ ưu tiên” (priority) 15
Hình 2.7: Nguyên lý hoạt động của giải thuật “độ ưu tiên” (priority) 16
Hình 2.8: Giải thuật “tràn băng thông” (overflow) 17
Hình 2.9: Nguyên lý hoạt động của giải thuật “tràn băng thông” (overflow) 18
Hình 2.10: Giải thuật “băng thông sử dụng thấp nhất” (least-used) 19
Hình 2.11: Nguyên lý hoạt động của giải thuật “băng thông sử dụng thấp nhất” (least-used) 20
Hình 2.12: Giải thuật “băng thông sử dụng thấp nhất theo trọng số” (Weighted least used) 21
Hình 2.13: Nguyên lý hoạt động của giải thuật “băng thông sử dụng thấp nhất theo trọng số” (Weighted least used) 22
Hình 2.14: Giải thuật “số kết nối thấp nhất” (Least Connection) 23
Hình 2.15: Nguyên lý hoạt động của giải thuật “số kết nối thấp nhất” (Least Connection) 24
Hình 2.16: Giải thuật “Số kết nối thấp nhất theo trọng số” (weighted least connection) 25
Hình 2.17: Nguyên lý hoạt động của giải thuật “Số kết nối thấp nhất theo trọng số” (weighted least connection) 26
Hình 2.18: Giải thuật “độ trễ thấp nhất” (lowest latency) 27
Hình 2.19: Nguyên lý hoạt động của giải thuật “độ trễ thấp nhất” (lowest latency) 28 Hình 2.20: Giải thuật “cố định hướng truyền dữ liệu” (enforced) 29
Hình 2.21: So sánh giải thuật đã biết và giải thuật đề xuất 31
Hình 2.22: Tóm tắt nguyên lý hoạt động của giải thuật đề xuất – Best QoS 33
Trang 8Hình 2.23: Chi tiết nguyên lý hoạt động của giải thuật đề xuất – Best QoS 34Y
Hình 3.1: Lưu đồ xử lý của chương trình “Best QoS” 36
Hình 3.2: Phương thức main() của chương trình 38
Hình 3.3: Phương thức command() của class Main 38
Hình 3.4: Phương thức isInteger() của class Main 39
Hình 3.5: Phương thức showRoutingRule() của class Routing 40
Hình 3.6: Phương thức deleteRoutingRule() của class Routing 40
Hình 3.7: Phương thức getCurrentRoutingRule() của class Routing 41
Hình 3.8: Phương thức isReachable() của class Routing 42
Hình 3.9: Phương thức parseInterfaceFromCurrentRoutingRule() của class Routing .42
Hình 3.10: Phương thức parseSubnetFromIP() của class Routing 43
Hình 3.11: Phương thức parseLoss() của class Routing 43
Hình 3.12: Phương thức parseLatencyAndJitter() của class Routing 43
Hình 3.13: Phương thức parseQoSFromPing() của class Routing 44
Hình 3.14: Phương thức findBestGateway() của class Loadbalancer 46
Hình 3.15: Phương thức getCurrentBandwidth() của class Loadbalancer 47
Hình 3.16: Phương thức checkIntefaceHasAvailableBW() của class Loadbalancer48 Hình 3.17: Phương thức parseDest() của class Loadbalancer 48
Hình 3.18: Phương thức run() của class Loadbalancer 50
Hình 3.19: Phương thức readFile() của class DatabaseUpdate 52
Hình 3.20: Phương thức writeFile() của class DatabaseUpdate 52
Hình 3.21: Phương thức parseIPFromDatabaseLine() của class DatabaseUpdate 52
Hình 3.22: Phương thức parseQoSFromDatabaseLine() của class DatabaseUpdate53 Hình 3.23: Phương thức lookupDatabase() của class DatabaseUpdate 54
Hình 3.24: Phương thức compareQoSInDatabaseAndBest QoS() của class DatabaseUpdate 55
Hình 3.25: Phương thức deleteLineInDatabaseFile() của class DatabaseUpdate 55
Hình 3.26: Phương thức addInfoToGuessDabase() của class DatabaseUpdate 56
Trang 9Hình 3 27: Phương thức run() của class DatabaseUpdate 5
Hình 4.1: Mô hình lab ảo VMWare 58Hình 4.2: Mô hình lab thật tại công ty NetNam 60Hình 4.3: Kịch bản 1 (Test khả năng chọn hướng có Best QoS) 60Hình 4.4: Kịch bản 2 (Test khả năng tự thay đổi hướng truyền dữ liệu khi Best QoS
thay đổi hoặc băng thông sắp nghẽn) 63
Trang 10Chương 1
GIỚI THIỆU
Chương 1 giới thiệu chung về hiện trạng, nhu cầu và xu hướng chọn lựa giải thuật cân bằng tải trong hệ thống mạng Chương này cũng trình bày mục tiêu, đối tượng và phạm vi nghiên cứu Cuối chương nêu tóm tắt bố cục của toàn luận văn.
1.1 Hiện trạng
Ngày nay, mạng internet là một thành phần không thể thiếu của hầu hết cácdoanh nghiệp Nhờ có internet mà các công ty có thể giao dịch kinh doanh với thếgiới bên ngoài một cách nhanh chóng, hiệu quả Nói cách khác, internet đã trở thànhmột nhu cầu thiết yếu cho sự phát triển của các tổ chức Nếu hệ thống internet củadoanh nghiệp bị lỗi, chắc chắn hoạt động kinh doanh sẽ gặp rất nhiều khó khăn Do
đó, các doanh nghiệp thường thuê ít nhất hai đường truyền internet từ hai ISP khácnhau để có thể dự phòng lẫn nhau
Sau khi có nhiều đường truyền internet rồi thì doanh nghiệp lại phải nghĩcách để sử dụng tối ưu các đường đã thuê Nếu như chọn giải pháp một đườngchính, đường còn lại làm dự phòng thì đường truyền chính của công ty có thể bịnghẽn vào giờ cao điểm trong khi đường dự phòng lại đang không có lưu lượng.Trong trường hợp này, doanh nghiệp buộc phải chi thêm tiền để thuê thêm băngthông từ nhà cung cấp Giải pháp này xem ra lãng phí về kinh tế và kém hiệu quả về
kỹ thuật Có một giải pháp khác mà hiện nay các doanh nghiệp thường sử dụng để
có thể khắc phục được các hạn chế ở trường hợp vừa trình bày đó là: xây dựng hệthống cân bằng tải
Nhờ cơ chế cân bằng tải mà doanh nghiệp có thể sử dụng đồng thời cácđường truyền internet mà họ đã thuê, trong khi với giải pháp “một đường chính,đường còn lại dự phòng” thì không làm được điều này Đó chính là lý do mà ngàynay có rất nhiều doanh nghiệp sử dụng cơ chế cân bằng tải cho đường truyền
Trang 11internet để vừa tiết kiệm chi phí cho doanh nghiệp trong thời buổi kinh doanh khókhăn hiện nay, vừa tạo sự ổn định cho các hoạt động kinh doanh qua internet.
1.2 Nhu cầu và xu hướng cân bằng tải
Cân bằng tải đã giúp doanh nghiệp sử dụng “đồng thời” các đường truyềninternet mà họ đã thuê Trước đây, tiện ích này đã làm thõa mãn được nhu cầu củadoanh nghiệp Nhưng hiện tại thì chưa, bởi theo quy luật phát triển thì đòi hỏi củacon người sẽ luôn tăng theo thời gian Cái họ cần là cơ chế cân bằng tải phải thôngminh hơn nữa Cụ thể là phải sử dụng “tối ưu” các đường truyền internet mà họ đãthuê (không phải chỉ là sử dụng “đồng thời” như trước đây)
Do đó đã có rất nhiều giải thuật cân bằng tải lần lượt được phát minh để cóthể đáp ứng nhu cầu thực tế Bảng 1.1 dưới đây trình bày một số loại phổ biến hiệnnay:
Bảng 1.1: Vài giải thuật cân bằng tải hiện nay
STT Tên giải thuật cân bằng tải Tiêu chí cân bằng tải
1 Round robin (RR)
Băng thông
2 Weighted round robin (WRR)
3 Least used
Loại 1, 2 và 3 trong bảng 1.1 chỉ dựa vào yếu tố băng thông để cân tải Baloại này thuộc nhóm “cân tải để lưu lượng chạy đồng thời” Trong khi đó, loại 4 lạidựa vào tiêu chí độ trễ để truyền lưu lượng Nếu chỉ dựa vào thời gian đáp ứng thôithì chưa thể xếp loại này vào nhóm “cân tải để lưu lượng chạy hiệu quả” (vì giả sửđường truyền 1 luôn có độ trễ tốt nhất thì tất cả lưu lượng đều đi qua đường truyền1? Nếu như thế thì không thể hiện sự cân tải trong giải thuật này Hoặc nếu đườngtruyền 1 có độ trễ tốt nhưng tỉ lệ rớt gói cao thì sao? )
Tóm lại, hiện nay chưa có một giải thuật nào thuộc nhóm “cân tải để lưulượng chạy hiệu quả” Bắt kịp xu thế hiện tại, cũng như nắm được mong muốn củacác doanh nghiệp, trong luận văn này em sẽ trình bày một giải thuật mới với mụctiêu sẽ cân tải thật sự hiệu quả hơn các giải thuật đã được biết trước đây
Trang 121.3 Mục tiêu nghiên cứu
1.3.1 Xây dựng một giải thuật cân bằng tải mới và hiệu quả.
Giải thuật này có 2 đặc điểm chính đó là:
Tỉ lệ rớt gói thấp nhất & Băng thông còn trống
Độ trễ thấp nhất & Băng thông còn trống
Biến thiên độ trễ thấp nhất & Băng thông còn trống
Băng thông còn trống nhiều nhất
Default-route
Ghi chú:
Người dùng có thể thay đổi thứ tự độ ưu tiên tùy theo nhu cầu
Giải thuật trên được xây dựng dựa trên nhu cầu thực tế của kháchhàng NetNam (nơi sinh viên thực hiện đề tài đang công tác) Cáckhách hàng này thường sử dụng nhiều đường truyền của các ISP khácnhau và họ mong muốn có một giải thuật thông minh có thể tự độngchọn đường tốt nhất để truyền gói tin mà vẫn đảm bảo không nghẽnbăng thông
Trang 131.3.2 Xây dựng phần mềm dựa vào giải thuật đã đề xuất
Mục tiêu:
Để công ty đang làm việc, tức công ty cổ phần NetNam (chuyên cungcấp dịch vụ internet) có thể sử dụng trong việc tư vấn/bán dịch vụ cânbằng tải cho các khách hàng có nhu cầu
Để tất cả mọi người trên thế giới có thể sử dụng và cải tiến (Nếu công
ty đang làm cho phép công bố rộng rãi)Cách thu thập các thông số của đường truyền:
Đối với thông số độ trễ, tỉ lệ rớt gói, biến thiên độ trễ đến một IP đích
cụ thể: sẽ sử dụng giao thức ICMP Trong trường hợp IP đích cấmICMP thì chính sách cân bằng tải sẽ dựa vào thông số băng thông (bỏqua các thông số còn lại)
Đối với thông số bandwidth hiện hành của mỗi interface: Sẽ có mộtscript để tính toán băng thông hiện tại dựa vào các file liên quan trong
Xây dựng chương trình bằng ngôn ngữ Java
Hệ điều hành để chạy chương trình là linux (CentOS)
Hệ thống có khả năng cân bằng tải dựa vào nhiều tiêu chí, bao gồm:
o Độ trễ (delay)
o Biến thiên độ trễ (jitter)
o Tỉ lệ mất gói (loss rate)
o Băng thông (bandwidth)
Trang 141.5 Bố cục luận văn
Chương 1: Giới thiệu
Chương 1 giới thiệu chung về hiện trạng, nhu cầu và xu hướng chọn lựa giảithuật cân bằng tải trong hệ thống mạng Chương này cũng trình bày mục tiêu, đốitượng và phạm vi nghiên cứu Cuối chương nêu tóm tắt bố cục của toàn luận văn
Chương 2: Xây dựng giải thuật cân bằng tải
Chương 2 sẽ trình bày các khái niệm, đặc điểm, chức năng của cân bằng tải.Đồng thời cũng liệt kê các giải thuật và mô hình cân bằng tải thông dụng hiện nay.Sau đó, sẽ đưa ra các nhận xét ưu điểm và khuyết điểm của từng loại Tiếp theo sẽtrình bày ý tưởng, nguyên lý hoạt động của giải thuật đề xuất Cuối cùng là phầnđánh giá tính hiệu quả của giải thuật mới
Chương 3: Xây dựng phần mềm cân bằng tải dựa vào giải thuật đề xuất
Chương 3 thể hiện ý tưởng chương trình và nội dung code đã hiện thực Phầncuối cùng sẽ đánh giá tính hiệu quả của phần mềm Sau đó đưa ra hướng phát triểnsau này cho các bản thương mại
Chương 4: Kết quả test trong môi trường thử nghiệm và thực tế
Chương 4 trình bày mô hình test trong môi trường lab ảo VMWare và trongmôi trường thực tế tại doanh nghiệp đang công tác Tiếp theo là các kịch bản test đểđánh giá tính năng của chương trình Sau đó sẽ trình bày sơ lược các bước cài đặt,triển khai Phần còn lại bao gồm kết quả đạt được, vấn đề tồn đọng và hướng pháttriển cho chương trình
Tổng kết và hướng phát triển
Trong phần này sẽ trình bày ba nội dung chính đó là:
Kết quả đạt được của luận văn
Những vấn đề còn tồn tại
Hướng phát triển
Trang 15Chương 2
XÂY DỰNG GIẢI THUẬT CÂN BẰNG TẢI
Chương 2 sẽ trình bày các khái niệm, đặc điểm, chức năng của cân bằng tải Đồng thời cũng liệt kê các giải thuật và mô hình cân bằng tải thông dụng hiện nay Sau đó, sẽ đưa ra các nhận xét ưu điểm và khuyết điểm của từng loại Tiếp theo sẽ trình bày ý tưởng, nguyên lý hoạt động của giải thuật đề xuất Cuối cùng là phần đánh giá tính hiệu quả của giải thuật mới.
2.1 Khái niệm
Cân bằng tải là sự chia sẻ công việc cho hai hay nhiều đối tượng cùng tínhnăng xử lý Đối tượng ở đây có thể là máy chủ, CPU, đường truyền internet, thiết bịlưu trữ,…Tác vụ cân bằng tải có thể được thực hiện bởi phần cứng hoặc phần mềmhoặc cả hai Và tác dụng của cân bằng tải đó là:
a) Tối ưu tài nguyên (tránh quá tải)
Tất cả tài nguyên được sử dụng gần như “triệt để” Ví dụ, nếu các kết nốiinternet của doanh nghiệp được cân bằng tải thì lưu lượng được phân phối trên tất
cả các hướng, không có trạng thái “đường nghẽn, đường trống” Tổng quát như sau:
o Gọi khối lượng công việc cần xử lý là M
o Gọi số đối tượng có thể xử lý công việc là N
o Gọi công suất xử lý công việc của đối tượng Ni là: Wi (với i là số thứ tựcủa đối tượng)
o Khi đó, bộ cân tải sẽ tối ưu tài nguyên bằng cách chia nhỏ công việc Mthành N phần Pi sao cho Pi/Pi+1 = Wi/Wi+1
Trang 16Hình 2.1: Công việc của bộ cân tải (load-balancer)
Như vậy, khối lượng công việc đã được chia nhỏ và phân phối theo tỉ lệtương ứng với công suất xử lý của các đối tượng Nếu như không có cân bằng tải thìtoàn bộ khối lượng lớn công việc M chỉ dồn về một đối tượng xử lý và làm đốitượng này quá tải, trong khi các đối tượng khác thì đang ở trạng thái rỗi Tóm lại,nhờ việc cân tải mà “tài nguyên xử lý công việc” được khai thác một cách triệt để
b) Rút ngắn thời gian xử lý
Một tác vụ phức tạp nếu được chia thành nhiều phần nhỏ, sau đó chia sẻ chonhiều đối tượng cùng xử lý thì chắc chắn thời gian xử lý sẽ nhanh hơn rất nhiều.Việc chia công việc cho các CPU cùng xử lý là một ví dụ rõ nhất về vấn đề này.Tổng quát như sau:
o Gọi khối lượng công việc cần xử lý là M
o Gọi số đối tượng có thể xử lý công việc là N
o Gọi thời gian cần thiết để một đối tượng có thể xử lý xong công việc M là T
o Giả sử các đối tượng có công suất ngang nhau tức W1 = W2 = = Wn
Trang 17o Khi đó, bộ cân tải sẽ rút ngắn thời gian xử lý công việc M bằng cách chianhỏ công việc M thành N phần bằng nhau, rồi phân phối đều cho N đốitượng xử lý Khi đó, thời gian hoàn tất công việc sẽ là T/N So với trườnghợp không dùng cân bằng tải thì cơ chế này đã giảm thời gian xử lý khoảng
N lần
c) Tăng tính dự phòng
Khi một đối tượng bị lỗi, các đối tượng khác sẽ lập tức thay thế để đảm bảocông việc không bị gián đoạn Giả sử một doanh nghiệp cần thuê 4 Mbps leased-line Họ đang cân nhắc chọn một trong hai giải pháp sau: Một là sử dụng duy nhấtmột đường truyền 4 Mbps; hai là sử dụng hai đường, trong đó mỗi đường bằng 2Mbps Rõ ràng giải pháp thứ hai sẽ tốt hơn vì nếu được kết hợp với tính năng cânbằng tải thì độ sẵn sàng (hay khả năng dự phòng) sẽ cao hơn so với giải pháp đầutiên Tổng quát như sau:
o Gọi khối lượng công việc cần xử lý là M
o Gọi số đối tượng có thể xử lý công việc là N
o Nếu đối tượng Ni bị lỗi thì N-1 đối tượng còn lại có thể thay thế để xử lýcông việc Đây là một đặc điểm quan trọng để bảo đảm luồng công việcvẫn được liên tục khi có vài trong số các đối tượng bị lỗi
d) Tăng khả năng mở rộng
Cơ chế cân bằng tải luôn cho phép bổ sung các đối tượng xử lý vào hệ thống
mà không làm ảnh hưởng đến tính năng Ví dụ người dùng có thể bổ sung thêm haihay nhiều đường truyền internet vào hệ thống cân bằng tải hiện tại để phù hợp với
sự phát triển hoặc nhu cầu của công ty Tổng quát như sau:
o Gọi khối lượng công việc cần xử lý là M
o Gọi số đối tượng có thể xử lý công việc là N
o Gọi số đối tượng có thể xử lý công việc cần bổ sung vào hệ thống là K
o Trước khi bổ sung, công việc được phân phối cho N đối tượng Sau khi
bổ sung, công việc được thực hiện nhanh hơn vì số lượng đối tượng xử lý
Trang 18công việc được tăng lên (tức N + K đối tượng) Tóm lại, nguyên lý cânbằng tải vẫn sẽ thực hiện đúng chức năng của mình ngay cả khi hệ thốngđược mở rộng bằng cách bổ sung một hoặc nhiều đối tượng xử lý.
2.2 Phân loại
Cân bằng tải được chia thành rất nhiều loại Ví dụ như cân bằng tải kết nối(link load-balancer), cân bằng tải máy chủ (server load-balancer), cân bằng tải CPU(CPU load-balancer)…
Trong phạm vi đề tài chỉ đề cập đến cân bằng tải kết nối (link balancer) Đây là loại phân chia lưu lượng qua các đường truyền mạng Giả sử, một
load-công ty thuê hai đường truyền internet có tốc độ ngang nhau; và tổng lưu lượng truycập internet của công ty tại một thời điểm là 40 Mbps Khi đó, hệ thống cân bằng tải
sẽ tự động chia đôi lưu lượng người dùng qua mỗi đường truyền (tức 20 Mbps sẽđược truyền qua mỗi đường)
Mạng LAN
Hình 2.2: Ví dụ về cân bằng tải kết nối (link load-balancer)
Trang 192.3 Chức năng của cân bằng tải kết nối (link load-balancer)
Hình 2.3: Tổng quát về cân bằng tải kết nối (link load-balancer)
Cân bằng tải kết nối (link load-balancer) thực hiện việc phân phối băngthông giữa các đường truyền internet hoặc giữa các đường truyền nội bộ Loại nàythường bao gồm các chức năng sau:
a) Dự phòng kết nối (link fail-over)
Trong trường hợp tất cả các kết nối đều hoạt động tốt, lưu lượng được phânphối trên tất cả các kết nối Nếu có một hoặc nhiều kết nối bị lỗi thì lưu lượng tựđộng dồn qua các kết nối còn lại (tạm gọi là “danh sách kết nối hoạt động tốt”).Ngay khi kết nối lỗi nào đó được phục hồi thì thiết bị cân tải sẽ tự động bổ sung kếtnối này vào “danh sách kết nối hoạt động tốt” Điều này đảm bảo tính dự phòng chocác kết nối, nghĩa là nếu vài trong số các kết nối bị lỗi thì mạng vẫn có thể hoạtđộng được
Trang 20b) Cân tải lưu lượng (traffic balancing)
Thiết bị cân tải có nhiệm vụ phân phối lưu lượng qua các kết nối Hiện nay
có rất nhiều giải thuật cân tải để tổ chức có thể lựa chọn loại phù hợp với nhu cầu
và hiện trạng của mình Một vài giải thuật thông dụng bao gồm round-robin, leastused, fastest response time,…
c) Nhất quán phiên giao dịch (session persistence)
Đối với các loại lưu lượng đặc biệt như SIP (VoIP), HTTPS và FTP,…
Nếu tổ chức sử dụng private IP và phải NAT sang public IP tại các thiết bịnối với ISP: bộ cân tải sẽ giữ nguyên hướng truyền dữ liệu cho mỗi phiên(tức không cân tải cho các gói tin thuộc cùng phiên) Giả sử bộ cân tải thựchiện việc phân phối các gói tin cùng phiên làm việc cho các hướng thì sẽ làmngười dùng bị mất kết nối ngay lập tức
Nếu các gói tin cùng phiên nhưng có địa chỉ nguồn là IP public thì bộ cân tải
có thể phân phối qua nhiều hướng mà không bị mất session
2.4 Giải thuật và mô hình
Dưới đây sẽ trình bày một số các mô hình cân bằng tải thông dụng hiện nay:
2.4.1 Xoay vòng (round-robin)
Gateway 1
Gateway 3
Bộ cân tải (Load balancer)
Trang 21a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = Tổng số lượng kết nối
Hướng được chọn = Luân phiên trên các kết nối
b) Nguyên lý hoạt động
Bộ cân tải lập danh sách các kết nối theo thứ tự Gói tin đầu tiên được truyềnqua kết nối được định nghĩa đầu tiên trong danh sách Gói tin thứ hai sẽ được truyềnqua kết nối thứ hai Khi bộ cân tải duyệt đến kết nối cuối cùng của danh sách thì bắtđầu “quét” lại kết nối đầu tiên của danh sách
Gọi số gói tin cần xử lý là M
Gọi số kết nối có thể xử lý gói tin là N
Khi đó, bộ cân tải sẽ phân phối gói tin thứ i vào kết nối Ni%N Bảng 2.1 dướiđây minh họa việc phân phối gói tin trong giải thuật round-robin
Bảng 2.1: Cách phân phối gói tin trong giải thuật “xoay vòng” (round-robin)
Số thứ tự gói tin (Mi) Kết nối (N= 3)
Trang 222.4.2 Xoay vòng theo trọng số (Weighted round-robin )
Gateway 1 (Trọng số = 3)
Bộ cân tải (Load balancer)
Internet
Round-robin
Gateway 2 (Trọng số = 1)
Gateway 3 (Trọng số = 5)
Hình 2.5: Giải thuật “xoay vòng theo trọng số” (weighted round-robin)
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = Tổng số lượng kết nối
Hướng được chọn = Luân phiên theo tỉ lệ của trọng số trên các kết nối
b) Nguyên lý hoạt động
Bộ cân tải lập danh sách các kết nối theo thứ tự (số lần lặp lại của kết nốitương ứng với trọng số của kết nối đó) Giả sử, kết nối ISP1 có trọng số bằng 2 vàkết nối của ISP2 có trọng số bằng 3, thì danh sách sẽ như sau: ISP1 ISP1 ISP2 ISP2ISP2 Khi đó, gói tin đầu tiên được truyền qua kết nối được định nghĩa đầu tiêntrong danh sách Gói tin thứ hai sẽ được truyền qua kết nối thứ hai Khi bộ cân tảiduyệt đến kết nối cuối cùng của danh sách thì bắt đầu “quét” lại kết nối đầu tiên củadanh sách
Gọi số gói tin cần xử lý là M
Gọi số kết nối có thể xử lý gói tin là N
Gọi trọng số của kết nối Ni là Wi
Khi đó, bộ cân tải sẽ phân phối gói tin thứ i vào kết nối như bảng sau:
Trang 23Bảng 2 2:Cách phân phối gói tin trong giải thuật “xoay vòng theo trọng số”
(weighted round-robin)
Số thứ tự gói tin (với k là số thứ tự lần quét danh sách) Kết nối Số lần lặp
Trang 242.4.3 Độ ưu tiên (Priority)
Độ ưu tiên = 1 Độ ưu tiên = 3
Khi router có độ ưu tiên cao bị lỗi
Lỗi
Hình 2.6: Giải thuật “độ ưu tiên” (priority)
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = 1
Hướng được chọn = hướng có độ ưu tiên cao nhất trong số các hướng không
bị lỗi kết nối
b) Nguyên lý hoạt động
Các kết nối được người dùng chỉ định giá trị ưu tiên Bộ cân tải sẽ luôn láilưu lượng qua đường có độ ưu tiên cao nhất và không bị lỗi Những đường có độ ưutiên thấp hơn chỉ được sử dụng khi kết nối hiện tại bị lỗi
Trang 25Bắt đầu
Chọn kết nối đầu tiên trong danh sách
(tức kết nối có độ ưu tiên cao nhất )
Kết nối đang hoạt động tốt?
Kết nối đang ở cuối danh sách?
Xét kết nối tiếp theo trong danh sách (tức các kết nối có độ ưu tiên thấp hơn )
Truyền gói tin theo kết nối này
Kết thúc
- Gói gin
- Danh sách các kết nối theo thứ tự
“độ ưu tiên” giảm dần
Đúng
Sai
Đúng Sai
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.7: Nguyên lý hoạt động của giải thuật “độ ưu tiên” (priority)
c) Nhận xét
Ưu điểm: Bộ cân tải không phải xử lý nhiều (chỉ cần “default-route” về mộthướng có độ ưu tiên cao nhất Nếu hướng này bị lỗi thì tự động đổi “default-route” qua hướng có độ ưu tiên thấp hơn)
Nhược điểm: Tại một thời điểm chỉ sử dụng một đường duy nhất Giải thuậtnày chưa khai thác hiệu quả tổng tài nguyên đang có
Trang 262.4.4 Tràn băng thông (overflow)
Hướng đi của gói tin màu đỏ ?
Nghẽn
Hình 2.8: Giải thuật “tràn băng thông” (overflow)
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có độ ưu tiên cao nhất và không bị nghẽn trong
số các hướng không bị lỗi kết nối
b) Nguyên lý hoạt động
Lúc đầu chỉ truyền dữ liệu qua đường có độ ưu tiên cao nhất
Nếu đường đang truyền nghẽn hoặc lỗi kết nối thì các dữ liệu sau đó sẽ đượctruyền qua đường có độ ưu tiên thấp hơn Như vậy, có thể có nhiều kết nốichứa dữ liệu tại một thời điểm
Trang 27Bắt đầu
Chọn kết nối đầu tiên trong danh sách
(tức kết nối có độ ưu tiên cao nhất )
Kết nối đang ở cuối danh sách?
Xét kết nối tiếp theo trong danh sách (tức các kết nối có độ ưu tiên thấp hơn )
Truyền gói tin theo kết nối này
Kết thúc
- Gói gin
- Danh sách các kết nối theo thứ tự
“độ ưu tiên” giảm dần
Sai
Đúng
Sai Kết nối đang
Ưu điểm: Cơ chế hoạt động đơn giản
Nhược điểm: Không tối ưu trong trường hợp các kết nối đang thuê là đườngdùng chung (tức không phải kênh thuê riêng – leased line) Đối với cácđường dùng chung như ADSL, FTTx,…thì nhà cung cấp dịch vụ chỉ đảmbảo băng thông tối thiểu, còn băng thông tối đa mà khách hàng có thể dùngthì phụ thuộc vào từng thời điểm Do đó sẽ rất khó để có thể xác định giá trịngưỡng băng thông được xem là nghẽn
Trang 282.4.5 Băng thông sử dụng thấp nhất (Least used)
Hướng đi của gói tin màu đỏ ?
Hình 2.10: Giải thuật “băng thông sử dụng thấp nhất” (least-used)
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có băng thông đang sử dụng thấp nhất
b) Nguyên lý hoạt động
Lúc đầu chỉ truyền dữ liệu qua đường có băng thông đang sử dụng thấp nhất
Với các dữ liệu tiếp theo, bộ cân băng tải sẽ cập nhật trạng thái băng thôngcủa các đường, sau đó truyền qua hướng có băng thông đang sử dụng thấpnhất
Trang 29- Tính băng thông sử dụng tại mỗi kết nối
- Lập danh sách kết nối theo thứ tự băng thông
sử dụng từ thấp nhất đến cao nhất
Gói tin
Bắt đầu
Chọn kết nối đầu tiên trong danh sách
(tức kết nối có băng thông sử dụng thấp nhất)
Kết nối đang hoạt động tốt?
Kết nối đang ở cuối danh sách?
Xét kết nối tiếp theo trong danh sách (tức các kết nối có băng thông sử dụng cao hơn)
Truyền gói tin theo kết nối này
Kết thúc
Đúng
Sai
Đúng Sai
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.11: Nguyên lý hoạt động của giải thuật “băng thông sử dụng thấp nhất”
(least-used)
c) Nhận xét
Ưu điểm: Băng thông được truyền đều trên các kết nối
Nhược điểm: Không tối ưu trong trường hợp băng thông thuê từ mỗi nhàcung cấp có giá trị khác nhau Giả sử, hướng ISP1 thuê băng thông 1 Mbps,hướng ISP2 thuê băng thông 2 Mbps Trong ngữ cảnh này, việc “đổ đều”băng thông qua mỗi đường có thể gây nghẽn hướng ISP2 (khi băng thông sửdụng tại ISP1 bằng 1 Mbps (nghẽn) thì hướng ISP2 chỉ mới sử dụng 1 Mbps(50% băng thông tối đa))
Trang 302.4.6 Băng thông sử dụng thấp nhất theo trọng số (Weighted least used)
Internet
ISP 1 ISP 2 ISP 3
Mạng LAN
Đã sử dụng = 2 Mbps Trọng số = 1
Đã sử dụng = 1 Mbps
Trọng số = 1
Đã sử dụng = 3 Mbps Trọng số = 4
Internet
ISP 1 ISP 2 ISP 3
Mạng LAN
Đã sử dụng = 2 Mbps Trọng số = 1
Đã sử dụng = 1 Mbps Trọng số = 1
Đã sử dụng = 3 Mbps Trọng số = 4
Hướng đi của gói tin màu đỏ ?
Hình 2.12: Giải thuật “băng thông sử dụng thấp nhất theo trọng số” (Weighted least
used)
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có giá trị “băng thông theo trọng số” thấp nhất
b) Nguyên lý hoạt động
Lúc đầu chỉ truyền dữ liệu qua đường có băng thông đang sử dụng thấp nhất
Với các dữ liệu tiếp theo, bộ cân băng tải sẽ cập nhật trạng thái băng thôngcủa các đường, sau đó truyền qua hướng có giá trị “băng thông theo trọngsố” thấp nhất
Trang 31- Tính băng thông sử dụng tại mỗi kết nối
- Tính “băng thông theo trọng số” cho mỗi kết nối
Băng thông theo trọng số = “Băng thông sử dụng” chia “Trọng số”
- Lập danh sách kết nối theo thứ tự “băng thông theo trọng số” từ
thấp nhất đến cao nhất
Bắt đầu
Chọn kết nối đầu tiên trong danh sách hoạt động tốt?Kết nối đang cuối danh sách?Kết nối đang ở
Xét kết nối tiếp theo trong danh sách
Truyền gói tin theo kết nối này
Kết thúc
Đúng
Sai
Đúng Sai
- Gói gin
- Trọng số của mỗi kết nối
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.13: Nguyên lý hoạt động của giải thuật “băng thông sử dụng thấp nhất theo
trọng số” (Weighted least used)
c) Nhận xét
Ưu điểm: Băng thông được truyền đều trên các kết nối
Nhược điểm: Chỉ dựa vào tiêu chí băng thông để truyền dữ liệu, không dựavào độ trễ, độ rớt gói, biến thiên độ trễ, Do đó, giải thuật này chỉ cân tải lưulượng qua các kết nối mà chưa quan tâm đến chất lượng hướng kết nối
Trang 322.4.6 Số kết nối thấp nhất (Least connection)
Hướng đi của session màu đỏ ?
Hình 2.14: Giải thuật “số kết nối thấp nhất” (Least Connection)
Trong giải thuật này, các gói tin cùng địa chỉ IP nguồn, IP đích, port nguồn, portđích sẽ được xem là cùng một kết nối
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có số kết nối thấp nhất
b) Nguyên lý hoạt động
Thay vì cân tải trên gói tin, bộ cân tải sẽ tính toán số lượng kết nối tại mỗikết nối, sau đó truyền qua kết nối có số lượng kết nối thấp nhất (và không bịlỗi kết nối)
Trang 33- Tính số lượng kết nối tại mỗi kết nối
- Lập danh sách kết nối theo thứ tự số lượng
kết nối từ thấp nhất đến cao nhất
Gói tin
Bắt đầu
Chọn kết nối đầu tiên trong danh sách
(tức kết nối có số lượng kết nối thấp nhất)
Kết nối đang hoạt động tốt?
Kết nối đang ở cuối danh sách?
Xét kết nối tiếp theo trong danh sách (tức các kết nối có băng thông số lượng kết nối cao hơn)
Truyền gói tin theo kết nối này
Kết thúc
Đúng
Sai
Đúng Sai
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.15: Nguyên lý hoạt động của giải thuật “số kết nối thấp nhất” (Least
Connection)
c) Nhận xét
Ưu điểm: Băng thông được truyền đều trên các kết nối
Nhược điểm: Không tối ưu trong trường hợp các hướng có băng thông khácnhau hoặc hướng có ít số lượng kết nối hơn nhưng lại sử dụng rất nhiều băngthông Do đó, giải thuật này chưa giải quyết hiệu quả việc tránh quá tải
Trang 342.4.7 Số kết nối thấp nhất theo trọng số (Weighted least connection)
Internet
Mạng LAN
Số kết nối = 20k Trọng số = 1
Số kết nối = 10k
Trọng số = 1
Số kết nối = 30k Trọng số = 4
Internet
Mạng LAN
Số kết nối = 20k Trọng số = 1
Số kết nối = 10k Trọng số = 1
Số kết nối = 30k Trọng số = 4
Hướng đi của session màu đỏ ?
Hình 2.16: Giải thuật “Số kết nối thấp nhất theo trọng số” (weighted least connection)
Trong giải thuật này, các gói tin cùng địa chỉ IP nguồn, IP đích, port nguồn, portđích sẽ được xem là cùng một kết nối
a) Đặc điểm chính
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có “số kết nối theo trọng số” thấp nhất
“Số kết nối theo trọng số = Số kết nối ÷ trọng số của kết nối tương ứng”
b) Nguyên lý hoạt động
Bộ cân tải tính toán “số kết nối theo trọng số” tại mỗi kết nối, sau đó truyềnqua kết nối có “số kết nối theo trọng số” thấp nhất (và không bị lỗi kết nối)
Trang 35- Tính số kết nối tại mỗi kết nối
- Tính “số kết nối theo trọng số” cho mỗi kết nối
Số kết nối theo trọng số = “số kết nối” chia cho “Trọng số”
- Lập danh sách kết nối theo thứ tự “số kết nối theo trọng
số” từ thấp nhất đến cao nhất
Bắt đầu
Chọn kết nối đầu tiên trong danh sách hoạt động tốt?Kết nối đang cuối danh sách?Kết nối đang ở
Xét kết nối tiếp theo trong danh sách
Truyền gói tin theo kết nối này
Kết thúc
Đúng
Sai
Đúng Sai
- Gói gin
- Trọng số của mỗi kết nối
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.17: Nguyên lý hoạt động của giải thuật “Số kết nối thấp nhất theo trọng số”
(weighted least connection)
c) Nhận xét
Ưu điểm: Băng thông được truyền đều trên các kết nối
Nhược điểm: Không tối ưu trong trường hợp hướng có ít số lượng kết nốihơn nhưng lại sử dụng rất nhiều băng thông Do đó, giải thuật này chưa giảiquyết hiệu quả việc tránh quá tải
Trang 362.4.8 Độ trễ thấp nhất (“Lowest latency” hay “Fastest repsonse time”)
Số kết nối tối đa có chứa dữ liệu tại một thời điểm = tổng số lượng kết nối
Hướng được chọn = hướng có độ trễ thấp nhất
b) Nguyên lý hoạt động
Bộ cân tải sử dụng địa chỉ IP đích của gói tin để so sánh độ trễ đi các hướng,sau đó truyền dữ liệu qua hướng có độ trễ thấp nhất
Trang 37- Lọc IP đích
- Tính độ trễ cho IP đích trên mỗi kết nối
- Lập danh sách kết nối theo thứ tự độ trễ từ
Kết nối đang ở cuối danh sách?
Xét kết nối tiếp theo trong danh sách (tức các kết nối có độ trễ cao hơn)
Truyền gói tin theo kết nối này
Kết thúc
Đúng
Sai
Đúng Sai
Truyền gói tin theo bảng định tuyến hiện tại
Hình 2.19: Nguyên lý hoạt động của giải thuật “độ trễ thấp nhất” (lowest latency)
c) Nhận xét
Ưu điểm: Đây là một cách tiếp cận mới so với cách truyền thống Nếu nhưcác giải thuật được trình bày ở trên, bộ cân tải chỉ dựa vào tiêu chí băngthông, thì giải thuật này đã sử dụng yếu tố độ trễ để quyết định hướng truyền
dữ liệu
Nhược điểm: Không tối ưu trong trường hợp có một hướng luôn có độ trễ tốtnhất đến các IP đích Khi đó, tất cả lưu lượng đều được truyền qua mộthướng và làm nghẽn băng thông Ngoài ra, giải thuật cũng không hiệu quảtrong ngữ cảnh hướng có latency thấp nhất, nhưng lại có tỉ lệ rớt gói cao