Với sự phát triển của công nghệ ngày nay, các hệ thống mạng ngày càng được mở rộng về quy mô, số lượng. Bất kể một hệ thống mạng nào cũng có nhu cầu sử dụng các máy tính cá nhân truy cập, và khi số lượng các máy tính ấy tăng lên, đồng nghĩa với việc truyền tải thông tin qua mạng cần được quan tâm hơn nữa. Chuyện gì sẽ xảy ra nếu trong cùng một thời điểm, có nhiều máy tính cùng truy cập vào hệ thống mạng? Sẽ có những sự cố có thể xảy ra: nghẽn mạng, mất kết nối, thời gian chờ lâu… Để giải quyết vấn đề này, chúng ta có thể áp dụng giải pháp cân bằng tải cho hệ thống mạng đó. Vậy đó là công nghệ gì, tính năng và hoạt động ra sao, chúng ta sẽ tìm hiểu sâu hơn trong đề tài: “Nghiên cứu cơ chế cân bằng tải. Đề xuất mô hình cân bằng tải cho hệ thống mạng tại Học viện Kỹ thuật Mật mã”
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÀI TẬP LỚN MÔN PHÂN TÍCH THIẾT KẾ
HỆ THỐNG AN TOÀN THÔNG TIN
NGHIÊN CỨU CƠ CHẾ CÂN BẰNG TẢI.
ĐỀ XUẤT MÔ HÌNH CÂN BẰNG TẢI
CHO HỆ THỐNG MẠNG TẠI HỌC VIỆN KỸ THUẬT MẬT MÃ
Cán bộ hướng dẫn: Vũ Thị Vân Sinh viên thực hiện:
- Phạm Quốc Đạt
- Nguyễn Việt Tiến
- Hoàng Quang Thụy
- Mai Trọng Hoàng Lớp: AT9A
Trang 2HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÀI TẬP LỚN MÔN PHÂN TÍCH THIẾT KẾ
HỆ THỐNG AN TOÀN THÔNG TIN
NGHIÊN CỨU CƠ CHẾ CÂN BẰNG TẢI.
ĐỀ XUẤT MÔ HÌNH CÂN BẰNG TẢI
CHO HỆ THỐNG MẠNG TẠI HỌC VIỆN KỸ THUẬT MẬT MÃ
Nhận xét của cán bộ hướng dẫn:
Điểm chuyên cần:
Điểm báo cáo:
Trang 3MỤC LỤC
DANH MỤC HÌNH ẢNH 4
LỜI NÓI ĐẦU 5
CHƯƠNG I TỔNG QUAN VỀ CÂN BẰNG TẢI 7
1.1 Khái niệm cân bằng tải (Load Balancing) 7
1.1.1 Cân bằng tải chiều ra (Outbound Load Balancing) 7
1.1.2 Cân bằng tải chiều vào (Inbound Load Balancing) 8
1.1.3 Cân bằng tải cho server (Server Load Balancing) 8
1.2 Các tính năng của cân bằng tải 9
1.3 Ưu điểm của cân bằng tải 10
1.4 Các thành phần chức năng chủ yếu trong cân bằng tải 11
CHƯƠNG II MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI 11
2.1 Thuật toán ngẫu nhiên 11
2.2 Thuật toán Round Robin (RR) 12
2.3 Thuật toán Weighted Round Robin - WRR (Ratio) 13
2.4 Thuật toán Dynamic Round Robin – DRR (Dynamic Ratio) 14
2.5 Thuật toán Fastest 14
2.6 Thuật toán Least Connections (LC) 14
CHƯƠNG III KỸ THUẬT CÂN BẰNG TẢI 15
3.1 Kiểm tra trạng thái server 15
3.2 Lựa chọn server tốt nhất 15
3.3 Kỹ thuật Session Persistence 15
3.4 Cân bằng tải sử dụng phần cứng 15
3.5 Cân bằng tải máy chủ với phần mềm 16
3.6 Cân bằng tải với Proxy 16
3.7 Cân bằng tải với thiết bị kết nối 17 CHƯƠNG IV ĐỀ XUẤT MÔ HÌNH CÂN BẰNG TẢI CHO HỆ THỐNG MẠNG TẠI
Trang 44.2 Thực hành cấu hình cân bằng tải 19
4.2.1 Xây dựng mô hình mạng 19
4.2.2 Cấu hình TCP/IP 21
4.2.3 Cài đặt dịch vụ IIS và giả lập website tại 2 Web server 21
4.2.4 Cấu hình cân bằng tải 22
4.2.5 Kiểm tra 25
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 27
Trang 5DANH MỤC HÌNH ẢNH
Hình 1 Outbound Load Balancing 7
Hình 2 Inbound Load Balancing 8
Hình 3 Server Load Balancing 9
Hình 4 So sánh hệ thống cân bằng tải và hệ thống thông thường 11
Hình 5 Random 12
Hình 6 Round Robin 13
Hình 7 Mô hình mạng HV KTMM 18
Hình 8 Mô hình đề xuất HV KTMM 19
Hình 9 Mô hình Load Balancing 20
Hình 10 TCP/IP on server 1 21
Hình 11 Install IIS 21
Hình 12 Test website 1 22
Hình 13 NLB on server 1 23
Hình 14 NLB on server 1 (2) 24
Hình 15 Testing 1 25
Hình 16 Testing 2 25
Trang 6LỜI NÓI ĐẦU
Với sự phát triển của công nghệ ngày nay, các hệ thống mạng ngày càng được mởrộng về quy mô, số lượng Bất kể một hệ thống mạng nào cũng có nhu cầu sử dụng cácmáy tính cá nhân truy cập, và khi số lượng các máy tính ấy tăng lên, đồng nghĩa với việctruyền tải thông tin qua mạng cần được quan tâm hơn nữa Chuyện gì sẽ xảy ra nếu trongcùng một thời điểm, có nhiều máy tính cùng truy cập vào hệ thống mạng? Sẽ có những sự
cố có thể xảy ra: nghẽn mạng, mất kết nối, thời gian chờ lâu… Để giải quyết vấn đề này,chúng ta có thể áp dụng giải pháp cân bằng tải cho hệ thống mạng đó Vậy đó là côngnghệ gì, tính năng và hoạt động ra sao, chúng ta sẽ tìm hiểu sâu hơn trong đề tài:
“Nghiên cứu cơ chế cân bằng tải Đề xuất mô hình cân bằng tải cho hệ thống mạng tại Học viện Kỹ thuật Mật mã”
Trang 7Nhóm sinh viên thực hiện:
Phạm Quốc ĐạtNguyễn Việt TiếnHoàng Quang ThụyMai Trọng HoàngChúng em xin được cảm ơn cô Vũ Thị Vân đã giảng dạy và giúp đỡ chúng em thựchiện đề tài này!
Hà Nội, 5 - 2016
Trang 8CHƯƠNG I TỔNG QUAN VỀ CÂN BẰNG TẢI
1.1 Khái niệm cân bằng tải (Load Balancing)
Cân bằng tải là một phương pháp phân phối lượng tải trên nhiều máy tính hoặc mộtcụm máy tính để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng, giảm thờigian đáp ứng và tránh tình trạng quá tải trên máy chủ
Cân bằng tải dùng để chia sẻ dữ liệu truyền trên mạng giúp cho việc truyền tải thôngsuốt, không bị nghẽn mạng do quá tải hay do một sự cố nào đó Hoặc khi có một máyserver nào đó bị trục trặc thì sẽ có máy server khác thay thế để giúp nhận dữ liệu thay thếcho server bị trục trặc đó, giúp cho việc truyền tải không bị ngừng do máy server bị lỗi đógây ra
Các dịch vụ cân bằng tải thường được cung cấp bởi một chương trình chuyên dụnghoặc thiết bị phần cứng (như là một chuyển mạch đa tầng hoặc một máy chủ DNS) Nóthường được sử dụng trung gian để truyền thông trong nội bộ các cụm máy tính
1.1.1 Cân bằng tải chiều ra (Outbound Load Balancing)
Thiết bị hay sản phẩm có hỗ trợ cân bằng tải chiều ra cho phép người dùng trong hệthống mạng nội bộ truy xuất các tài nguyên bên ngoài bằng nhiều kết nối khác nhaunhưng thông qua một cổng duy nhất Khi một trong các kết nối gặp sự cố, thiết bị sẽ tựđộng chuyển mọi gói tin qua một trong các kết nối đang hoạt động Khi đường truyền gặp
sự cố được khắc phục xong, các gói tin sẽ được lưu thông trở lại trên đó
Trang 9Hình 1 Outbound Load Balancing
1.1.2 Cân bằng tải chiều vào (Inbound Load Balancing)
Các yêu cầu truy cập vào website của bạn sẽ được thiết bị cân bằng tải phân phốiđều trên cả hai đường truyền nên sẽ không có hiện tượng quá tải trên một đường trong khiđường còn lại thì rỗi Bạn cũng có thể thiết lập mức độ ưu tiên của các đường truyền trên
để tối ưu hiệu suất của băng thông Ngoài ra, khi một trong hai đường gặp sự cố thì tất cảcác yêu cầu truy cập đến website của bạn sẽ được chuyển qua đường còn lại Khi đườngtruyền gặp sự cố được khắc phục thì thiết bị cân bằng tải sẽ tự động phân phối lại lưulượng trên đường đó
Hình 2 Inbound Load Balancing
1.1.3 Cân bằng tải cho server (Server Load Balancing)
Một số doanh nghiệp lớn thường sử dụng nhiều server chạy đồng thời với nhau đểđảm bảo sự ổn định của dịch vụ và đáp ứng được nhiều yêu cầu đồng thời Vì thế, thiết bịcân bằng tải cho server ra đời để đáp ứng yêu cầu phân tải hợp lý giữa các server này.Tương tự như Inbound/Outbound Load Balancing, Server Load Balancinng cũng có khảnăng cân bằng tải, đặt mức độ ưu tiên, kiểm tra tình trạng kết nối để tối ưu hiệu suất của
hệ thống mạng
Trang 10Hình 3 Server Load Balancing
1.2 Các tính năng của cân bằng tải
- Asymmetric load (Tải không đối xứng): tỷ lệ tải có thể được phân công theo cách
thủ công, giúp 1 máy chủ có thể tải nhiều hơn 1 hay nhiều máy chủ khác
- Priority activation (Ưu tiên kích hoạt): Khi số lượng các máy chủ có sẵn giảm
xuống dưới một số lượng nhất định, hoặc tải quá cao, máy chủ dự phòng có thể được đưavào sử dụng
- SSL offload và Acceleration: Cân bằng tải có khả năng xử lý SSL: khi đang dùng
các kết nối SSL, gánh nặng trên Web server sẽ được giảm mà không làm suy giảm hiệusuất cho người dùng cuối
- HTTP compression (Nén HTTP): làm giảm lượng dữ liệu được chuyển giao cho
các đối tượng HTTP bằng cách sử dụng nén có sẵn trong tất cả các trình duyệt web hiệnđại
- TCP offload: bình thường mỗi yêu cầu của HTTP từ mỗi client là một kết nối TCP
khác nhau HTTP/1.1 sử dụng tính năng này để củng cố nhiều yêu cầu HTTP từ client vàomột cổng TCP duy nhất để gửi các máy chủ
- TCP buffering (Đệm TCP): cân bằng tải có thể đệm các hồi đáp từ máy chủ và
phản hồi dữ liệu tới client
- Direct Server Return: một lựa chọn để phân phối tải không đối xứng, trong đó có
yêu cầu và trả lời các đường mạng khác nhau
- HTTP caching: cân bằng tải có thể lưu trữ nội dung tĩnh để cho một số yêu cầu có
thể được xử lý mà không cần liên hệ với các máy chủ web
Trang 11- Lọc nội dung: một số cân bằng tải có thể lọc thông tin khi chúng nhận được.
- Bảo mật HTTP: cân bằng tải có thể ẩn các trang HTTP lỗi, mã hóa cookie để người
sử dụng cuối cùng không thể thao tác với chúng
- Content aware switching (chuyển đổi nhận biết nội dung): hầu hết các cân bằng tải
có thể gửi yêu cầu đến các máy chủ khác nhau dựa trên URL được yêu cầu
- Client authentication (xác thực client ): người dùng sẽ được xác thực đối với nhiều
nguồn khác nhau trước khi họ được cho phép truy cập vào một trang web
- Programmatic traffic manipulation: cân bằng tải cho phép tùy chỉnh phương pháp
cân bằng tải, thao tác lưu lượng truy cập tùy ý
- Firewall (tường lửa): kết nối trực tiếp tới máy chủ backend như một cách để phòng
ngừa các sự cố để đảm bảo an ninh mạng
1.3 Ưu điểm của cân bằng tải
- Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính linhhoạt và mở rộng cho hệ thống
- Tăng độ tin cậy và khả năng dự phòng cho hệ thống: Sử dụng cân bằng tải giúptăng tính HA (High Availability) cho hệ thống, đồng thời đảm bảo cho người dùng không
bị gián đoạn dịch vụ khi xảy ra lỗi sự cố lỗi tại một điểm cung cấp dịch vụ
- Tăng tính bảo mật cho hệ thống: Thông thường khi người dùng gửi yêu cầu dịch
vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành phần cânbằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong Quá trình trả lời chokhách hàng cũng thông qua thành phần cân bằng tải, vì vậy mà người dùng không thể biếtđược chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng.Bằng cách này có thể ngăn chặn người dùng giao tiếp trực tiếp với các máy chủ, ẩn cácthông tin và cấu trúc mạng nội bộ, ngăn ngừa các cuộc tấn công trên mạng hoặc các dịch
vụ không liên quan đang hoạt động trên các cổng khác
Trang 12So sánh hệ thống cân bằng tải và hệ thống thông thường
Hình 4 So sánh hệ thống cân bằng tải và hệ thống thông thường
1.4 Các thành phần chức năng chủ yếu trong cân bằng tải
- Load Balancer: là một thiết bị phân phối tải giữa các máy tính với nhau và các
máy tính này sẽ chỉ xuấy hiện như một máy tính duy nhất
- VIPs (Virtual IP): là một dạng thể hiện của cân bẳng tải, mỗi VIP sử dụng 1 địa chỉ
IP công khai, bên cạnh đó thì 1 cổng TCP hay UDP sẽ đi kèm với 1 VIP (như cổng TCP
80 được dành cho luồng dữ liệu của web) Một VIP sẽ có ít nhất 1 máy chủ thực sự đượcgán địa chỉ IP đó và máy chủ này sẽ làm nhiệm vụ phân phối luồng dữ liệu được chuyểnđến
- Các máy chủ (servers): máy chủ chạy dịch vụ được chia sẻ tải với các máy chủ
khác
- Nhóm (Group): chỉ 1 nhóm các máy chủ được cân bằng tải.
Trang 13CHƯƠNG II MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI
2.1 Thuật toán ngẫu nhiên
Tải sẽ được phân một cách ngẫu nhiên vào trong các web server Web server đượcchọn dựa trên một hàm chọn số ngẫu nhiên, sau đó yêu cầu hiện tại từ phía người dùng sẽđược chuyển vào server này
Thuật toán có thể được thực hiện như sau:
Hình 5 Random
Thuật toán này hầu như không dùng đến trong các bộ cân bằng tải mặc dù nó thườngđược cài đặt sẵn, nó chỉ thường thấy trong các gói phần mềm lớn mà trong đó cân bằng tảichỉ được đưa ra như một chức năng
2.2 Thuật toán Round Robin (RR)
RR là thuật toán được dùng thường xuyên nhất trong các hệ thống vừa và nhỏ, ít đòihỏi về khả năng mở rộng
Một kết nối mới sẽ được gửi đến server kế tiếp trong cụm server, và cứ quay vòngnhư vậy RR làm việt tốt trong mọi cấu hình, nhưng sẽ tốt hơn nếu các trang thiết bị đangđược cân bằng tải khác nhau về tốc độ xử lý, tốc độ kết nối hoặc bộ nhớ
Một các để thực thi thuật toán này là sử dụng 1 server_map Bộ cân bằng tải sẽ đượckhai báo như 1 con trỏ proxy, nó sẽ có biến server_map là 1 mảng các server và biếnsrv_rr_idx để chỉ định server tiếp theo trong chu kỳ RR
Trang 14Điểm yếu của RR là 2 yêu cầu liên tục từ phía 1 người dùng có thể sẽ được gửi vào
2 server khác nhau Điều này không tốt vì khi người dùng đang được kết nối vào 1 server,thông tin mà họ cần đang ở server đó, nếu kết nối tiếp theo vẫn được server đó xử lý thì sẽgóp phần tăng tốc độ đáp ứng cho người dùng Do đó RR thường được cài đặt cùng cácphương pháp suy trì session như sử dụng cookies
2.3 Thuật toán Weighted Round Robin - WRR (Ratio)
Nguyên lý hoạt động cũng giống với RR, yêu cầu từ phía người dùng sẽ được bộ cânbẳng tải chuyển đến các server theo thứ tự xoay vòng Sự khác biệt duy nhất là thuật toánWRR còn quan tâm đến khả năng xử lý (cấu hình) của các server Trong cùng 1 chu kỳ, 1server có khả năng xử lý gấp đôi server khác sẽ nhận được gấp đôi số yêu cầu từ phía bộcân bằng tải
Giả sử chúng ta có 4 server A, B, C, D cấu hình khác nhau: A và B cấu hình giốngnhau, C và D cấu hình mạnh gấp đôi A Vậy chúng ta có thể đánh trọng số cho A và B là
1, C và D là 2 Khi đó theo thuật toán WRR, thứ tự server nhận yêu cầu từ phía bộ cânbằng tải sẽ là ABCDCD
Trang 152.4 Thuật toán Dynamic Round Robin – DRR (Dynamic Ratio)
Thuật toán này hoạt động gần giống với WRR, điểm khác biệt là trọng số dựa trên
sự kiểm tra server một cách liên tục, do đó trọng số liên tục thay đổi Đây là một thuậttoán động (khác với các thuật toán đã trình bày ở trên đều là thuật toán tĩnh), việc chọnserver sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng của server dựa trênthời gian thực, chẳng hạn như số kết nối hiện tại đang có trên các server hoặc server trảlời nhanh nhất
2.5 Thuật toán Fastest
Chọn server dựa trên thời gian đáp ứng của mỗi server (Response time) Thuật toán
sẽ chọn server nào có thời gian đáp ứng nhanh nhất thời gian đáp ứng được xác định bởikhoảng thời gian giữa thời điểm gửi 1 gói tin đến server và thời điểm nhận gói tin trả lời.việc gửi nhận này sẽ được bộ cân bằng tải đảm nhiệm, dựa trên thời gian đáp ứng, bộcân bằng tải sẽ biết chuyển yêu cầu tiếp theo đến server nào
Thuật toán thường được dùng khi các server được cài đặt dọc theo các mạng logickhác nhau, nghĩa là server được đặt ở nhiều nơi khác nhau Như vậy người dùng ở gầnserver nào thì thời gian đáp ứng đến server đó chắc chắn sẽ nhanh nhất, và server đó sẽđược chọn để phục vụ thuật toán này cũng giống như chuyển hướng yêu cầu dựa trênđịa chỉ IP Chẳng hạn như khi người dùng truy cập vào google.com, nếu IP người dùngđến từ Việt Nam thì yêu cầu sẽ được chuyển vào server ở Việt Nam để xử lý Việc nàygiúp tiết kiệm băng thông quốc tế và cải thiện tốc độ đường truyền
2.6 Thuật toán Least Connections (LC)
Trong thuật toán LC, yêu cầu từ phía người dùng sẽ được chuyển vào server có ítkết nối nhất trong hệ thống tại thời điểm đó Thuật toán này được coi như thuật toán động
vì nó cần đếm số kết nối đang hoạt động của server Với 1 hệ thống có các server gầngiống nhau về cấu hình, LC có khả năng hoạt động tốt ngay cả khi tải của các bên kết nốibiến thiên trong một khoảng lớn Do đó sử dụng LC sẽ khắc phục được nhược điểm của
Trang 16CHƯƠNG III KỸ THUẬT CÂN BẰNG TẢI
3.1 Kiểm tra trạng thái server
Để chọn được server phù hợp để gửi request, bộ cân bằng tải cần phải biết đượcserver nào đang có sẵn Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạng tháicủa server, chằng hạn như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứ phương phápnào mà người quản trị nghĩ là dùng được Kỹ thuật kiểm tra này thường được gọi là
“health checks”.
Hạn chế lớn nhất là những phương pháp kiểm tra này sẽ chiếm tài nguyên của hệthống như là CPU, threads… Do đó khoảng thời gian giữa 2 lần kiểm tra liên tiếp phải đủdài để không tốn quá nhiều tài nguyên của hệ thống và cũng cần đủ ngắn để nhanh chóngphát hiện ra những server có vấn đề
thuật Session Persistence.
3.3 Kỹ thuật Session Persistence
Tất cả các yêu cầu của người dùng cần phải được chuyển vào cùng một server Nếuserver bị lỗi, hoặc ngừng để bảo trì, cần phải có cơ chế để chuyển session của người dùngnày sang máy server khác Đó chính là kỹ thuật Session Persistence
3.4 Cân bằng tải sử dụng phần cứng
Bộ cân bằng tải bằng phần cứng sẽ thể hiện một địa chỉ IP ảo đối với mạng bênngoài, địa chỉ này bản đồ hóa đến các địa chỉ của mỗi máy trong một cluster Chính vì vậytoàn bộ các máy tính trong cluster sẽ chỉ được xem như là một máy duy nhất đối với thếgiới bên ngoài Bộ cân bằng tải sử dụng phần cứng thường hoạt động ở tầng mạng và hoạt