Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây (Luận văn thạc sĩ)
Trang 1CAO TRUNG TÍN
NGHIÊN CỨU CÁC THUẬT TOÁN CÂN BẰNG TẢI
TRÊN ĐIỆN TOÁN ĐÁM MÂY
LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng)
TP HCM – 2018
Trang 2CAO TRUNG TÍN
NGHIÊN CỨU CÁC THUẬT TOÁN CÂN BẰNG TẢI
TRÊN ĐIỆN TOÁN ĐÁM MÂY
Chuyên ngành: HỆ THỐNG THÔNG TIN
Trang 3LỜI CAM ĐOAN
Tôi cam đoan luận văn : “Nghiên cứu các thuật toán cân bằng tải trên điện toán đám mây” là công trình nghiên cứu của chính tôi
Các số liệu và kết quả được nêu trong luận văn là trung thực và chưa từng được công bố hay sử dụng trong bắt kỳ công trình nghiên cứu nào khác
Tp Hồ Chí Minh, ngày 05 tháng 05 năm 2018
Học viên thực hiện luận văn
Cao Trung Tín
Trang 4Tôi xin chân thành cảm ơn Thầy PGS.TS Trần Công Hùng, người thầy kính
mến đã hết lòng giúp đỡ, hướng dẫn, động viên, tạo điều kiện cho tôi trong suốt quá trình thực hiện và hoàn thành luận văn
Tôi xin chân thành cảm ơn gia đình, bạn bè, đồng nghiệp trong cơ quan đã động viên, hỗ trợ tôi trong lúc khó khăn để tôi có thể học tập và hoàn thành luận văn
Mặc dù đã có nhiều cố gắng, nỗ lực, nhưng do thời gian và kinh nghiệm nghiên cứu khoa học còn hạn chế nên không thể tránh khỏi những thiếu sót Tôi rất mong nhận được sự góp ý của quý Thầy Cô cùng bạn bè đồng nghiệp để kiến thức của tôi ngày một hoàn thiện hơn
Xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 05 tháng 05 năm 2018
Học viên thực hiện luận văn
Cao Trung Tín
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ LUẬN 3
1.1 Tổng quan về điện toán đám mây (Cloud Computing) 3
1.1.1 Đặc điểm chung của điện toán đám mây 4
1.1.2 Các mô hình triển khai 5
1.1.3 Các mô hình dịch vụ 9
1.2 Tổng quan về cân bằng tải trên điện toán đám mây 12
1.2.1 Thuật toán cân bằng tải tĩnh 14
1.2.2 Thuật toán cân bằng tải động 14
1.3 Các công trình liên quan 15
CHƯƠNG 2: CÁC THUẬT TOÁN TIÊU BIỂU VÀ PHƯƠNG ÁN ĐỀ XUẤT 17
3.1 Các thuật toán tiêu biểu 17
3.2 Phương án đề xuất 21
CHƯƠNG 3: MÔ PHỎNG VÀ ĐÁNH GIÁ 24
4.1 Bộ công cụ mô phỏng Cloud Analyst 24
4.1.1 Các thành phần chính 25
4.1.2 Quy trình thực hiện mô phỏng của bộ công cụ CloudAnalyst 29
4.2 Thiết lập mô phỏng 31
4.3 Kết quả và phân tích 40
Trường hợp 1: Mô phỏng với số lượng 20 máy ảo (VM) 40
Trường hợp 2: Mô phỏng với số lượng 50 máy ảo (VM) 45
Trang 6CHƯƠNG 4: KẾT LUẬN 51 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 53
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
IaaS Infrastructure as a Service Dịch vụ cơ sở hạ tầng
PaaS Platform as a Service Dịch vụ nền tảng
SaaS Software as a Service Dịch vụ phần mềm
DCC Data Center Controller Bộ điểu khiển trung tâm dữ liệu
VMLB Virtual Machine Load Balancer Trình cân bằng tải máy ảo
Trang 8DANH SÁCH BẢNG
Bảng 7: Giá trị băng thông giữa các khu vực (Mbps) 37Bảng 8: Số lần từng máy ảo (VM) được phân bố để xử lý các yêu cầu đến 40
Bảng 10: Số lần từng máy ảo (VM) được phân bố để xử lý các yêu cầu đến 45
Trang 9DANH SÁCH HÌNH VẼ
Hình 1.11: Mô hình cân bằng tải trên điện toán đám mây 12
Hình 3.1: Sơ đồ nguyên lý hoạt động của thuật toán Throttled 20 Hình 3.2: Sơ đồ nguyên lý hoạt động của thuật toán Throttled cải tiến 23 Hình 4.1: CloudAnalyst được xây dựng trên nền Cloudsim 24
Hình 4.3: Thuật toán đề xuất được nhúng vào trình cân bằng tải máy ảo VM Load Balancer
29
Hình 4.5: Thông số cấu hình Cơ sở người dùng và máy ảo 32
Trang 10Hình 4.6: Thông số cấu hình Trung tâm dữ liệu và Chi phí lưu trữ 34 Hình 4.7: Thông số cấu hình nâng cao và chính sách cân bằng tải 36
Hình 4.15: Chi phí xử lý của thuật toán Round Robin trường hợp 1 43
Hình 4.16: Chi phí xử lý của thuật toán Throttled trường hợp 1 43
Hình 4.17: Chi phí xử lý của thuật toán Throttled cải tiến trường hợp 1 43
Hình 4.19: Thời gian phản hồi và thời gian xử lý của hệ thống khi sử dụng thuật toán Round Robin trường hợp 2
Trang 11Hình 4.22: Chi phí xử lý của thuật toán Round Robin trường hợp 2 48
Hình 4.23: Chi phí xử lý của thuật toán Throttled trường hợp 2 49
Hình 4.24: Chi phí xử lý của thuật toán Throttled cải tiến trường hợp 2 49
Trang 12MỞ ĐẦU
Điện toán đám mây (CC) là một mô hình sử dụng công nghệ máy tính và phát triển dựa trên Internet Trong mô hình này, cung cấp tất cả khả năng liên quan tới công nghệ thông tin dưới dạng “dịch vụ” thông qua mạng Internet cho phép người dùng có thể truy cập và sử dụng chúng thông qua một nhà cung cấp dịch vụ đám mây Ưu điểm chính của điện toán đám mây (CC) là giảm các chi phí đầu tư ban đầu, tăng khả năng
xử lý-tính toán và khả năng linh hoạt trong lưu trữ Với các ưu điểm vượt trội đó, hiện nay, điện toán đám mây (CC) đã trở nên phổ biến trên thế giới Điều đó mang lại nhiều thách thức cho các tổ chức, các nhà cung cấp dịch vụ đám mây Trong đó, việc cải thiện thời gian phản hồi cho các yêu cầu của người dùng trên điện toán đám mây (CC)
là một vấn đề quan trọng Với sự tăng trưởng bùng nổ của Internet như hiện nay, việc trao đổi dữ liệu của các tổ chức và doanh nghiệp cần kịp thời và nhanh chóng, cân bằng tải trên điện toán đám mây đã trở thành một lĩnh vực nghiên cứu quan trọng của các nhà nghiên cứu trên khắp thế giới Đặc biệt là cân bằng tải trên trung tâm dữ liệu đám
mây (DC)
Cân bằng tải trên điện toán đám mây là kỹ thuật phân phối khối lượng công việc đồng đều giữa hai hoặc nhiều máy tính, kết nối mạng, CPU, ổ cứng, hoặc các tài nguyên to lớn phân tán trên mạng Internet Có nhiều phương pháp và cách tiếp cận khác nhau để giải quyết cân bằng tải trên môi trường điện toán đám mây, trong đó các thuật toán cải thiện thời gian đáp ứng của hệ thống được các nhà khoa học tập trung nghiên cứu chủ yếu Luận văn này tập trung nghiên cứu các thuật toán cân bằng tải phổ biến hiện nay trên hệ thống “đám mây” cụ thể là thuật toán Round Robin và thuật toán Throttled, dựa trên các kết quả đạt được sẽ phân tích đưa ra những mặt hạn chế của các thuật toán, từ đó đề xuất một thuật toán cải tiến dựa trên thuật toán Throttled để cải thiện thời gian phản hồi của trung tâm dữ liệu (DC) cải thiện hiệu suất cho hệ thống đám mây
Trang 13Luận văn đã mô phỏng thuật toán đề xuất với hai thuật toán Round Robin và
Throttled bằng công cụ mô phỏng Cloud Analyst Kết quả thực nghiệm cho thấy với
thuật toán đề xuất thời gian phản hồi và thời gian xử lý của hệ thống đã được cải thiện
Bố cục luận văn gồm 4 chương:
- Chương 1: Cơ sở lý thuyết: Giới thiệu tổng quan về điện toán đám mây và cơ
chế cân bằng tải, mục tiêu của việc cân bằng tải trên điện toán đám mây Tham
khảo và đánh giá một số công trình nghiên cứu của các nhà khoa học trong và
ngoài nước đã nghiên cứu về vấn đề cân bằng tải trên điện toán đám mây
- Chương 2: Các thuật toán tiêu biểu và phương án đề xuất: tập trung phân tích
đánh giá hai thuật toán Round Robin và Throttled Đề xuất thuật toán cải tiến
dựa trên thuật toán Throttled
- Chương 3: Mô phỏng và đánh giá: giới thiệu công cụ mô phỏng Cloud Analyst
Mô phỏng và đánh giá kết quả ba thuật toán
- Chương 4: Kết luận: Trình bày các công việc đã thực hiện được, những điểm
hạn chế của luận văn, hướng nghiên cứu mở rộng của luận văn
Trang 14CHƯƠNG 1: CƠ SỞ LÝ LUẬN
1.1 Tổng quan về điện toán đám mây (Cloud Computing)
Khái niệm điện toán đám mây (Cloud Computing) xuất hiện vào năm 2007 và được nhiều tổ chức nổi tiếng định nghĩa theo nhiều cách khác nhau (hình 1.1) Ví dụ như:
- Theo Viện Tiêu chuẩn và Công nghệ Mỹ (NIST – National Institute of Standards & Technology) định nghĩa điện toán đám mây như sau: “Điện toán đám mây là một mô hình mạng cho phép người dùng truy cập dễ dàng vào một
hệ thống mạng đồng nhất, theo nhu cầu đến một kho tài nguyên điện toán dùng chung (ví dụ: mạng, máy chủ, lưu trữ, ứng dụng và dịch vụ), các tài nguyên này
có thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu tối thiểu về quản lý hay sự can thiệp từ phía nhà cung cấp dịch vụ.”
- Tổ chức An Ninh Mạng và Thông Tin Châu Âu (ENISA) định nghĩa: “Điện toán đám mây là mô hình cung cấp dịch vụ theo yêu cầu, thường được triển khai trên công nghệ ảo hóa và các công nghệ điện toán phân tán.”
- Theo hãng Gartner định nghĩa: “Điện toán đám mây là một kiểu tính toán trong
đó các năng lực CNTT có khả năng mở rộng rất lớn được cung cấp dưới dạng dịch vụ qua mạng Internet đến nhiều khách hàng bên ngoài.”
- Theo hãng Forrester Research thì định nghĩa điện toán đám mây là: “Một kho tài nguyên cơ sở hạ tầng ảo hóa, có khả năng mở rộng cao và được quản lý, có thể hỗ trợ các ứng dụng của khách hàng cuối và được tính tiền theo mức độ sử dụng.”
Trang 15Hình 1.1: Mô hình điện toán đám mây
Nhìn chung, ta có thể hiểu đơn giản điện toán đám mây là một giải pháp mang tính dịch vụ cho phép cung cấp các tài nguyên CNTT và có khả năng biến đổi linh hoạt theo nhu cầu người dùng “ Đám mây” là thuật ngữ ẩn dụ đươc hiểu là các tài nguyên CNTT có sẵn trên internet, người dùng truy cập tới các tài nguyên đó mà không cần quan tâm tới công nghệ và hạ tầng bên trong nó
1.1.1 Đặc điểm chung của điện toán đám mây
- Khả năng truy cập rộng lớn (Broad network access): Người dùng có thể sử dụng bất kỳ thiết bị nào có kết nối internet như: computer, laptop, thiết bị di động truy cập vào dịch vụ điện toán đám mây
- Tự cấp dịch vụ theo nhu cầu (On-demand self-service): Người dùng đươc cấp tài nguyên theo nhu cầu một cách tự động, không cần sự can thiệp từ nhà cung cấp dịch vụ
Trang 16- Không phụ thuộc vị trí địa lý (Location independent resource pooling): Tài nguyên trên dịch vụ điện toán đám mây được điều phối và chia sẻ linh hoạt Người dùng không biết và không thể điều khiển được vị trí tài nguyên (nhưng với một số dịch vụ nâng cao nhà cung cấp cho phép người dùng làm điều đó)
- Tính co giãn nhanh (Rapid elasticity): Tài nguyên trên dịch vụ “đám mây” có thể được cấp phát hoặc thu hồi một cách nhanh chóng, linh hoạt và có khả năng thay đổi tài nguyên tăng lên hoặc giảm xuống theo nhu cầu sử dụng
- Dịch vụ đo lường (Measured service): Các hệ thống điện toán đám mây có khả năng tự điều khiển, tinh chỉnh và giám sát, đo lường tài nguyên
1.1.2 Các mô hình triển khai
Các mô hình triển khai điện toán đám mây được chia làm 4 loại chính (hình 1.2):
Hình 1.2: Các loại mô hình triển khai
- Đám mây riêng tư (Private cloud): là các dịch vụ điện toán đám mây được cung cấp trong các công ty, doanh nghiệp và được các công ty, doanh nghiệp đó trực
Trang 17tiếp vận hành và quản lý (Hình 1.3) Đây là xu hướng tất yếu cho các công ty, doanh nghiệp nhằm tối ưu hóa hạ tầng công nghệ thông tin của họ Đối tượng sử dụng là nội bộ của công ty, doanh nghiệp đó được bảo vệ sau tường lửa
Hình 1.3: Đám mây riêng tư
- Đám mây công cộng (Public cloud) là các dịch vụ điện toán đám mây được cung cấp bởi các cá nhân, tổ chức, doanh nghiệp cung cấp dịch vụ CNTT, nhằm phục vụ cho mục đích công cộng (Hình 1.4) Người sử dụng phải đăng ký với nhà cung cấp dịch vụ để được sử dụng dịch vụ đó (có thể miễn phí hoặc tính phí) theo từng chính sách của nhà cung cấp Đám mây công cộng đang là mô hình triển khai phổ biến hiện nay Khác với đám mây riêng tư, đối tượng sử dụng là tất cả cá nhân, tổ chức, doanh nghiệp bên ngoài kết nối thông qua internet…
Trang 19Hình 1.5: Đám mây hỗn hợp
- Đám mây cộng đồng (Community): là sự liên kết của nhiều công ty, doanh nghiệp với nhau (Hình 1.6) Các doanh nghiệp sử dụng các dịch vụ ứng dụng của nhau để phục vụ công việc Đối tượng sử dụng là các doanh nghiệp tham gia
mô hình triển khai này đều có thể sử dụng các dịch vụ của mô hình này cung cấp
Hình 1.6: Đám mây cộng đồng
Trang 201.1.3 Các mô hình dịch vụ
Có 3 loại mô hình dịch vụ về điện toán đám mây (Hình 1.7):
Hình 1.7: Mô hình dịch vụ điện toán đám mây
- Dịch vụ cơ sở hạ tầng (IaaS): nhà cung cấp sẽ triển khai hạ tầng phần cứng ( máy ảo (VM), network, vùng lưu trữ…) trên các hệ thống phân tán và cung cấp như một dịch vụ cho người dùng (Hình 1.8) Người dùng không thể biết thông tin hạ tầng thực tế bên trong “đám mây” nhưng họ có toàn quyền quản lý và sử dụng tài nguyên mà họ được cung cấp, cũng như yêu cầu mở rộng tài nguyên
Ví dụ: Amazon EC2/S3, Elastra (Beta 2.0 2/2009), Nirvanix, AppNexus
-
Trang 21Hình 1.8: Dịch vụ cơ sở hạ tầng
- Dịch vụ nền tảng (PaaS): cung cấp cách thức, các tính năng cần thiết cho việc xây dựng ứng dụng trên một nền tảng nào đó (Hình 1.9) Có 2 dạng hạ tầng được xây dựng phổ biến là hạ tầng trao đổi thông tin ứng dụng (middleware) và nên tảng ứng dụng (application server) với các công cụ và ngôn ngữ lập trình nhất định để xây dựng ứng dụng Người dùng triển khai ứng dụng mà không cần quan tâm đến chi phí hay thông số phần cứng và phần mềm bên dưới
Ví dụ: Google App Engine, Openshilt, Salesforce, Microsoft Azure,…
Trang 22Hình 1.9: Dịch vụ nền tảng
- Dịch vụ phần mềm (SaaS): nhà cung cấp tạo ra nhiều ứng dụng cơ bản, hoàn chỉnh và triển khai chúng thành dịch vụ để đáp ứng nhu cầu của đại đa số người dùng (Hình 1.10) Những nhà cung cấp SaaS có thể lưu trữ ứng dụng trên máy chủ của họ hoặc máy khách hàng đã có tải ứng dụng xuống thiết bị Người dùng chỉ việc sử dụng dịch vụ mà không cần quan tâm gì khác
Ví dụ: Dịch vụ email hay các ứng dụng Zalo, Google Docs, Google Calendar, Google Translate của Google, SmallPDF, OneDrive, Evennote, Facebook, Twitter …
Trang 23Hình 1.10: Dịch vụ phần mềm
1.2 Tổng quan về cân bằng tải trên điện toán đám mây
Cân bằng tải (Load Balancing) là hoạt động phân phối công việc giữa các nút máy chủ, nó cần thiết cho việc xử lý được tối ưu trong môi trường phân tán (Hình 1.11)
Hình 1.11: Mô hình cân bằng tải trên điện toán đám mây
Trang 24Trong khi điện toán đám mây đang phát triển nhanh chóng và khách hàng đang đòi hỏi nhiều dịch vụ hơn và kết quả tốt hơn, cân bằng tải trên điện toán đám mây đã trở thành một lĩnh vực nghiên cứu thú vị và quan trọng Nhiều thuật toán đã được đề xuất để cung cấp các cơ chế hiệu quả để gán các yêu cầu của khách hàng vào các nút
“đám mây”có sẵn[1] Thuật toán cân bằng tải được phân thành 2 loại là các thuật toán tĩnh và các thuật toán động Các thuật toán cân bằng tải tĩnh không phụ thuộc vào tình trạng hiện tại của hệ thống Hệ thống thường được thiêt lập sẵn Mặc khác, các thuật cân bằng tải động xem xét tình trạng trước và hiện tại của hệ thống trong khi xử lý cân tải Trong thuật toán cân bằng tải động lại được chi làm 2 loại: cân bằng tải phân phối
và cân bằng tải không phân phối[2] Các thuật toán cân bằng tải phân phối thực thi tại tất cả các nút trong “đám mây” và các tài nguyên được chia sẻ giữa tất cả các nút Lợi ích của thuật toán này là nếu có nhiều nút lỗi, nó sẽ không ảnh hưởng nhiều tới hệ thống Trong thuật toán cân bằng tải không phân phối, việc thực hiện phân tải sẽ bởi 1 nhóm máy ảo (VM) Lợi ích của thuật toán này là giảm chi phí và tài nguyên các nút trong “đám mây” (hình 1.12)
Hình 1.12: Sơ đồ phân loại cân bằng tải
Cân bằng tải tĩnh
Cân bằng tải động
Cân bằng tải phân
phối Cân bằng tải không phân phối
Trang 251.2.1 Thuật toán cân bằng tải tĩnh
Các thuật toán cân bằng tải tĩnh hầu hết phù hợp với các môi trường đồng nhất
và ổn định cao và có thể tạo ra kết quả rất tốt trong các môi trường này Tuy nhiên, chúng thường không linh hoạt và không thể khớp với những thay đổi liên tục đối với các thuộc tính trong thời gian thực hiện[1] Chúng chỉ định các nhiệm vụ cho các nút
“đám mây” dựa trên khả năng của nút “đám mây” đó để xử lý các yêu cầu mới Quá trình này chỉ dựa trên kiến thức về các thuộc tính và khả năng của các nút “đám mây”, bao gồm năng lực xử lý, bộ nhớ và dung lượng lưu trữ, và hiệu suất đường truyền Mặc
dù chúng có thể nắm trước thông tin về hoạt động của đường truyền, các thuật toán tĩnh này thường không xem xét các thay đổi liên tục của các thuộc tính này trong thời gian chạy cũng như đối với sự thay đổi tải trong thời gian chạy
1.2.2 Thuật toán cân bằng tải động
Thuật toán cân bằng tải động linh hoạt hơn và có tính đến các loại thuộc tính khác nhau về khả năng của nút trong hệ thống và băng thông mạng trước và ngay trong thời gian chạy [3] Các thuật toán này có thể thích ứng với những thay đổi và cung cấp kết quả tốt hơn trong môi trường không đồng nhất và linh động Vì hầu hết các thuật toán này dựa vào sự kết hợp của kiến thức dựa trên thông tin thu thập được trước đây
về các nút trong “đám mây” và các thuộc tính thời gian chạy được thu thập khi các nút
đã chọn xử lý các thành phần của tác vụ Các thuật toán này chỉ định các nhiệm vụ và
có thể tự động gán chúng cho các nút dựa trên các thuộc tính được thu thập và tính toán Các thuật toán như vậy đòi hỏi phải giám sát liên tục các nút và tiến trình công việc và thường khó thực hiện hơn Tuy nhiên, chúng là chính xác hơn và có thể dẫn đến cân bằng tải hiệu quả hơn
Trang 261.3 Các công trình liên quan
Năm 2012, Rashmi K S và cộng sự [4] đã đề xuất một thuật toán cân bằng tải nhằm phòng tránh tắc nghẽn của các máy ảo (VM) trong môi trường điện toán đám mây Cơ chế của thuật toán này là chuyển các yêu cầu đến từ máy ảo quá tải sang máy
ảo khác có mức độ sử dụng thấp hơn Trường hợp có nhiều máy chủ có cùng mức độ
sử dụng thì nó sẽ chọn máy ảo dựa vào thông số hop time thấp hơn Giải thuật này giúp tăng hiệu quả kinh doanh cho các nhà cung cấp dịch vụ
Năm 2012, Dhaval và cộng sự [5] đề xuất một sự mở rộng chọn Data Center hiệu quả nhất Điều này làm giảm tổng chi phí nhưng lại làm tăng thời gian phản hồi
Năm 2013, P Srinivasa Rao và cộng sự [6] đã đề xuất một thuật toán cân bằng tải động kết hợp với hệ thống giám sát tập trung Mục đích của hệ thống giám sát tập trung là việc tính toán trong môi trường đám mây là có thể phân tán, nhưng trạng thái của từng nhiệm vụ phải được giám sát tại một điểm trung tâm nhằm theo dõi, phân tích
để lập lịch tối ưu hơn, giúp giảm thiểu thời gian xử lý và truyền thông mạng
Năm 2013, Gaochao Xu và các cộng sự [7] đề xuất một chiến lượt cân bằng tải phân vùng đám mây (Cloud Partition) để cải thiện hiệu suất của toàn bộ đám mây Cụ thể là khi phân vùng đám mây ở trạng thái nhàn rỗi sẽ sử dụng một số cân bằng tải đơn giản như thuật toán ngẫu nhiên, Round-Robin, Round-Robin cải tiến để xử lý yêu cầu, còn khi phân vùng ở trạng thái bình thường đám mây sẽ sử dụng chiến lược cân bằng tải dựa trên lý thuyết trò chơi Nhưng tác giả chỉ mới đưa ra được khái niệm và chưa thực nghiệm được
Năm 2013 Shridhar G.Domanal và các cộng sự [8] đề xuất một thuật toán chỉnh sửa dựa trên thuật toán Throttled Thuật toán đề xuất này tập trung chủ yếu vào việc làm thế nào để công việc đến được giao cho các máy ảo đang sẵn sàng một cách thông
Trang 27minh thông qua một bảng danh sách trạng thái các máy ảo (VM) được cập nhật liên
tục điều này giúp cải thiện đươc thời gian đáp ứng trung bình của hệ thống
Năm 2014, Rakesh Kumar Mishra và cộng sự [9] đề xuất 2 phương án chọn
Data Center hiệu quả về thời gian xử lý Đề xuất thứ nhất là chọn Data Center ưu tiên
dựa trên Round-Robin kết quả là thời gian xử lý Data Center tốt hơn so với thuật toán
chọn ngẫu nhiên nhưng tốn tài nguyên nhiều hơn Đề xuất thứ hai là chọn Data Center
ưu tiên trên Round-Robin mở rộng, kết quả là thời gian xử lý tốt hơn so với đề xuất thứ
nhất và thuật toán chọn ngẫu nhiên nhưng nó phụ thuộc chi phí lập lịch và cấu hình
của trung tâm dữ liệu
Trong nước, cũng có rất nhiều bài báo nghiên cứu về cân bằng tải trên điện toán
đám mây được nhà khoa học cũng như các nghiêm cứu sinh thực hiện Cụ thể:
Năm 2015, tại Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công
Nghệ Thông Tin (ECIT 2015) Trần Công Hùng và Nguyễn Xuân Phi [10] đã đề xuất
một thuật toán ngăn chặn tình trạng quá tải cho các máy ảo (VM) trong điện toán đám
mây thông qua một cơ chế tải thích hợp Cụ thể, tác giả đã tích hợp hai hàm đợi cho
các yêu cầu đến và thông báo mức độ xử dụng của các máy chủ cho bộ cân bằng tải
nhằm điều phối nguồn lực phục vụ khi có yêu cầu đến Giải thuật này đã giúp giảm
thời gian tính toán trong đám mây dẫn đến thời gian đáp ứng cũng giảm được đáng kể
nhờ hàng đợi được sắp xếp theo thứ tự thích hợp
Trên Tạp chí Quốc tế về Mạng Máy tính và Truyền thông (IJCNC) Số 8, Số 3,
tháng 5 năm 2016 Trần Công Hùng và Nguyễn Xuân Phi [11] đưa ra một số thông số
ảnh hưởng đến cân bằng tải trên điện toán đám mây Cụ thể là các thông số makespan
(thời gian chạy) có ảnh hưởng lớn nhất đối với đám mây trung tâm dữ liệu việc giảm
thời gian makespan sẽ làm tăng hiệu quả của cân bằng tải trên điện toán đám mây
Nghiên cứu này cũng chỉ ra rằng việc điều chỉnh các thông số trên điện toán đám mây
cũng sẽ giúp cải thiện hiệu suất cân bằng tải trên điện toán đám mây
Trang 28CHƯƠNG 2: CÁC THUẬT TOÁN TIÊU BIỂU VÀ PHƯƠNG
ÁN ĐỀ XUẤT
Khi nghiên cứu các thuật toán cân bằng tải [7],[8],[9],[10],[12] trong môi trường điện toán đám mây Trong chương này, luân văn xem xét hai thuật toán cân bằng tải tiêu biểu nhất là thuật toán Round Robin và thuật toán Throttled Vì hai thuật toán tiêu biểu này phân phối tải một cách thống nhất Với mục đích cải thiện thời gian phản hồi của hệ thống “đám mây” và thời gian xử lý của trung tâm dữ liệu (DC) bằng việc phân
bổ lại các tác vụ một cách hiệu quả tới các máy ảo (VM), luận văn đề xuất một thuật toán Throttled cải tiến được xây dựng dựa trên thuật toán phổ biến Throttled
3.1 Các thuật toán tiêu biểu
Thuật toán Round Robin
Thuật toán Round Robin là một trong những thuật toán đơn giản nhất dựa trên thuyết lượng tử Round Robin cố gắng phân phối tải đến các máy ảo (VM) theo thứ tự vỏng tròn luân phiên công bằng Ý tưởng của Round Robin là tất cả các máy ảo (VM) trong trung tâm dữ liệu (DC) đều nhận được tải như nhau theo thứ tự vòng tròn mà không cần quan tấm đến năng lực xử lý của chúng khi phân phối tải đến Điều này hiệu quả đối với các trung tâm dữ liệu (DC) có tất cả các máy ảo (VM) có năng lực xử lý như nhau Còn đối với các trung tâm dữ liệu (DC) có các máy ảo (VM) có năng lực xử
lý chênh lệch lớn thì lại không hiệu quả
Thuật toán Throttled
Trong thuật toán này, trình cân bằng tải duy trì một bảng chỉ mục trạng thái của các máy ảo (sẵn sàng hoặc bận) Khi có yêu cầu đến trình cân bằng tải quét bảng chỉ mục từ trên xuống cho đến khi máy ảo (VM) sẵn sàng đầu tiên được tìm thấy hoặc bảng chỉ mục được quét hoàn toàn Máy ảo (VM) được tìm thấy sẽ nhận xử lý yêu cầu
Trang 29đó Trường hợp, trình cân bằng tải không tìm thấy máy ảo (VM) phù hợp Yêu cầu đó
sẽ phải đợi đến khi tìm máy ảo (VM) sẵn sàng kế tiếp
Bước 2 Bộ điều khiển trung tâm (DCC) nhận được một yêu cầu mới
Bước 3: Bộ điều khiển trung tâm (DCC) truy vấn đến trình cân bằng tải Throttled cho phân bổ tiếp theo
Bước 4: Trình cân bằng tải Throttled sẽ kiểm tra máy ảo (VM) từ trên xuống trong bảng chỉ mục, máy ảo (VM) đầu tiên nào đang sẵn sàng
Trường hợp nếu tìm thấy máy ảo (VM):
A Trình cân bằng tải Throttled sẽ gửi ID của máy ảo (VM) đó về bộ điều khiển trung tâm (DCC)
B Bộ điều khiển trung tâm (DCC) sẽ đẩy yêu cầu đó tới máy ảo (VM) xác định bởi ID đó xử lý và thông báo tới trình cân bằng tải Throttled về phân bổ đó
C Trình cân bằng tải Throttled cập nhật lại bảng chỉ mục và chờ yêu câu mới từ
Bộ điều khiển trung tâm (DCC)
Trường hợp ngược lại, nếu không tìm thấy máy ảo (VM) nào
A Trình cân bằng tải Throttled sẽ trả giá trị về là -1 cho Bộ điều khiển trung tâm (DCC)
B Bộ điều khiển trung tâm (DCC) xếp yêu cầu đó vào hàng đợi chờ cho lần phân bổ tiếp theo
Trang 30Bước 5: Về phía máy ảo (VM) sau khi xử lý xong yêu cầu và bộ điều khiển trung tâm (DCC) nhận được phản hồi, nó sẽ thông báo cho trình cân bằng tải Throttled
đã ngừng
Bước 6: Nếu có nhiều yêu cầu, bộ điều khiển trung tâm (DCC) lập lại Bước 3 với chỉ mục kế tiếp và tiến trình được lập lại cho đến khi đạt được kích thước bảng chỉ mục
Với giải thuật này thì tốn ít thời gian phản hồi hơn giải thuật Round Robin Nhưng hạn chế là:
o Hệ thống bị động trong việc phân bổ yêu cầu đến máy ảo nào xử lý vì khi
có yêu cầu đến trình cân bằng tải mới dò tìm máy ảo (VM) đang sẵn sàng
để phân bố xử lý
o Việc dò tìm máy ảo đang sẵn sàng ‘0’ với hết kích thước bảng chỉ mục sẽ dẫn đến số lượng các yêu cầu chờ xử lý tăng cao
Trang 31Hình 3.1: Sơ đồ nguyên lý hoạt động của thuật toán Throttled
Trang 323.2 Phương án đề xuất
Thuật toán Throttled cải tiến
Bước 1.Trình cân bằng tải Throttled cải tiến thực hiện cân bằng tải bằng việc cập nhật, duy trì hai bảng chỉ mục
- Một bảng chứa thông tin các máy ảo (VM) ở trạng thái sẵn sàng ‘0’ (Available Index)
- Một bảng chứa thông tin các máy ảo ( VM) ở trạng thái bận ‘1’ (Busy Index) Tại thời điểm bắt đầu, tất cả các máy ảo (VM) đều được cập nhật trong bảng
“Available Index” và bảng “Busy Index” là rỗng
Bước 2 Bộ điều khiển trung tâm (DCC) nhận được một yêu cầu mới
Bước 3: Bộ điều khiển trung tâm (DCC) truy vấn đến trình cân bằng tải Throttled cải tiến cho phân bổ tiếp theo
Bước 4: Trình cân bằng tải Throttled cải tiến dò và gửi ID máy ảo (VM) từ trên xuống trong bảng “Available Index” về bộ điều khiển trung tâm (DCC)
A Bộ điều khiển trung tâm (DCC) sẽ đẩy yêu cầu đó tới máy ảo (VM) xác định bởi ID đó xử lý và thông báo tới trình cân bằng tải Throttled về phân bổ đó
B Trình cân bằng tải Throttled cải tiến sẽ cập nhật ID máy ảo (VM) vừa được gửi đó vào bảng “Busy Index” và chờ yêu câu mới từ Bộ điều khiển trung tâm (DCC)
Trường hợp, nếu bảng “Available Index” rỗng (tất cả các VM đang ở trạng thái bận)
A Trình cân bằng tải Throttled cải tiến sẽ trả giá trị về là -1 cho Bộ điều khiển trung tâm (DCC)
B Bộ điều khiển trung tâm (DCC) xếp yêu cầu đó vào hàng đợi chờ cho lần phân bổ tiếp theo