CHƯƠNG 2 : CÂN BẰNG TẢI TRONG ĐIỆN TOÁN ĐÁM MÂY
2.4 So sánh giữa kỹ thuật cân bằng tĩnh và cân bằng tải độ ng[11]
2.4.3 Tận dụng tài nguyên
Mặc dù thời gian đáp ứng là tối thiểu trong cân bằng tải tĩnh, nhưng nó có khả năng tận dụng nguồn tài nguyên nghèo nàn. Bởi vì, có một điều không thực tế khi tất cả các công việc đệ trình đến bộ xử lý tương ứng cùng thời điểm. Điều đó có nghĩa là có một khả năng lớn một số bộ xử lý sẽ chờ sau khi hoàn thành công việc được gán cho chúng, một số bộ xửlýcòn lại vẫn bận do không cóchínhsách phân công lại công việc. Trong cân bằng tải động, kể từ khi có chính sách tái phân công công việc tồn tại ở thời gian chạy, khả năng hoàn thành tất cả các công việc gần như cùng một lúc. Vì vậy, cân bằng tải động sử dụng nguồn tài nguyên tốt hơn so với cân bằng tải tĩnh.
2.4.4 “Thrashing” hay tiến trình “Dumping”
Thuật ngữ “Thrashing” biểu thị phí tổn cao quá mức và hiệu suất xuống cấp nghiêm trọng hoặc sự sụp đổ gây ra bởi quá nhiều phân trang. “Thrashing” chắc chắn làm cho thiếu không gian bộ nhớ thành một số dư của thời gian xử lý. Một bộ xử lý được gọi là “thrashing” nếu nó đang dành nhiều thời gian để di chuyển các công việc hơn thực thi bất kỳ công việc có ích. Bởi vì mức độ di chuyển ít hơn, bộ xử lý sẽ bị “thrashing” ít hơn. Vì thế cân bằng tải tĩnh không phải bị “tharshing” nhưng cân bằng tải động gánh chịu một “thrashing” đáng kể do tiến trình di chuyển trong thời gian chạy.
2.4.5 Trạng thái “Woggling”
Nó tươngứng với trạng thái thay đổi thường xuyên bởi bộ xử lý giữa mức thấp và cao. Nó là một yếu tố làm giảm hiệu suất của hệ thống.
2.4.6 Khả năng tiên đoán
Khả năng tiên đoán là khả năng có thể dự đoán hành vi của một thuật toán. Hành vi của một thuật toán cân bằng tải tĩnh có thể dự đoán trước, bởi vì mọi thứ được biết trước khi biên dịch. Ngược lại, hành vi của thuật toán cân bằng tải động là không thể dự đoán trước, vì tất cả mọi thứ được thực hiện tại thời gian chạy.
2.4.7 Khả năng thích ứng
Khả năng thích ứng xác định liệu một thuật toán sẽ điều chỉnh bởi chính nó với sự thay đổi trạng thái hệ thống. Cân bằng tải tĩnh không có khả năng thích ứng với sự thay đổi của môi trường. Nhưng cân bằng tải động có khảnăng đó.
2.4.8 Độ tin cậy
Độ tin cậy liên quan với khả năng chịu lỗi của hệ thống, nếu một nút tính toán bị lỗi, hệ thống vẫn sẽ làm việc mà không có bất kỳ lỗi nào. Cân bằng tải tĩnh không đáng tin cậy, vì không có khả năng thích ứng với sự thay đổi của một trạng thái hệ thống. Nhưng cân bằng tải động có sự thích ứng mạnh, nên cân bằng tải động đáng tin cậy hơn.
2.4.9 Thời gian đáp ứng
Thời gian đáp ứng đo lường bao nhiêu thời gian được thực hiện bởi một hệ thống áp dụng một thuật toán cân bằng tải đặc biệt để đáp ứng một công việc. Cân bằng tải tĩnh có thời gian đáp ứng ngắn hơn, bởi vì bộ xử lý tham gia đầy đủ vào xử lý do không có công việc chuyển giao. Nhưng cân bằng tải động có thời gian đáp ứng lớn bởi vì bộ xử lý không thể tham gia đầy đủ vào xử lý do sự hiện diện của chínhsách chuyển giao công việc.
2.4.10 Khả năng ổn định
Cân bằng tải tĩnh ổn định hơn vì mọi thứ được biết trước khi biên dịch và chuyển giao khối lượng công việc được thực hiện. Nhưngcân bằng tải động không phải là quá ổn định như cân bằng tải tĩnh bởi vì nó liên quan cả thời điểm biên dịch phâncông công việc và phân phối khối lượng công việc khi cần thiết.
2.4.11 Liên quan sự phức tạp
Thuật toán cân bằng tải tĩnh dễ dàng xây dựng trong khi thuật toán cân bằng tải động thì không dễ để phát triển, bởi vì không có gì được biết trước. Mặc dù cân bằng tải động là phức tạp, nhưng những lợi ích của nó nhiều hơn là sự phức tạp.
2.4.12 Chi phí phát triển
Càng phức tạp ngụý chi phíphát triển thuật toán càng lớn. Vì thế, thuật toán cân bằng tải tĩnh chịu chi phí ít hơn so với thuật toán cân bằng tải động. So sánh thuật toán cân bằng tải động và cân bằng tải động được tổng kết trong bảng 2.1 sau :
Bảng 2.1. So sánh giữa cân bằng tải tĩnh vàcân bằng tải động [11]
TT Yếu tố
Thuật toán cân bằng tải
Cân bằng tải tĩnh Cân bằng tải động
1 Bản chất Khối lượng việc được giao công ở thời điểm biên dịch
Khối lượng công việc được giao ở thời gian chạy.
2 Liên quan phí tổn Ít truyền thông trên phí tổn do mạng
Phí tổn cao hơn do tiến trình phân phối lại. 3 Sử dụng nguồn tài
nguyên Tận dụng ít hơn. tài nguyên Tận dụng cao hơn. tài nguyên 4 Thrashing bộ xử lý Không thrashing Thrashing đáng kể 5 Trạng thái woggling Không woggling Woggling đáng kể 6 Khả năng dự đoán Dễ dự đoán Khó dự đoán
7 Khả năng thích ứng Ít thích ứng Thích ứng nhiều hơn 8 Khả năng tinh cậy Ít Nhiều
9 Thời gian đáp ứng Ngắn Dài hơn 10 Khả năng ổn định Nhiều hơn Ít hơn
11 Sự phức tạp Ít Nhiều hơn
12 Chi phí Ít Nhiều hơn
2.5 Kết luận
Chương này trình bày cơ sở lý thuyết tổng quát về cân bằng tải trong điện toán đám mây hiện nay. Các kỹ thuật cân bằng tải đang được áp dụng hiện nay, chủ yếu là hai loại: phụ thuộc vào trạng thái hệ thống và phụ thuộc vào người gởi tiến trình. Trong đó nhấn mạnh hai kỹ thuật cân bằng tải tĩnh và cân bằng tải động mà luận văn tập trung nghiên cứu, các tiêu chí so sánh đánh giá hiệu quả giữa hai kỹ thuật này.
CHƯƠNG 3: CÁC THUẬT TOÁN CÂN BẰNG TẢI TIÊU BIỂU
3.1 Cân bằng tải trong điện toán đám mây
Vấn đề cốt lõi trong điện toán đám mây ra hiện nay là làm thế nào sử dụng các nguồn tài nguyên tính toán một cáchcó hiệu quả nhất và xây dựng một thuật toán cân bằng tải hiệu quả, đó là mục tiêu cuối cùng của nhà nghiên cứu và nhà phát triển công nghiệp dựa trên điện toán đám mây muốn hướng đến. Cân bằng tải đảm bảo rằng không có các nguồn tài nguyên hiện có ở trạng thái rỗi trong khi nguồn tài nguyên khácđang bịquá tải. Đo lường đểđánhgiá hiệu quả của kỹ thuật cân bằng tải trong điện toán đám mây hiện nay tập trung xem xét, phân tích, đánh giá các tiêu chí khác nhau như tăng hiệu suất của mỗi nút tính toán, giảm thời gian đáp ứng, khả năng mở rộng, cải thiện thông lượng, tối đa sử dụng nguồn tài nguyên, tăng khả năng chịu lỗi, giảm thiểu thời gian di trú, đảm bảo những công việc nhỏ không đói trong thời gian dài, giảm thiểu phí tổn liên quan, và hiệu quả năng lượng cũng là vấn đề cần phải được tính đến. Vì vậy để đạt được một kỹ thuật cân bằng tải tối ưu tất cả các tham số hiệu năng hệ thống điện toán đám mây là một vấn đề không dễ đạt được. Do đó không có một kỹ thuật cân bằng tải nào có khảnăng đáp ứng một cách có hiệu quả cho tất cảcác ứng dụng, mà phải tùy theo điều kiện cụ thể để có một giải pháp áp dụng phù hợp và hiệu quả. Vấn đề này đã được trình bày chi tiết trong chương 2.
Cân bằng tải trong mô hìnhphân phối tải bởi thành phần DatacenterBroker, như được trình bày trong hình 4.1, là chọn máy ảo để phân phối các tác vụ đến được yêu cầu bởi người dùng theo hai phương thức: (1) không quan tâm đến bất kỳ sự hiểu biết về trạng thái hiện tại của hệ thống khi phân phối tải, (2) dựa trên sự hiểu biết về trạng thái các thành phần hiện tại của hệ thống khi phân phối tải. Hai yếu tố quan trọng ảnh hưởng trạng thái hệ thống trong cân bằng tải của thành phần DatacenterBroker cần phải quan tâm là tải và công suất của máy ảo. Trong kỹ thuật cân bằng tải chọn máy ảo để phân phối tải đến theo phương thức không quan tâm đến trạng thái hệ thống đó là cân bằng tải tĩnh Round-Robin, và một kỹ thuật phân phối tải được cải tiến tốt hơn là Weighted Round-Robin. Ngược lại, chiến lược
tập hợp thông tin về trạng thái hệ thống để chọn máy ảo phân phối tải đến được áp dụng trong kỹ thuật cân bằng tải động như Active Monitoring Load Balancer. Trong chương này chọn kỹ thuật cân bằng tải động Active Monitoring Load Balancer để kiểm tra, phân tích, đánh giá hiệu suất các thuật toán cân bằng tải tĩnh và thuật toán cân bằng tải động trong môi trường đám mây mà năng lực xử lý của các máy ảo là không đồng nhất.
3.2Thuật toán Round-Robin
Thuật toán cân bằng tải Round-Robin cố gắng phân phối tải đến các máy ảo 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 trong danh sách FIFO điề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 sẽ là hiệu quảđối với một hệ thống mà tất cả các máy ảo có năng lực xử lý như nhau. Nhưng cũng chính điều này có thể dẫn đến việc một máy ảo có công suất lớn hơn những máy ảo còn lại phải đợi để được phân bổ tải tiếp theo khi mà nó đã xử lý xong tải. Trong khi những máy khác phải bận xử lý các tác vụ trên nó với tình trạng tải nặng, đối với hệ thống mà năng lực xử lý của mỗi máy ảo là khác nhau. Như vậy, thời gian đáp ứng của yêu cầu xử lý không đạt được hiệu quả cao đối với các máy ảo có năng lực xử lý khác nhau trong hệ thống và có thể dẫn đến sự đói trên các máy ảo có năng lực xử lý mạnh hơn các máy ảo còn lại.
3.3Thuật toán Weighted Round-Robin
Thuật toán Weighted Round-Robin thực hiện ưu điểm phân phối vòng tròn luân phiên của thuật toán Round-Robin và cách phân bổ tải ưu tiên hơn dựa vào năng lực của mỗi máy ảo được thể hiện bằng một trọng số của nó. Các yêu cầu xử lý hay ứng dụng dịch vụ được phân phối đến máy ảo theo thứ tự vòng tròn luân phiên. Nhưngnócòn kết hợp khảnăng xửlý của từng máy ảo dựa trên“trọng số”. Do đó máy ảo có năng lực xử lý mạnh hơn sẽ được phân bổ nhiều yêu cầu xử lý hơn so với những máy ảo còn. Vì thế nó thắc phục được điểm hạn chế của thuật toán Round Robin là trong trường hợp máy ảo có năng lực xử lý mạnh
nhất không phải chờ yêu cầu xử lý hoặc xử lý rất ít. Hay nói cách khác là có thể loại bỏ được vấn đề sự đói, giúp cải thiện thời gian đáp ứng yêu cầu một cách tốt hơn. Tuy nhiên, vấn đề chính trong chính sách cân bằng tải tĩnh của hai thuật toán Round-Robin và Weighted Round-Robin phải đối mặt là chúng không xem xét những yêu cầu cân bằng tải nâng cao như là thời gian xử lý cho mỗi yêu cầu riêng lẻ. Ở mỗi thời điểm phân phối các yêu cầu cho máy ảo, hai kỹ thuật này không dựa vào thông tin trạng thái tải của mỗi máy ảo, mà nó chỉ dựa vào thông tin biết trước khi phân phối tải.
3.4Thuật toán Active Monitoring Load Balancer3.4.1 Mô tả thuật toán 3.4.1 Mô tả thuật toán
Chính sách cân bằng tải trong thuật toán này cố gắng duy trì tải công bằng trên tất cả các máy ảo sẵn có[7],[24]. Thuật toán duy trì thông tin về mỗi máy ảo và số lượng yêu cầu hiện tại được cấp phát tới máy ảo. Khi một yêu cầu cấp phát một máy ảo đến, DatacenterBroker sẽ xác định máy ảo có tải ít nhất. Nếu có nhiều hơn một, xác định đầu tiên được chọn. Sau khi DatacenterBroker xác định id máy ảo, DatacenterBroker gởi yêu cầu tới máy ảo được xác định bởi id đó và cập nhật tăng số cấp phát Cloudlet cho máy ảo. Khi DatacenterBroker nhận đáp ứng từ Cloudlet nó giảm số cấp phát cho máy ảo đi một.
3.4.2 Thuật toán
Bước 1: Khởi tạo DatacenterBroker duy trì một bảng chỉ mục của các máy
ảo và số lượng yêu cầu hiện tại được phân bổ tới máy ảo. Tại thời điểm bắt đầu tất cả máy ảo chưa được cấp phát.
Bước 2: Khi một yêu cầu phân bổ một máy ảo mới đến DatacenterBroker, nó phân tích bảng chỉ mục và xác định máy ảo có tải ít nhất. Nếu có nhiều hơn một, xác định đầu tiên được chọn.
Bước 3: DatacenterBroker xác định id máy ảo
Bước 4: DatacenterBroker gởi yêu cầu tới máy ảo được xác định bởi id
đó.
cho máy ảo có ID đã xác định lên một.
Bước 6: Khi máy ảo hoàn thành xử lý Cloudlet và DatacenterBroker nhận đáp ứng cloudlet. Nó cập nhật bảng chỉ mục bằng cách giảm số cấp phát cho máy ảo đi một.
Bước 7: Tiếp tục từbước 2.
3.4.3 Đánh giá
Yêu cầu xử lý trong thuật toán cân bằng tải động này được phân phối lại ở thời gian thực thi phụ thuộc vào trạng thái của hệ thống, đó là tải của mỗi máy ảo. Tại mỗi thời điểm phân phối, tải sẽ được chuyển từ máy ảo có tải nặng tới máy ảo có tải nhẹ hơn. Do đó hạn chế được tình trạng thắt cổ chai, máy ảo có năng lực xửlý mạnh nhất được gán nhiều tải hơn máy ảo có năng lực xử lý yếu hơn. Nên cải thiện thời gian đáp ứng một cách đáng kể.
Tuy nhiên, Thuật toán còn có điểm hạn chế và chưa hiệu quả nếu chỉ dựa vào tải hiện tại của máy ảo để phân bổ Cloudlet mới. Mặc dù trong thuật toán Active Monitoring Load Balancer máy ảo mạnh nhất được phân bổ nhiều tải hơn máy ảo có năng lực xử lý yếu hơn. Nhưng nếu vào từng thời điểm chỉ xét tải của từng máy ảo để đưa ra quyết định phân bổ Cloudlet là chưa đủ. Nguyên do, trong một số trường hợp chưa thể khẳng định được rằng máy ảo có tải nặng hơn sẽ mất nhiều thời gian xử lý Cloudlet tiếp theo đến và thời gian đáp ứng chậm hơn so với máy ảo có tải nhẹhơn. Trong một hệ thống mà khảnăng xửlý của mỗi máy ảo là không đồng nhất, và chiều dài của mỗi Cloudlet là tùy ý, thì có khả năng khả năng tổng thời gian hoàn thành xử lý hàng đợi của máy ảo có nhiều cloudlet hơn là nhỏ hơn tổng thời gian hoàn thành xử lý hàng đợi của máy ảo có ít cloudlet. Bởi vì máy đang chứa nhiều cloudlet nhưng công suất xử lý mạnh hơn nhiều lần so với máy có ít cloudlet thì hoàn toàn có thể kết thúc xử lý công việc sớm hơn. Vì vậy, việc lựa chọn máy ảo có tải ít hơn để đưa ra quyết định phân bổ Cloudlet tiếp theo sẽ không đạt hiệu quả trong một số trường hợp.
CHƯƠNG 4: ĐỀ XUẤT THUẬT TOÁN CÂN BẰNG TẢI CẢI
TIẾN
4.1Giới thiệu
Kỹ thuật cân bằng tải trong điện toán đám mây thể áp dụng ở những mức khác nhau, nó phụ thuộc vào chúng ta muốn cân bằng tải những gì. Điều này có thể được nghiên cứu và phát hiện ở các mức độ khác nhau trong khía cạnh khác nhau chẳng hạn như: chúng ta có một cơ sở hạ tầng SaaS, nơi có nhiều các yêu cầu về dịch vụ được tiếp nhận. Các yêu cầu này phải được phân phối tới các máy ảo sẵn có để xử lý. Vấn đề đặt ra là làm thế nào phân phối các yêu cầu đó để thời gian đápứng yêu cầu nhỏ nhất, làm thế nào để quyết định số lượng vàđặc điểm của các máy ảo xử lý các yêu cầu này. Trong một trường hợp khác, cơ sở hạ tầng điện toán đám mây để xử lý các yêu cầu có thể được chia sẽ giữa các Datacenter khác