Tải bản đầy đủ (.pdf) (29 trang)

Nghiên Cứu Các Thuật Toán Cân Bằng Tải Trên Môi Trường Điện Toán Đám Mây (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (544.34 KB, 29 trang )

1

MỞ ĐẦU
Ngày nay với việc sử dụng máy tính, điện thoại, các thiết bị
điện tử ngày một phổ biến, bởi vậy mà điện toán đám mây cũng
ngày càng trở nên quen thuộc với người sử dụng. Điện toán đám
mây đã đóng góp một phần không nhỏ đối với sự phát triển của
ngành công nghiệp máy tính, cụ thể nó đã làm thay đổi cơ bản cách
thức sử dụng các nguồn tài nguyên, cơ cấu vận hành cũng như việc
lưu trữ, phân phối và xử lý thông tin. Đa số chúng ta đều đã và
đang sử dụng một hoặc nhiều các dịch vụ ứng dụng công nghệ điện
toán đám mây trong đời sống hàng ngày cũng như trong quản lý
doanh nghiệp.
Điện toán đám mây còn gọi là điện toán máy chủ ảo, là mô
hình điện toán sử dụng các công nghệ máy tính và phát triển dựa
vào mạng Internet. Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ
mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng
máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ
tầng chứa trong nó. Ở mô hình điện toán này, mọi khả năng liên
quan đến công nghệ thông tin đều được cung cấp dưới dạng các
"dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ
từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải
có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không
cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó. Người
sử dụng điện toán đám mây chỉ cần quan tâm tới các dịch vụ máy
tính đang được yêu cầu. Các chi tiết bên dưới hệ thống của nó như
thế nào thì được ẩn khỏi người dùng. Các dữ liệu và các dịch vụ
cung cấp nằm trong các trung tâm dữ liệu của đám mây có khả
năng mở rộng lớn và có thể được truy cập ở bất kỳ đâu, từ bất kỳ
thiết bị được kết nối trên thế giới. Nhiều nhà cung cấp điện toán
đám mây đã xuất hiện và có một sự tăng trưởng đáng kể trong việc


sử dụng dịch vụ này. Google, Microsoft, Yahoo, IBM và Amazon
đã bắt đầu cung cấp dịch vụ điện toán đám mây. Trong đó Amazon


2

là nhà tiên phong trong lĩnh vực này. Các công ty nhỏ hơn như
SmugMug, một trang web lưu trữ hình ảnh trực tuyến, có sử dụng
dịch vụ điện toán đám mây để lưu trữ tất cả các dữ liệu và thực
hiện một số dịch vụ của mình. Điện toán đám mây được sử dụng
trong các lĩnh vực khác nhau như web hosting, lập trình song song,
dựng hình đồ hoạ, mô hình tài chính (IBM Clouds), các phương
pháp duyệt và tìm kiếm trên web (web spider), phân tích gen
(Amazon Clouds), v.v..
Với tính tiện dụng và hiệu suất như trên, điện toán đám
mây sẽ trở thành xu hướng tất yếu trong tương lai. Sự gia tăng về
số lượng của người dùng điện toán đám mây đòi hỏi các nhà cung
cấp dịch vụ phải đáp ứng nhiều yêu cầu hơn trong môi trường điện
toán đám mây. Trong khi đó tăng thêm số lượng máy chủ hoặc cấu
hình máy chủ chỉ là phương pháp tạm thời. Vì vậy mà các phương
pháp cân bằng tải trên môi trường điện toán đám mây ngày càng
được quan tâm và chú trọng. Việc sử dụng một cách có hiệu quả
các nguồn tài nguyên trên “đám mây” đang là vấn đề cần thiết. Đây
cũng là một thách thức to lớn trong lĩnh vực điện toán đám mây.
Để đáp ứng được những yêu cầu trên thì việc thiết lập một thuật
toán cân bằng tải hiệu quả và làm thế nào để sử dụng nguồn tài
nguyên một cách hợp lý nhất chính là mục đích mà điện toán đám
mây muốn đạt đến [1], [2]. Chính vì vậy mà tôi chọn đề tài luận
văn là “Nghiên cứu các thuật toán cân bằng tải trên môi trường
điện toán đám mây”. Luận văn sẽ thực hiện nghiên cứu các thuật

toán cân bằng tải trên môi trường điện toán đám mây đang được áp
dụng hiện nay, đồng thời đề xuất cải tiến một thuật toán cân bằng
tải động và thực hiện cho khung IaaS trong môi trường mô hình và
mô phỏng điện toán đám mây CloudSim. Bộ phận trung tâm dữ
liệu sẽ cân bằng tải các yêu cầu giữa các máy ảo có sẵn một cách
có hiệu quả và để các thông số trong hệ thống như thời gian đáp
ứng, thời gian xử lý dữ liệu đạt được hiệu năng tốt nhất.


3

CHƯƠNG 1 - CƠ SỞ LÝ LUẬN
1.1 Tổng quan về Điện toán đám mây
Những năm gần đây điện toán đám mây (cloud computing)
nổi lên như một xu hướng công nghệ, hầu hết các nhà cung cấp
công nghệ hoặc sử dụng phần mềm, phần cứng và cơ sở hạ tầng
đều có thể tận dụng. Công nghệ và kiến trúc dịch vụ điện toán đám
mây cho phép khách hàng của các dịch vụ này không sở hữu tài sản
trong các đám mây điện tử nhưng trả tiền trên cơ sở mỗi lần sử
dụng. Về bản chất, họ đang thuê cơ sở hạ tầng vật lý và các ứng
dụng trong kiến trúc dùng chung. Dịch vụ điện toán đám mây có
thể từ lưu trữ dữ liệu cho đến các ứng dụng Web của người dùng
cuối, cùng với các dịch vụ điện toán tập trung khác.
Một sự khác biệt quan trọng giữa mô hình tính toán truyền
thống và điện toán đám mây là khả năng mở rộng và tính chất co
giãn mà điện toán đám mây cung cấp. Thay vì một kiến trúc hệ
thống tĩnh, điện toán đám mây hỗ trợ khả năng tự động mở rộng
quy mô và nhanh chóng thu hẹp quy mô, cung cấp cho khách hàng
các dịch vụ có độ tin cậy cao, thời gian đáp ứng nhanh chóng và sự
linh hoạt để xử lý các biến động thông lượng và nhu cầu. Điện toán

đám mây cũng hỗ trợ nhiều người dùng, cung cấp các hệ thống cấu
hình trong suốt một cách thống nhất mang tính chia sẻ được. Công
nghệ ảo hóa cho phép các nhà cung cấp điện toán đám mây để
chuyển đổi một máy chủ thành nhiều máy ảo, do đó loại bỏ máy
tính client-server (khách – chủ) với các hệ thống một mục đích.
Điều này tối đa hóa khả năng phần cứng và cho phép khách hàng
tận dụng một cách triệt để và kinh tế theo quy mô sử dụng [1].


4

Hình 1.1: Mô hình điện toán đám mây
Các mô hình điện toán đám mây có thể được phân loại theo
phương thức quản lý và sở hữu, được phân ra thành các loại sau:
- Đám mây công cộng (Public Cloud).
- Đám mây riêng (Private Cloud).
- Đám mây cộng đồng (Community Cloud).
- Đám mây hỗn hợp (Hybrid Cloud).
1.2 Kiến trúc của điện toán đám mây
Kiến trúc điện toán đám mây gồm có các thành phần chính:


5

Hạ tầng, lưu trữ (Storage), nền tảng, ứng dụng, dịch vụ,
khách hàng.

KHÁCH HÀNG
DỊCH VỤ
ỨNG DỤNG

NỀN TẢNG
LƯU TRỮ
HẠ TẦNG
Hình 1.2: Các thành phần trong điện toán đám mây
1.3 Các mô hình dịch vụ của điện toán đám mây
Dịch vụ hạ tầng IaaS (Infrastructure as a Service):
Dịch vụ nền tảng PaaS (Platform as a Service):
Dịch vụ Phần mềm SaaS (Software as a Service):
1.4 Tổng quan về cân bằng tải
1.4.1 Khái quát về cân bằng tải
Cân bằng tải là việc phân bố đồng đều lưu lượng truy cập
giữa hai hay nhiều các máy chủ có cùng chức năng trong cùng một
hệ thống. Bằng cách đó, sẽ giúp cho hệ thống giảm thiểu tối đa tình
trạng một máy chủ bị quá tải và ngưng hoạt động. Hoặc khi một
máy chủ gặp sự cố, cân bằng tải sẽ chỉ đạo phân phối công việc của


6

máy chủ đó cho các máy chủ còn lại, đẩy thời gian hoạt động liên
tục của hệ thống lên cao nhất và cải thiện năng suất hoạt động tổng
thể.
Như vậy cân bằng tải là một phương pháp phân phối khối
lượng tải trên nhiều máy tính hoặc một cụ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ời gian
đáp ứng và tránh tình trạng quá tải trên máy chủ.
1.4.2 Chức năng và ưu điểm cân bằng tải
Chặn lưu lượng mạng, tách các lưu lượng thành các yêu
cầu riêng biệt và quyết định máy chủ nào nhận các yêu cầu đó, duy
trì một cơ chế ở những máy chủ đang sẵn sàng, Cung cấp khả năng

dự phòng bằng cách sử dụng nhiều hơn một kịch bản, Cung cấp
khả năng nhận thức nội dung phân tán bằng cách đọc địa chỉ URL,
chặn cookie và biên dịch XML.
1.4.3 Các thông số đo lường trong cân bằng tải
Các kỹ thuật cân bằng tải trong điện toán đám mây hiện nay
xem xét các tham số khác nhau như: phí tổn, thông lượng, hiệu
năng, sự tận dụng tài nguyên, khả năng mở rộng, thời gian đáp ứng,
khả năng chịu lỗi, thời gian di trú, lượng khí thải.
1.5 Cân bằng tải trên môi trường điện toán đám mây
Điện toán đám mây có thể có một trong hai môi trường tĩnh
hoặc động dựa vào cách phát triển cấu hình các đám mây bởi các
nhà cung cấp điện toán đám mây. Cân bằng tải trong điện toán đám
mây cung cấp một giải pháp hiệu quả cho các vấn đề khác nhau về
thiết lập và sử dụng trong môi trường điện toán đám mây. Cân bằng
tải phải cân nhắc đến hai nhiệm vụ chủ yếu, một là việc cung cấp
tài nguyên hoặc phân bổ nguồn lực, một vấn đề khác là lập lịch


7

công việc trong môi trường phân tán. Trích lập dự phòng có hiệu
quả các nguồn lực và lập kế hoạch các nguồn tài nguyên cũng như
nhiệm vụ để đảm bảo các tính chất sau: sẵn sàng tài nguyên khi có
yêu cầu, các nguồn tài nguyên thực hiện có hiệu quả trong điều
kiện tải cao hoặc thấp, tiết kiệm năng lượng khi điều kiện tải
thấp,chi phí sử dụng tài nguyên thấp.

Người dùng 1

Người dùng 2


Người dùng n

Ứng dụng

Ứng dụng

Ứng dụng

Trung Tâm Dữ Liệu Cung Cấp Dịch Vụ Đám Mây

Kênh thông
tin liên lạc
Hàng đợi các yêu
cầu
Quản Lý Đám Mây

VM-1

VM-2

VM-n

Hình 1.3: Mô hình kiến trúc đám mây trong cân bằng tải


8

1.5.1 Cân bằng tải tĩnh
1.5.2 Cân bằng tải động

Thuật toán cân bằng tải tĩnh phải thu thập thông tin và công
việc trước khi các tiến trình thực thi. Nhưng không phải thông tin
nào cũng có thể biết trước khi các tiến trình chưa bắt đầu. Để đáp
ứng được một số yêu cầu cao hơn trong cân bằng tải, thuật toán cân
bằng tải động ra đời. Cân bằng tải động khác với cân bằng tải tĩnh,
sự phân công công việc được thực hiện ở trong thời gian các tiến
trình chạy. Tùy vào tình trạng tải của hệ thống mà các công việc,
yêu cầu trong cân bằng tải động được phân công cấp phát tài
nguyên tại thời gian chạy. Tải sẽ được chuyển từ nút tải nặng đến
các nút có tải nhẹ. Chiến lược của các thuật toán cân bằng tải động
là tập hợp thông tin về trạng thái hệ thống và thông tin các yêu cầu.
Bộ phận quản lý cân bằng tải cần phải tập hợp nhiều thông tin nhất
có thể trong thời gian ngắn nhất để có thể đưa ra các quyết định về
việc phân công tài nguyên một cách tốt nhất. Thuật toán cân bằng
tải động hầu hết được ứng dụng vào hệ thống không đồng nhất về
cấu hình, khác biệt về yêu cầu tài nguyên và các tác vụ. Nó gồm
các nút với tốc độ khác nhau, kích cỡ bộ nhớ khác nhau, và lượng
tải có thể khác nhau, vì vậy mà sẽ có sự biến đổi các thông số trong
quá trình xử lý. Thuật toán cân bằng tải động sẽ xử lý các thông số
trong quá trình chạy thuật toán và cải tiến chiến lược cân bằng tải
tĩnh để hệ thống đạt được hiệu suất cao hơn [8].
1.5.3 Một số vấn đề trong cân bằng tải động
- Việc phân công công việc cho các nút tính toán phải dựa
vào tình trạng hiện tại của hệ thống.
- Việc tính toán tải thể hiện được để làm thế nào có thể tính
toán khối lượng công việc của một nút cụ thể trong hệ thống.
- Chuyển giao công việc sẽ xác định liệu một công việc sẽ
được thực thi ở cục bộ hay từ xa.



9

- Trạng thái hệ thống thể hiện khả năng hiện tại của các nút
rằng các nút có bị quá tải hay tải nhẹ.
- Phân công ưu tiên: là sự ưu tiên để thực thi của tiến trình
cục bộ và từ xa ở một nút cụ thể.
- Trao đổi thông tin tải hệ thống giữa các nút. Để thực hiện
được vấn đề này cần có chính sách thông tin trong hệ thống. Chính
sách thông tin này bao gồm các bước sau:
+ Yêu cầu: bộ xử lý bắt đầu tập hợp thông tin tải của các
nút khác khi hoạt động cân bằng tải bắt đầu.
+ Định kỳ: Bộ xử lý thông báo thông tin tải của chúng theo
một khoảng thường xuyên giữa hai sự kiện tới các nút khác.
+ Chuyển trạng thái: khi một bộ xử lý chuyển trạng thái
của một nút, lập tức thông báo tới nút khác qua thông điệp truyền.
- Giới hạn di trú: xác định tần số truyền đó là bao nhiêu thời
gian một tiến trình có thể di trú từ một nút này tới một nút khác.
1.6 Bộ mô phỏng điện toán đám mây CloudSim
1.6.1 Thiết kế các lớp trong CloudSim
1.6.2 Luồng giao tiếp giữa các thực thể lõi trong
CloudSim
1.7 Tính cấp thiết của đề tài
1.8 Tình hình nghiên cứu
 Kết luận chương 1:
Chương 1 giới thiệu tổng quan về điện toán đám mây và cân
bằng tải trên môi trường điện toán đám mây. Đồng thời cũng đề
cập đến cân bằng tải tĩnh và cân bằng tải động, từ đó thấy được
sự khác biệt của hai loại hình cân bằng tải này. Qua đó khẳng
định tính cấp thiết của luận văn là rất quan trọng. Trong chương
này cũng trình bày về công cụ mô phỏng Cloudsim, đây là bộ



10

thư viện dùng để hỗ trợ mô hình hóa hệ thống điện toán đám
mây rất hữu ích được dùng để mô phỏng trong bài luận văn
này.Chương kế tiếp sẽ trình bày và phân tích môt số thuật toán
cân bằng tải trên môi trường điện toán đám mây.


11

CHƯƠNG 2 - MỘT SỐ THUẬT TOÁN CÂN BẰNG TẢI
TRÊN MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY
2.1 Giới thiệu chung
2.2 Thuật toán Round-Robin
Thuật toán cân bằng tải Round-Robin là thuật toán luân chuẩn
vòng, nó 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-First In First Out (vào trước ra trước) đều
nhận được tải như nhau theo thứ tự vòng tròn mà không cần qua
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ẽ có 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 mà 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. Trong
khi những máy khác phải bận xử lý các yêu cầu 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 máy ảo có năng lực xử lý khác nhau

trong hệ thống và có thể dẫn đến sự nhàn rỗ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 [12].
2.3 Thuật toán Weighted Round Robin
Thuật toán Weighted Round-Robin kế thừa ưu điểm phân phối
vòng tròn luân phiên của thuật toán Round-Robin. Thuật toán
Weight Round-Robin phân bổ tải dựa vào mức độ ưu tiên thông
qua năng lực của mỗi máy ảo,mỗi máy ảo có trọng số ưu tiên khác
nhau. 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ònluân phiên. Ngoài ra nó còn kết hợp
khả năng xử lý của từng máy ảo dựa vào bảng trọng số có sẵn.Vì


12

vậy mà máy ảo nào có năng lực xử lý mạnh hơn sẽ được phân bổ
nhiều tác vụ để xử lý hơn so với những máy ảo còn lại. Nhờ có cải
tiến này mà thuật toán Weighted đã tốt hơn thuật toán RoundRobin và thực hiện khá tốt trong trường hợp hệ thống có năng lực
xử lý không đồng nhất. Nhờ vậy mà có thể phân bổ máy ảo để xử
lý tác vụ một cách tối ưu hơn, giúp cải thiện thời gian đáp ứng
trong hệ thống cân bằng tải. Mặc dù vậy hai thuật toán RoundRobin và Weighted Round-Robin vẫncó những hạn chế, chúng đã
không xem xét đến thời gian xử lý cho mỗi yêu cầu riêng lẻ. Mang
đặc điểm cơ bản của thuật toán cân bằng tải tĩnh, hai thuật toán này
không dựa vào thông tin trạng thái tảihiện tại của mỗi máy ảo, chỉ
dựa vào thông tin biết trước khi phân phối tải. Chính vì vậy mà nó
cũng chưa đạt được hiệu quả cao trong quá trình cân bằng tải.
2.4 Thuật toán cải tiến Maxmin trong môi trường điện toán
đám mây
Trong bài báo [9] nhóm tác giả đã cải tiến thuật toán Max-min
để tạo ra một thuật toán tối ưu hơn. Bằng việc sử dụng các thông số
đầu vào như: số công việc, số lượng nguồn tài nguyên. Khi lượng

công việc tới hàng đợi, bộ xử lý đám mây sẽ tìm việc có thời gian
thực thi lớn nhất sau đó chỉ định cho tài nguyên có thể hoàn thành
sớm nhất.
2.4.1 Quy trình chọn yêu cầu để cấp phát máy ảo
2.4.2 Cập nhật hàng đợi công việc cần xử lý và máy ảo.
2.4.3

Đánh giá thuật toán

Phương pháp cải tiến này có cùng độ phức tạp giống thuật
toán Max-Min trước đó nhưng nó đem lại hiệu quả khá tốt thể hiện
ở chỗ thời gian thực thi tại mỗi tài nguyên ít hơn và sơ đồ lập lịch
khá tin cậy. Thuật toán cải tiến Max-min giúp cân bằng tải tốt hơn
các nguồn lực sẵn có và cũng giúp thực hiện đồng thời các nhiệm


13

vụ được đưa ra với xác suất cao hơn so với thuật toán Max-min
gốc.
Phương pháp này được đánh giá là khá tốt, tuy nhiên chỉ đi
tập trung vào nghiên cứu tới hai yếu tố chính là lượng công việc và
nguồn tài nguyên. Hơn nữa trong một số trường hợp khối lượng
công việc quá nhiều, hoặc bản thân tài nguyên đang xử lý một công
việc được yêu cầu thì việc đánh giá khả năng thực hiện công việc
kế tiếp sẽ không chuẩn xác và tối ưu.

2.5 Thuật toán cải tiến thuật toán cân bằng tải để tránh tắc
nghẽn trong môi trường điện toán đám mây
Giải thuật của thuật toán:

Bước 1: Ban đầu trạng thái của các máy chủ ảo vm=0, tất
cả các máy ảo ở trạng thái sẵn sàng. Bộ phận quản lý đám mây là
một cấu trúc dữ liệu bao gồm: JobID, VM ID và trạng thái VM.
Bước 2: Khi có một yêu cầu đến từ hàng đợi. Bộ phận
quản lý đám mây sẽ phân tích cấu trúc dữ liệu rồi chọn máy ảo sử
dụng tải ít nhất để cấp phát. Nếu có nhiều hơn một, máy ảo có
hoptime ngắn nhất sẽ được lựa chọn.
Bước 3: Quản lý đám mây cập nhật tự động dữ liệu sau khi
cấp phát tài nguyên.
Bước 4: Quản lý đám mây theo định kỳ sẽ hiện trạng thái
về việc phân phối tải của các máy ảo. Nếu như một máy ảo nào đó
quá tải thì bộ phận quản lý đám mây sẽ di chuyển tải của máy quá
tải sang máy ảo chưa sử dụng hết tài nguyên (Chưa bị quá tải).


14

Bước 5: việc lựa chọn máy ảo để di chuyển (underutilized
vm) dựa vào hoptime. Máy ảo nào có hoptime ngắn nhất sẽ được
lựa chọn.
Bước 6: Bộ phận quản lý đám mây cập nhật dữ liệu đã thay
đổi sau một khoảng thời gian định kỳ.
Bước 7: Lặp lại bước 2.
2.5.1 Giải pháp cấp phát tài nguyên máy ảo cho các yêu cầu
2.5.2 Đánh giá thuật toán
Thuật toán này quan tâm tới các yếu tố đầu vào như các công
việc đến, mức độ sử dụng của các máy ảo. Khi có một danh sách
các yêu cầu đến thì Cloud Manager sẽ phân tích trong cơ sở dữ liệu
để phân bổ các yêu cầu công việc cho các máy ảo (vm) nào đang
được sử dụng ít nhất. Nếu mức độ sử dụng của các máy ảo bằng

nhau thì sẽ chọn máy ảo có hop time nhỏ nhất.
Vậy trong thuật toán này nhóm tác giả đã chú trọng nghiên cứu
tới một số thông số như danh sách công việc, mức độ sử dụng của
máy ảo, trọng số hop time giữa các máy ảo. Bộ phận quản lý đám
mây - Cloud Manager sẽ phân bổ, điều tiết, cập nhật liên tục để các
thông số khi tiến trình vào hoạt động, dựa vào bảng trạng thái để có
thể phân công máy ảo có mức độ sử dụng và hop time phù hợp để
thực hiện những công việc đến theo yêu cầu.
2.6 Thuật toán Throttled
2.6.1 Giải thuật thuật toán Throttled
Thuật toán Throttled cân bằng tải bằng cách duy trì một
bảng thông tin cấu hình của các máy ảo và trạng thái của chúng.


15

Khi có yêu cầu cấp phát máy ảo từ trung tâm dữ liệu -Datacenter.
Bộ phận cân bằng bằng tải sẽ chọn những máy ảo tìm thấy đầu tiên
trong bảng thông tin những máy ảo đang sẵn sàng. Nếu tìm được
máy ảo sẵn sàng thì sẽ giao yêu cầu/tác vụ đó cho máy ảo. Nếu
không tìm được, sẽ trả về trung tâm dữ liệu - Datacenter giá trị = -1
sau đó Datacenter sẽ cho yêu cầu/tác vụ này vào hàng đợi .
Sau đây là thứ tự các bước của thuật toán Throttled:
Bước 1: ThrottledVmLoadBalancer duy trì một bảng chỉ
mục bao gồm các máy ảo và trạng thái của từng máy ảo (bận/sẵn
sàng). Khi bắt đầu tất cả máy ảo đều ở trạng thái sẵn sàng.
Bước 2: Datacentercontroller nhận yêu cầu mới.
Bước 3: Bước tiếp theo Datacentercontroller yêu cầu
ThrottledVMLoadBalancer gửi cho bảng cấp phát.
Bước 4: ThrottledVmLoadBalancer phân tích bảng cấp phát

từ những Vm top đầu đến những máy đầu tiên sẵn sàng được tìm
thấy hoặc khi bảng phân tích hoàn thành.
Nếu tìm thấy:
- The ThrottledVmLoadBalancer gửi lại ID VM đến
DataCenterController.
- DataCenterController gửi yêu cầu đến VM đã được xác
định bởi ID.
- DataCenterController ghi chú lại việc cấp phát mới của
ThrottledVmLoadBalancer.
Nếu không tìm thấy:
- The ThrottledVmLoadBalancer trả về-1.
- The DataCenterController sắp xếp yêu cầu.
Bước 5: Khi VM kết thúc xử lý các yêu cầu, thì
DataCenerController nhận phản hồi cloudlet, Nó sẽ ghi ghú lại việc
cấp phát VM của ThrottledVmLoadBalancer.


16

Bước 6: DataCenerController kiểm tra xem còn yêu cầu nào
ở hàng đợi không. Nếu còn, nó sẽ tiếp tục thực hiện bước 3.
Bước 7: Lặp lại bước 2.
2.6.2 Đánh giá thuật toán
Trong thuật toán Throttled danh sách máy ảo sẵn sàng được
duy trì cùng với trạng thái của mỗi máy ảo, chính vì vậy mà khi có
yêu cầu thì bộ phận quản lý đám mây chỉ việc đối chiếu và tìm
trong danh sách này ra máy ảo sẵn sàng thực hiện yêu cầu. Đây là
một phương pháp cân bằng tải động sử dụng tài nguyên khá tốt vì
thế nên có đạt được hiệu năng tương đối tốt.
Mặc dù vậy vẫn còn một số điểm chưa được tối ưu trong

phương pháp này. Khi có yêu cầu đến bộ phận quản lý đám mây
tìm trong danh sách máy ảo đang sẵn sàng và chọn máy ảo đầu tiên
khi nó tìm thấy. Cách này tương đối hợp lý trong việc đảm bảo tính
nhanh gọn, nhưng với trường hợp máy ảo đó sẵn sàng nhưng không
đủ năng lực thực hiện yêu cầu thì sẽ dẫn đến việc chậm trễ và mất
nhiều thời gian hơn. Phương pháp này đã không xem xét tới lượng
tải hiện tại của máy ảo, vì vậy mà khi một máy ảo không đủ năng
lực thực hiện yêu cầu nó sẽ phải quay trở lại tìm một máy ảo tiếp
theo. Trong trường hợp này sẽ làm cho hệ thống mất nhiều thời
gian chờ và thời gian đáp ứng hơn.
Từ những phân tích, đánh giá các thuật toán nêu ở trên có
thể đúc kết được bảng so sánh tổng hợp như sau:
Bảng 2.1: Bảng so sánh các thuật toán cân bằng tải

Thuật toán

RoundRobin

Ưu điểm
Nhược điểm
- Thuật toán đơn giản, đảm
- Mỗi nút có 1 khoảng
bảo sự công bằng;
thời gian cố định;
- Hoạt động theo kiểu xoay
- Không có tính linh hoạt
vòng;
và mở rộng;
- Đáp ứng nhanh chóng trong
- Một số nút có thể có tải

trường hợp năng lực xử lý nặng, 1 số có thể nhàn rỗi;


17

Weighted
RoundRobin

Cải tiến
Max-min

Tránh tắc
nghẽn
trong cân
bằng tải

Throttled

của các máy ảo là bằng
nhau;
- Không có tình trạng đói.
- Cải tiến thuật toán Round
Robin, hoạt động theo kiểu
xoay vòng nhưng có kết hợp
với bảng trọng số năng lực
xử lý của các máy ảo;
- Có hiệu quả hơn Round
Robin trong trường hợp
năng lực xử lý công việc của
các máy ảo là khác nhau.

- Thuật toán đơn giản;
- Nó thực hiện các nhiệm vụ
dài đồng thời.

- Không lưu lại trạng thái
phân bổ trước đó của các
máy ảo.
- Không có tính linh hoạt
và mở rộng;
- Không lưu lại trạng thái
phân bổ trước đó của các
máy ảo.

- Các nhiệm vụ lớn hơn
được thực hiện trước, trong
khi các nhiệm vụ nhỏ hơn
phải chờ. Dẫn đến tình
trạng đói trong việc cấp
phát máy ảo;
- Cân bằng tải kém;
- Danh sách máy ảo được - Chưa xem xét đến khả
duy trì cùng với trạng thái năng hoàn thành công việc
các máy ảo;
của các máy ảo.
- Máy dùng ít tải nhất sẽ
được chọn;
-Hiệu suất tốt.
- Danh sách máy ảo được - Quét toàn bộ máy ảo ngay
duy trì cùng với trạng thái từ đầu và chọn ra máy ảo
các máy ảo;

nhàn rỗi đầu tiên trong
danh sách;
- Hiệu suất tốt;
Không xem xét tải hiện
- Sử dụng nguồn tài nguyên
hành của các máy ảo.
hiệu quả.

 Kết luận chương 2:
Chương 2 giới thiệu về một số thuật toán cân bằng tải trên
môi trường điện toán đám mây, qua đó hiểu rõ hơn về sự khác nhau


18

giữa các thuật toán cân bằng tải tĩnh và cân bằng tải động. Từ đó
thấy được chức năng của bộ Quản lý đám mây – Cloud Manager
trong mỗi thuật toán. Trong các thuật toán cân bằng tải, xét về tính
cụ thể thì bộ quản lý đám mây ở mỗi thuật toán có cách xử lý và
điều phối máy ảo khác nhau, nhưng nói chung thì nó đều có chức
năng chính là quản lý, điều hành quá trình phân phối máy ảo.
Chương 2 đã nghiên cứu về một số thuật toán cân bằng tải, nó là
tiền đề và cơ sở cho phần ý tưởng cải tiến sẽ đề xất ở chương 3 của
luận văn.


19

CHƯƠNG 3: THUẬT TOÁN ĐỀ XUẤT
3.1 Giới thiệu

3.2 Thuật toán cải tiến
3.2.1 Ý tưởng
Khi nghiên cứu và tìm hiểu về các thuật toán cân bằng tải
trên môi trường điện toán đám mây, bản thân tôi thấy những công
trình nêu trên của nhóm tác giả là vô cùng hữu ích. Để phát huy
được những đóng góp này, tôi đã cố gắng tìm hiểu thêm để thuật
toán được tối ưu hơn. Vì vậy theo tôi, nếu như bộ quản lý đám mây
- Cloud Manager có thể tối ưu hơn nữa trong thuật toán cân bằng
tải bằng cách xét thêm một số thông số như thời gian hoàn thành
công việc dự kiến của mỗi tài nguyên (vm) khi có các danh sách
yêu cầu tới thì kết quả sẽ có một thuật toán tối ưu hơn.
Trong thuật toán đề xuất tôi sẽ xét tới các thông số cụ thể
như danh sách hàng đợi công việc yêu cầu của toàn hệ thống
(Cloudlet), danh sách hàng đợi đã được đệ trình ứng với mỗi máy
ảo, % mức độ sử dụng máy ảo (biểu hiện bởi số yêu cầu hàng đợi
đang đệ trình của mỗi máy ảo và chi phí dự kiến để hoàn thành
hàng đợi đó), thời gian hoàn thành dự kiến khi có một yêu cầu đến
của mỗi máy ảo. Từ những tham số trên ta sẽ chọn ra máy ảo có
thời gian hoàn thành công việc dự kiến nhỏ nhất và mức độ sử
dụng thấp nhất để phân công công việc.
3.2.2 Cơ sở tính toán cho giải thuật cải tiến
Để đo lường hiệu quả của cân bằng tải có thể dựa trên
nhiều yếu tố, nhưng quan trọng nhất là hai yếu tố tải và hiệu suất.
Tải là chỉ số hàng đợi CPU và sự tận dụng CPU. Hiệu suất là thời
gian đáp ứng trung bình yêu cầu của người dùng. Thuật toán cân
bằng tải dựa vào những thông số đầu vào như: cấu hình các máy


20


ảo, cấu hình các tác vụ cloudlet, thời gian đến, thời gian hoàn thành
các tác vụ, sau đó dự tính ra thời gian hoàn thành dự kiến của mỗi
tác vụ, thời gian đáp ứng dự kiến. Thời gian đáp ứng là thời gian xử
lý cộng thêm chi phí thời gian truyền tải yêu cầu hay tác vụ, xếp
hàng đợi qua các nút mạng.
 Thời gian đáp ứng dự kiến được tính theo công thức sau:
Thời gian đáp ứng = F– A + TDelay
Trong đó:
F: Thời điểm hoàn thành xử lý tác vụ
A: Thời điểm đến của tác vụ
TDelay là thời gian truyền tải tác vụ
 Xác định thời gian hoàn thành xử lý tác vụ dự kiến:
Nếu chính sách lập lịch là Spaceshare-Spaceshare hoặc là
Timeshare- Spaceshare thì được xác định theo công thức:

(3.1)

Trong đó capacity được áp dụng theo công thức:


21

(3.2)

Nếu chính sách lập lịch là Spaceshare-Timeshare hoặc là
Timeshare-Timeshare thì được xác định theo công thức:

(3.3)

Trong đó capacity được áp dụng theo công thức :


(3.4)

Trong công thức (3.1), (3.2), (3.3) và (3.4):
- eft(p) là thời gian hoàn thành dự kiến của Cloudlet p;
- est là thời điểm đến của Cloudlet p;
- rl là tổng số chỉ thị mà Cloudlet p cần được thực thi trên một bộ
xử lý;
- capacity là năng lực xử lý trung bình (tính theo MIPS) của một
core dành cho Cloudlet p;
- ct là thời gian mô phỏng hiện tại;
- cores(p) là số lượng core yêu cầu bởi Cloudlet;
- np là số lượng core thực mà host đang xét có;
- cap là năng lực xử lý của core .


22

Có hai cơ chế lập lịch là Timeshared và Spaceshared. Trong
giới hạn của bài luận văn này, sẽ thực hiện thuật toán và mô phỏng
dựa trên chính sách Spaceshared – Timeshared lần lượt đối với máy
ảo và tác vụ. Do vậy, cơ sở tính toán cho giải thuật đề xuất sẽ căn
cứ vào công thức (3.3) và (3.4).
3.2.3 Thiết kế thuật toán
Bước 1: Khởi tạo DatacenterBroker. Bảng chỉ mục trạng
thái của máy ảo và trạng thái các Cloudlet hiện tại. Lúc khởi tạo
chưa có máy ảo nào được phân bổ Cloudlet.
Bước 2: Khi có một yêu cầu phân bổ một máy ảo mới từ
DatacenterBroker đến, DatacenterBroker phân tích bảng chỉ mục
trạng thái. Sau đó sẽ tính tổng chi phí thời gian hoàn thành xử lý tất

cả Cloudlet hiện có trong hàng đợi của mỗi máy ảo cộng với thời
gian dự kiến hoàn thành của Cloudlet mới đến. Nếu máy ảo nào có
thời gian xử lý dự kiến nhỏ nhất thì máy đó được chọn để đệ trình
Cloudlet tiếp theo. Nếu có nhiều hơn 1 giá trị bằng nhau thì dựa
vào hoptime.
Bước 3: Gửi ID của máy ảo được chọn đến
DatacenterBroker sau đó DatacenterBroker gửi Cloudlet tới máy ảo
nào được xác định bởi ID đó.
Bước 4: Databroker thông báo về việc phân bổ mới và cập
nhật vào bảng trạng thái máy ảo và Cloudlet.
Bước 5: Khi máy ảo hoàn thành yêu cầu xử lý và
DatacenterBroker nhận đáp ứng Cloudlet nó sẽ cập nhật vào bảng
trạng thái của Cloudlet là đã hoàn thành và giảm đi 1 Cloudlet
trong bảng trạng thái.
Bước 6: Quay lại bước 2.


23

Bắt đầu

Nhận các yêu cầu
tác vụ/Cloudlet

Chọn ra máy ảo tối ưu
trong danh sách máy ảo

Tính tổng chi phí hoàn thành dự kiến
(Các tác vụ hàng đợi và tác vụ mới tới)


Sai
Tổng chi phí
này nhỏ nhất?
Đúng
Chọn máy ảo đáp ứng được yêu cầu

- Gửi các yêu cầu tới máy ảo được chọn trong Datacenter
và gán trạng thái là chưa hoàn thành;
- Thêm tác vụ này vào hàng đợi của máy ảo được chọn;
- Xóa tác vụ này ra khỏi hàng đợi tác vụ cần xử lý.

Không còn tác vụ
yêu cầu xử lý?

S
ai
Sai

Đúng

Kết thúc
Hình 3.1 : Lưu đồ thuật toán cân bằng tải cải tiến


24

3.2.4 Thiết lập mô hình dữ liệu đám mây mô phỏng
Mục tiêu của việc mô phỏng này là nhằm so sánh, phân
tích, đánh giá thời gian đáp ứng và thời gian xử lý dữ liệu của hai
thuật toán Throttled và thuật toán cải tiến. Ứng dụng được triển

khai trên đám mây gồm 1 datacenter. Giá trị tham số hệ thống
được cho trong bảng dưới đây. Kịch bản mô phỏng sẽ được tiến
hành theo chính sách lập lịch cho máy ảo và tác vụ là SpaceSharedSpaceShared.
Bảng 3.1: Giá trị các tham số trong thiết lập đám mây
Loại
Tham số
Giá trị
Datacenter

Số lượng Datacenter

1

Số lượng Host

3

Số lượng PE trên mỗi Host

1-4

MIPS của PE

1000-30000 MIPS

Bộ nhớ Host

5120-10240-12288

Host

Dung lượng lưu trữ

10240001044480MB
(1000-1020GB)

Băng thông
Tổng số máy ảo
Máy ảo

Bộ nhớ máy ảo (Ram)
Băng thông
Tổng số Cloudlet

Cloudlet/tác
vụ

Chiều dài của Cloudlet
Số PE yêu cầu

10000MB
3
1024-3072
1024MB
10-100
1024-20480
1-3


25


ID

Bảng 3.2: Thiết lập tham số cấu hình các máy ảo
Bộ nhớ
Băng
Tốc độ PE
Số PE/core
(Mb)
thông(Mb)
(MIPS)

0

4069

1024

2

200000

1

2048

1024

1

100000


2

1024

1024

2

50000

Bảng 3.3 Thiết lập tham số các Cloudlet
3.2.5 Kết quả thực nghiệm mô phỏng
Bảng 3.4: Kết quả mô phỏng trên thuật toán Throttled (50
Cloudlets)
Bảng 3.5: Kết quả mô phỏng trên thuật toán cải tiến (50
Cloudlets)


×