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

Đề xuất thuật toán cân bằng tải dựa vào thời gian đáp ứng trên đ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 (752.36 KB, 27 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

LÊ NGỌC HIẾU

ĐỀ XUẤT THUẬT TOÁN CÂN BẰNG TẢI DỰA VÀO
THỜI GIAN ĐÁP ỨNG TRÊN ĐIỆN TOÁN ĐÁM MÂY

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

TP. Hồ Chí Minh – 2018


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: PGS.TS TRẦN CÔNG HÙNG

Phản biện 1: PGS.TS LÊ HOÀNG THÁI

Phản biện 2: TS. LÊ XUÂN TRƯỜNG

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc: 08 giờ 00 ngày 14 tháng 07 năm 2018

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



1

MỞ ĐẦU
Ngày nay song song với sự bùng nổ mạnh mẽ của công nghệ thông tin và sự
phát triển của Internet toàn cầu là sự phát triển không ngừng của công nghệ điện
toán đám mây. Nhằm nâng cao hiệu suất phục vụ của các dịch vụ điện toán đám
mây, theo các chuyên gia thì việc quản lý tài nguyên đối mặt với các vấn đề cơ bản
bao gồm phân bổ tài nguyên, đáp ứng tài nguyên, kết nối tới tài nguyên, khám phá
tài nguyên chưa sử dụng, ánh xạ các tài nguyên tương ứng, mô hình hóa tài nguyên,
cung cấp tài nguyên và lập kế hoạch sử dụng các tài nguyên. Trong đó, việc lập kế
hoạch cho sử dụng tài nguyên dựa trên các kết nối theo thời gian, và thời gian đáp
ứng của dịch vụ. Từ đó ta có thể nghiên cứu thời gian đáp ứng để đưa ra giải pháp
cho việc phân bố, cân bằng tải của các tài nguyên. Đây là một trong những hướng
nghiên cứu còn nhiều triển vọng giúp cho công nghệ đám mây ngày một hoàn thiện
và tiến bộ hơn.
Chính vì những lý do đó luận văn này nghiên cứu chủ yếu như sau: Đề xuất
thuật toán cân bằng tải dựa vào thời gian đáp ứng trên điện toán đám mây, tiếng
Anh: A Response-Time Based Algorithm of Workload balancing in Cloud
Computing.
Luận văn được bố cục như sau:
Trong chương 1 sẽ giới thiệu về cơ sở lý luận, tổng quan về cân bằng tải trên
điện toán đám mây. Tiếp đó là chương 2, sẽ giới thiệu một số công trình nghiên cứu
trong và ngoài nước về cân bằng tải và các cách tiếp cận khác nhau trong cân bằng
tải, làm cơ sở và nền tảng nghiên cứu của đề tài. Chương 3 xin giới thiệu về thuật
toán đề xuất dựa trên việc tiếp thu và phát huy ý tưởng dự đoán trong chuỗi thời
gian, sử dụng thuật toán ARIMA để dự báo. Chương 4 xin trình bài mô phỏng thực
nghiệm và các kết quả đạt được khi chạy mô phỏng trên công cụ CloudSim, từ đó
nhận xét về thuật toán đề xuất.



2

Tóm tắt: Điện toán đám mây hiện tại đang là xu thế phát triển của công nghệ
thông tin toàn cầu, chính vì vậy, việc nâng cao hiệu suất làm việc và cải tiến khả
năng xử lý của đám mây là mục tiêu chúng ta luôn hướng tới. Việc sử dụng thời
gian đáp ứng (Response Time) để làm giá trị đo lường và tiêu chí trong việc nâng
cao hiệu suất làm việc của đám mây là một trong những hướng nghiên cứu của điện
toán đám mây. Từ đó việc sử dụng thời gian đáp ứng làm thông số để cân bằng tải,
và phân bổ tài nguyên trên đám mây sao cho tối ưu nhất.
Trong luận văn này trình bày hướng tiếp cận dựa trên thời gian đáp ứng, và
từ tính chất chuỗi thời gian, nên xin áp dụng khả năng dự báo được của chuỗi thời
gian thông qua thuật toán ARIMA. Học viên sử dụng thuật toán dự báo trong thống
kê là ARIMA, để dự báo thời gian đáp ứng tiếp theo của các máy ảo, và của cloud
toàn cục, từ đó lên kế hoạch phân bổ các yêu cầu (Request) tương ứng với các tài
nguyên hợp lý, ở đây tài nguyên là các máy ảo. Việc mô phỏng thuật toán sẽ được
thực hiện mô phỏng trên công cụ CloudSim.

Chương 1: CƠ SỞ LÝ LUẬN - TỔNG QUAN VỀ CÂN BẰNG
TẢI TRÊN ĐIỆN TOÁN ĐÁM MÂY
1.1 Tổng quan về điện toán đám mây (Cloud Computing)
Điện toán đám mây đã xuất hiện từ những năm 1950, và dần dần phát triển
rộng rãi cho đến ngày nay. Với sự xuất hiện và phát triển vượt bậc của các thiết bị
điện tử, điện toán đám mây đã bước vào một giai đoạn phát triển mạnh mẽ.
Theo định nghĩa của Viện Quốc gia Tiêu chuẩn và Công nghệ Mỹ (US NIST), điện
toán đám mây là mô hình cho phép truy cập trên mạng tới các tài nguyên được chia
sẻ (ví dụ: hệ thống mạng, máy chủ, thiết bị lưu trữ, ứng dụng và các dịch vụ) một
cách thuận tiện và theo nhu cầu sử dụng. Những tài nguyên này có thể được cung
cấp một cách nhanh chóng hoặc thu hồi với chi phí quản lý tối thiểu hoặc tương tác
tối thiểu với nhà cung cấp dịch vụ. Cũng từ đây, NIST đưa ra mô hình điện toán



3

đám mây mang năm đặc điểm cơ bản, ba mô hình dịch vụ (Service Model) và bốn
mô hình triển khai cài đặt (Deployment Models).
Theo NIST thì điện toán đám mây bao gồm những đặc điểm như sau: Khả
năng tự phục vụ theo yêu cầu,khả năng truy cập mạng diện rộng, khả năng sử dụng
chung các tài nguyên, tính uyển chuyển và có thể co giãn một cách nhanh chóng của
tài nguyên, Các dịch vụ có thể đo lường được.

Hình 1.1: Tổng thể của điện toán đám mây
Nguồn: Bài giảng về điện toán đám mây, Carnergie Mellon University in
Qatar

1.2 Tổng quan về cân bằng tải trên điện toán đám mây (Workload
balancing in Cloud Computing)
1.2.1 Khái niệm về cân bằng tải trên điện toán đám mây
Điện toán đám mây giúp chúng ta chia sẽ dữ liệu và cung cấp nhiều nguồn
tài nguyên cho người dùng. Người dùng chỉ cần chi trả cho những gì họ sử dụng.
Chính vì thế điện toán đám mây lưu trữ dữ liệu và phân phối tài nguyên trong một
môi trường mở. Cân bằng tải được xem là quá trình tìm ra các nút mạng bị quá tải
và từ đó chuyển sang các nốt khác đang tải ít hoặc không tải. Trong môi trường đám
mây, cân bằng tải đòi hỏi phân bổ lại các tải đang hoạt động liên tục giữa tất cả các
nốt mạng.


4

Việc dự đoán và ước lượng được tải cần thiết là vô cùng quan trọng, cần
phải so sánh với tất cả các tải, tính ổn định tương đối của các hệ thống khác nhau,

hiệu suất làm việc của các hệ thống mục tiêu, tương tác giữa các nốt và các công
việc cần làm để truyền đi trong quá trình xây dựng một thuật toán cân bằng tải. Vấn
đề quan trọng nữa đó là lựa chọn các nốt mà trong đó có nhiều loại khác nhau.

1.2.2 Phân loại cân bằng tải
Các thuật toán cân bằng tải được chia thành 02 nhóm chính là :
-

Nhóm dựa vào trạng thái của hệ thống (depending on system state): nhóm
này chia thành 02 nhóm con là nhóm tiếp cận tĩnh (Static), và nhóm tiếp cận
động (Dynamic).

-

Nhóm dựa vào người khởi tạo quá trình xử lý (depending on who initiated
the process): nhóm này chia thành 03 nhóm con là nhóm khởi tạo do người
gửi (sender Initiated), nhóm khởi tạo do người nhận (Reciever Initiated), và
nhóm khởi tạo do cả hai (Symmetric)
Nhưng nhìn chung, thì các thuật toán cân bằng tải chủ yếu tập trung vào

trạng thái hệ thống và gồm 02 nhóm chính là thuật toán cân bằng tải tĩnh, và thuật
toán cân bằng tải động:
-

Tiếp cận tĩnh (static approach): tức là các thuật toán cân bằng tãi tĩnh , chia
lưu lượng thành các phần bằng nhau giữa các máy chủ.

-

Tiếp cận động (dynamic approach): chủ yếu xem xét đến các quyết định đưa

ra để cân băng tải. Hướng tiếp cận này phù hợp rộng rãi cho các hệ thống
phân tán như đám mây.


5

Hình 1.2: Phân loại thuật toán cân bằng tải [8]

1.2.3 Đo lường trong cân bằng tải
- Thông lượng (Throughput): Được sử dụng để tính toán tất cả các tác vụ mà đã
hoàn tất thực thi. Nếu thông lượng lớn thì hiệu suất làm việc của hệ thống sẽ được
cải thiện.
- Dung sai lỗi (Fault Tolerance): Có nghĩa là hồi phục sau sự cố. Cân bằng tải
cần có kỹ thuật tính toán ra dung sai lỗi tốt nhất.
- Thời gian di dời (Migration Time): là tổng thời gian cần thiết để di dời các tác
vụ hay tài nguyên từ nốt này sang nốt khác. Thời gian này cần được tối thiểu hóa để
nâng cao hiệu suất làm việc của hệ thống.
- Thời gian đáp ứng (Response Time): Là khoảng thời gian trung bình mà thuật
toán cân bằng tải trả lời một tác vụ trong hệ thống. Thông số này cần được tối thiểu
hóa để nâng cao hiệu suất hệ thống.
- Khả năng mở rộng (Scalability): Là khả năng của thuật toán cân bằng tải, có
thể xử lý cùng lúc số lượng nốt nhất định trong hệ thống. Thông số này cần được
cải thiện để hệ thống đạt hiệu năng tốt hơn.


6

1.2.4 Các chính sách của thuật toán cân bằng tải
Có rất nhiều chính sách được sử dụng trong các thuật toán cân bằng tải, bao
gồm:

- Chính sách về thông tin (Information policy): là chính sách sẽ định nghĩa các
loại thông tin nào được yêu cầu và làm thế nào để lấy được loại thông tin đó. Chính
sách này cũng định nghĩa rõ về thời gian thu thập các thông tin này.
- Chính sách về trigger: chính sách này sẽ định nghĩa khoảng thời gian thực thi
các hành động về cân bằng tải và bắt đầu kiểm soát tải.
- Chính sách về các loại tài nguyên (Resource type policy): chính sách này định
nghĩa các loại, kiểu tài nguyên mà luôn sẵn sàng phục vụ trong quá trình cân bằng
tải.
- Chính sách về khu vực (location policy): chính sách này sử dụng tất cả các
kết quả của chính sách loại tài nguyên, từ đó được dùng để tìm ra các đối tượng
thích hợp cho máy chủ hay cho người nhận.
- Chính sách về chọn lựa (selection policy): chính sách này được dùng để tìm
ra các tác vụ nào được truyền từ nốt quá tải sang nốt trống.

1.2.5 Các mục tiêu chính của thuật toán cân bằng tải
- Hiệu quả chi phí (Cost effectiveness): Cân bằng tải sẽ giúp hệ thống hoạt động
hiệu suất cao với chi phí thấp.
- Khả năng mở rộng & tính linh hoạt (Scalability and flexibility): Kích thước
tổng thể của hệ thống có cân bằng tải sẽ thay đổi theo thời gian. Thuật toán sẽ giúp
hệ thống xử lý các vấn đề này. Chính vì vậy, thuật toán cũng có tính linh hoạt và
khả năng mở rộng.
- Tính ưu tiên (Priority): Sắp xếp ưu tiên các tác vụ hoặc các nguồn tài nguyên
cần phải xử lý trước. vì vậy, tác vụ nào có độ ưu tiên cao hơn sẽ có cơ hội được
thực thi trước.


7

1.3.6 Các thuật toán cân bằng tải hiện nay
Có rất nhiều thuật toán cân bằng tải giúp giải quyết thông lượng tốt và giảm thời

gian đáp ứng trên môi trường cloud. Mỗi thuật toán đều có những lợi ích riêng:
-

Thuật toán phân bố tác vụ dựa trên LB (Task Scheduling based on LB

-

Thuật toán cân bằng tải cơ hội (Opportunistic Load Balancing – OLB

-

Thuật toán Round Robin (RR)

-

Thuật toán ngẫu nhiên hóa (Randomized)

-

Thuật toán Min-Min

-

Thuật toán Max-Min

-

Thuật toán hành vi Tìm kiếm của Ong Mật (Honeybee Foraging Behavior)

-


Thuật toán gom cụm động (Active Clustering)

-

Thuật toán so sánh và cân bằng (Compare & Balance)

-

Thuật toán Lock-free (Lock-free multiprocessing solution for LB)

-

Thuật toán đàn kiến (Ant Colony Optimization)

-

Thuật toán thời gian đáp ứng ngắn nhất đầu tiên (Shortest Response Time
First

-

Thuật toán lấy mẫu ngẫu nhiên (Based Random Sampling)

1.3 Tổng quan về thuật toán dự báo ARIMA
Theo [9], ARIMA là thuật toán dựa trên thống kê, là thuật toán tự hồi quy
tích hợp trung bình trượt (Auto Regression Integrated Moving Average), được phát
triển từ mô hình hồi quy ARMA (Auto Regression Moving Avera). Đây là mô hình
phát triển trên số liệu chuỗi thời gian đã biết và dự báo số liệu trong tương lai gần.


1.3.1. Dữ liệu chuỗi thời gian [10]
Dữ liệu thời gian thực hay chuỗi thời gian là một chuỗi các giá trị của một đại
lượng nào đó được ghi nhận là thời gian. Bất cứ dữ liệu chuỗi thời gian nào cũng
được tạo ra bằng một quá trình ngẫu nhiên.


8

Các giá trị của chuỗi thời gian của đại lượng X được kí hiệu là X1, X2, X3,…,
Xt,… , Xn với X là giá trị của X tại thời điểm t.
Một dãy số liệu thực tế cụ thể như giá bắp cải từng tháng là kết quả của một quá
trình ngẫu nhiên. Đối với dữ liệu chuỗi thời gian, chúng ta có những khái niệm về
tổng thể và mẫu như sau:
-

Quá trình ngẫu nhiên là một tổng thể

-

Số liệu thực tế sinh ra từ quá trình ngẫu nhiên là mẫu.

Chuỗi thời gian bao gồm 4 thành phần:
-

Thành phần xu hướng dài hạn (long –term trend component)

-

Thành phần mùa (seasional component)


-

Thành phần chu kỳ (cyclical component)

-

Thành phần bất thường (irregular component)

1.3.2. Tính dừng và tính mùa vụ
-

Nếu mỗi chuỗi thời gian gọi là dừng thì trung bình, phương sai, đồng
phương sai (tại các độ trễ khác nhau) sẽ giữ nguyên không đổi dù cho chúng
được xác định vào thời điểm nào đi nữa.

-

Trung bình: E(Yt)=const (Kỳ vọng không đổi theo thời gian)

-

Phương sai: Var(Yt)=const (Phương sai không đổi theo thời gian)

-

Đồng phương sai: Covar(Yt,Yt-k)=gk (Đồng phương sai chỉ phụ thuộc
khoảng cách của độ trễ mà không phụ thuộc thời điểm tính đồng phương sai
đó, không phụ thuộc t)

-


Để xem một chuỗi thời gian có dừng hay không, ta có thể sử dụng Đồ thị
của Yt theo thời gian, Đồ thị tự tương quan mẫu (Sample Auto Correlation),
hay kiểm định bước ngẫu nhiên (kiểm định Dickey-Fuller)

-

Nếu chuỗi Yt không dừng, ta có thể lấy sai phân bậc 1. Khi đó chuỗi sai
phân bậc 1 (Wt) sẽ có thể dừng. Sai phân bậc 1: Wt=Yt-Yt-1

-

Nếu chuỗi sai phân bậc 1 (Wt) không dừng, ta có thể lấy sai phân bậc 2. Khi
đó chuỗi sai phân bậc 2 có thể dừng. Sai phân bậc 2: Vt=Wt-Wt-1


9

-

Nếu sai phân bậc 2 mà chưa dừng, có thể chuỗi Yt có yếu tố mùa vụ. (Nếu
có yếu tố mùa vụ, tức là chuỗi vẫn chưa dừng).

-

Nếu cứ sau m thời đoạn, SAC lại có giá trị cao. Khi đó Yt có tính mùa vụ
với chu kỳ m thời đoạn. Phương pháp đơn giản nhất để khử tính mùa vụ là
lấy sai phân thứ m

-


Zt=Yt-Yt-m

1.3.3. Nhận dạng mô hình [10]
-

Mô hình ARIMA (hay còn gọi là phương pháp Box-Jenkin)

-

Nhận dạng mô hình tức là xác định p, d, q trong ARIMA(p,d,q), Do mô hình
Box-Jenkins chỉ mô tả chuỗi dừng hoặc những chuỗi đã sai phân hóa, nên
mô hình ARIMA(p,d,q) thể hiện những chuỗi dữ liệu không dừng, đã được
sai phân (ở đây, d chỉ mức độ sai phân).

1.3.4. Kiểm tra chuần đoán mô hình
-

Mô hình ARIMA tốt có RMSE nhỏ và sai số là nhiễu trắng: Sai số có phân
phối chuẩn, và đồ thị SAC giảm nhanh về 0

-

Tìm kiếm mô hình ARIMA phù hợp là một quá trình thử và sai.


10

Hình 1.3: Sơ đồ mô phỏng mô hình Box-Jenkins [6]


1.3.5. Các bước phát triển mô hình ARIMA
Theo [10], phương pháp Box – Jenkins bao gồm các bước chung:
-

Xác định mô hình.

-

Chuỗi ARIMA không dừng

-

Ước lượng tham số.

-

Kiểm định độ chính xác.

-

Dự báo:


11

Chương 2: CÁC CÔNG TRÌNH LIÊN QUAN
Trong chương này học viên sẽ giới thiệu các công trình liên quan tới cân bằng tải
trên điện toán đám mây.

2.1 Các công trình trên thế giới


Theo tài liệu [4], Tác giả bài báo “A Workload Balanced Approach for Resource Sche
Resource Scheduling (LBRS) để nâng cao chất lượng phục vụ trên Cloud. Kết
quả thực nghiệm đã có những hiệu quả tốt hơn.
Tác giả Agraj Sharma [5], Ấn Độ, năm 2014 đưa ra giải thuật về cân bằng tải
dựa vào thời gian đáp ứng: “Response Time Based Balancing in Cloud
Computing”. Tác giả đưa ra các vấn đề: (i) việc cân bằng tải diễn ra sau khi các
server bị quá tải, (ii) các yêu cầu cứ liên tục được gửi về server không tương
xứng với tài nguyên của server, tạo ra sự gia tăng tiêu thụ tài nguyên & chi phí.
Từ đó, tác giả đưa ra giải thuật giảm tải dựa trên thời gian đáp ứng của server, từ
đó đưa ra quyết định yêu cầu tiếp theo sẽ được xử lý bởi server nào (VMs nào).
Ngoài ra, tác giả Rashmi K.S [6], Ấn Độ, năm 2012 cũng đã đưa ra giải pháp
nâng cao tải làm việc tránh Deadlocks trên Cloud : “Enhanced Load Balancing
Approach to Avoid Deadlocks in Cloud”. Vì lý do Cloud dựa trên tính chất phân
tán và ảo hóa nên có thể bị deadlock. Tác giả đã đưa ra thuật toán tránh bị
deadlocks, khi người dùng đưa ra các yêu cầu với cloud (request), thuật toán này
được gọi để xử lý tuần tự các VMs, bằng cách nâng cao số lượng công việc xử lý
trên cloud để phục vục tốt hơn, tránh bị deadlocks.
Năm 2013, Huankai Chen và các tác giả [7], đã công bố thuật toán “Min-Min
Scheduling” (tạm dịch là thuật toán lên kế hoạch Min-Min) theo tính ưu tiên
người dùng trong việc cân bằng tải trên điện toán đám mây. Bài báo này nhấn
mạnh về sự mất cân bằng trong tải, là vấn đề chính của đám mây, đồng thời đưa
ra thuật toán Min-Min để giảm khoảng trống và tang hiệu suất sử dụng tài
nguyên (LBIMM), và thuật toán nâng cao của nó dựa trên ưu tiên người dùng là
thuật toán PA-LBIMM. Công trình nghiên cứu này được cài đặt và kiểm nghiệm


12

trên môi trường giả lập MathLab, kết quả đạt được đã cải thiện 20% đối với

người dùng đặc biệt (VIP) và tăng hiệu quả làm việc trên cloud thấy rõ.
Bên cạnh đó theo tài liệu [4], từ những năm 2010 đã có những công trình
nghiên cứu về QoS trên Cloud, các thuật toán như Cân bằng tải song song ở mức
người dùng và mức tác vụ, Các thuật toán về phân bổ tài nguyên trên cloud,… đã
được đưa ra. Mỗi thuật toán có nhiều ưu điểm riêng nhưng cũng có nhiều điểm
cần cải tiến. Song, điểm chung của các công trình này là đều có khả năng cải tiến
hơn nữa, và phát triển nữa.
Khoa học máy tính và khai phá dữ liệu càng lúc càng phát triển và là tiền đề
ứng dụng vào các xử lý tác vụ cũng như phân bổ tài nguyên, cân bằng tải trên
Cloud. Thuật toán ARIMA là một trong những thuật toán dự báo tốt và ứng dụng
được vào CLOUD. Theo [12] thì ARIMA là Auto Regression Integrated Moving
Average (Trung bình trượt tích hợp tự hồi qui) là thuật toán dựa trên lý thuyết
xác suất, ứng dụng phổ biến trong dự báo ngắn hạn, sử dụng các giá trị trong quá
khứ để dự báo. Theo nghiên cứu của luận văn này, sẽ sử dụng thuật toán ARIMA
vào trong dự báo thời gian đáp ứng tiếp theo, từ đó lên kế hoạch cho cân bằng tải.

2.2 Các công trình ở Việt Nam
Tác giả Lê Văn Sơn [8], Đại học Đà Nẵng, năm 2012 đã nghiên cứu và đưa
ra các vấn đề cung cấp tài nguyên máy ảo trên cơ sở hạ tầng tính toán đám mây.
Tác giả cũng đã chỉ ra vấn đề tài nguyên là cốt lõi của điện toán đám mây. Đối
với dich vụ IaaS (tức là dịch vụ cung cấp hạ tầng) bao gồm các máy chủ được
gom nhóm để phục vục các dịch vụ liên tục nhằm đạt hiệu quả mong muốn. Tác
giả cũng đưa ra mục tiêu nâng cao hiệu suất cho IaaS là đáp ứng nhu cầu sử
dụng, sử dụng tốt nhất tài nguyên trên đám mây. Tác giả đã tổng hợp về các vấn
đề ảo hóa, các kỹ thuật ảo hóa và các dịch vụ kèm theo như di trú máy ảo để
mong muốn đạt được hiệu suất trên đám mây.
Tác giả Trần Công Hùng & các cộng sự đã nghiên cứu và đề xuất các giải
pháp nhằm nâng cao hiệu suất trong điện toán đám mây, đặc biệt là về cân bằng



13

tải và dựa vào thời gian đáp ứng. Trong tài liệu [9] năm 2016, tác giả đã đưa ra
công trình nghiên cứu về các tham số của tính hiệu quả nhằm cân bằng tải trong
đám

mây

(STUDY

THE

EFFECT

OF PARAMETERS TO

LOAD

BALANCING IN CLOUD COMPUTING), trong đó chỉ rõ các kỹ thuật cân
bằng tải có rất nhiều cách giải quyết: (i) cân bằng tải sau khi máy chủ bị quá tải;
(ii) cân bằng tải và dự đoán tải tiếp theo nhằm phân bổ tài nguyên; (iii) cải thiện
các tham số ảnh hưởng đến cân bằng tải trên đám mây. Trong nghiên cứu này
cũng đề xuất một số phương pháp nhằm nâng cao hiệu quả cân bằng tải và tang
hiệu suất hoạt động của đám mây. Một nghiên cứu khác của tác giả Trần Công
Hùng cùng các đồng nghiệp [10] vào năm 2017, đó là cân bằng tải dành dựa trên
lý thuyết trò chơi sử dụng cho các máy ảo trên đám mây dựa vào thuật toán tối
ưu hóa theo đàn kiến (Ant Colony Optimization). Trong nghiên cứu này, các tác
giả đã đề xuất giải pháp dành cho các máy ảo nhằm đảm bảo cân bằng các mục
tiêu mà các nhà sử dụng cần bao gồm các nhà cung cấp dịch vụ và khách hàng
của họ dựa trên lý thuyết trò chơi. Ý tưởng chủ đạo là sử dụng thuật toán metaheuristic Ant Colony Optimization (ACO) dựa trên trạng thái cân bằng Nash.

Trong nghiên cứu thực nghiệm, các tác giả đã ứng dụng các thuật toán Ant
System, Ma-Min Ant System, Ant Colony System để giải quyết trò chơi (theo lý
thuyết trò chơi). Thực nghiệm cho thấy cách sử dụng hệ số tương quan nhằm đạt
được cân bằng tải trong việc cung cấp các máy ảo.
Bên cạnh đó, có rất nhiều nghiên và bài báo từ Việt Nam được công bố rộng
rãi về cân bằng tải trên đám mây, tuy nhiên đa số đều ở mức thực nghiệm mô
phỏng, chưa có áp dụng vào thực tế công nghệ cloud hiện tai do tính chất quy mô
của đề tài nghiên cứu.


14

Chương 3: THUẬT TOÁN ĐỀ XUẤT CẢI TIẾN
Trong chương này trình bày về thuật toán được đề xuất về thuật toán cân
bằng tải dựa vào thời gian đáp ứng trên điện toán đám mây, và cách giải quyết vấn
đề cân bằng tải, cụ thể là sử dụng thuật toán dự báo ARIMA để dự báo thời gian
đáp ứng, từ đó đưa ra cách giải quyết phân phối tài nguyên.

3.1 Mô hình nghiên cứu

Mô hình nghiên cứu nhằm mục đích sử dụng thuật toán dự báo ARIMA để nâng cao các th
Về mục tiêu:
-

Giảm thiểu các quá trình truyền thông tin giữa bộ cân bằng tải và các máy
ảo có tài nguyên đang rỗi với các máy chủ.

-

Giảm thời gian đáp ứng các Request từ phía người dùng


-

Hạn chế tối đa sự mất cân bằng tải giữa các máy ảo, ngăn chặn và cảnh báo
trước khi mất cân bằng tải.

-

Tập trung vào thời gian đáp ứng các yêu cầu từ phía người dùng

-

Dự đoán được thời gian đáp ứng tiếp theo từ bất kỳ máy chủ nào cho các
yêu cầu đang được xử lý.

Giả định:
-

Bộ cân bằng tải sẽ biết trước các dịch vụ nào đang chạy trên các máy ảo vào
bất cứ thời điểm nào.

-

Ở đây tập trung vào dịch vụ Web (Web Service), các máy chủ web sẽ biết
trước thời gian đáp ứng của từng dịch vụ chạy trên web và trên từng máy ảo.

-

Nếu hai máy ảo có cấu hình tương đương nhau về RAM, vi xử lý, và I/O thì
thời gian thực thi của các dịch vụ sẽ không mấy là khác nhau.


Mô hình nghiên cứu:
-

Trong mô hình nghiên cứu thì bộ cân bằng tải sẽ chạy thuật toán cân bằng
tải như hình, bộ cân bằng tải có danh sách các máy ảo và các dịch vụ mà
cloud cung cấp. Bộ cân bằng tải biết trước các dịch vụ chạy trên máy ảo nào
và có thể phân bổ dịch vụ mới trên một máy ảo mới theo yêu cầu.


15

-

Trong mô hình này sử dụng một tham số được gọi là ngưỡng thời gian, dựa
vào ngưỡng này, mà biết trước được thời gian đáp ứng tiếp theo. Giả sử máy
ảo thứ 3 được chọn để xử lý yêu cầu trước, kế tiếp yêu cầu mới sẽ được
phân bổ vào máy ảo 4, và lặp đi lặp lại một cách tự nhiên. Điều kiện là máy
ảo có thời gian đáp ứng dự đoán nhỏ hơn ngưỡng được tính toán từ thuật
toán ARIMA, và việc đối xử với các máy ảo là như nhau trong việc phân bổ
các yêu cầu. Nếu không có máy ảo nào trong pool (tập một số máy ảo) đang
xét thỏa điều kiện ngưỡng, thì sẽ phân bổ yêu cầu tới các pool máy ảo kế
tiếp. Máy ảo có thời gian đáp ứng trung bình và dự đoán thấp nhất sẽ được
chọn để xử lý yêu cầu tiếp theo.

Hình 3.1: Mô hình cloud và yêu cầu người dùng có sử dụng cân bằng tải

-

Nếu không có máy ảo nào thỏa điều kiện ngưỡng thì ta có thể xử lý như sau:

+ Nếu có máy ảo không tải, hoặc pool không tải, có thể sử dụng các máy
này để xử lý các yêu cầu, và tất nhiên phải thỏa ngưỡng.
+ Nếu không có máy ảo không tải, hoặc pool không tải, hoặc tất cả đều
không thỏa mãn ngưỡng thì ta sẽ phân bổ dịch vụ đang chạy đó tới máy ảo
có thời gian đáp ứng dự đoán gần với ngưỡng nhất.


16

-

Mô hình này là mô phỏng thuật toán một cách tự nhiên, và lên kế hoạch cho
các yêu cầu tiếp theo nhằm không bị mất cân bằng tải. Theo thuật toán này
sẽ giảm được các tải liên lạc giữa máy ảo và các nguồn tài nguyên hiện có,
vì vậy giảm được băng thông và thông lượng không cần thiết, tăng phục vụ
cho yêu cầu người dùng.

3.2 Đề xuất thuật toán cân bằng tải dựa vào thời gian đáp ứng trên điện
toán đám mây
Dựa vào tham khảo từ tài liệu [12], luận văn này xin đề xuất thuật toán gồm
3 nhóm module chính:
(1) Module tính toán ngưỡng bằng thuật toán ARIMA:
Trong module này, ngưỡng chính là thời gian đáp ứng dự báo của Cloud, sẽ
được tính toán bằng thời gian đáp ứng dự báo bằng thuật toán ARIMA, và sẽ tăng
hoặc giảm tùy theo thời gian đáp ứng theo dữ liệu chuỗi thời gian. Ngưỡng mới
chính là thời gian đáp ứng dự đoán xét trong tập các VM đang xét trong vòng 100
request gần nhất.
Ngưỡng mới = TNew = ARIMA(RT1, RT2,…, RT100)
Trong đó RTi = là chuỗi thời gian đáp ứng ghi lại được của cloud (chỉ xét trong
vòng 100 Request gần nhất)


(2) Module dự báo thời gian đáp ứng tiếp theo cho từng máy ảo:
Trong module này sẽ sử dụng thuật toán ARIMA để dự báo thời gian đáp ứng
tiếp theo của các máy ảo. Việc dự đoán thời gian đáp ứng tiếp theo dựa vào dữ liệu
chuỗi thời gian đáp ứng trong 50 request gần nhất của máy ảo đang xét thông qua
hàm getPredictedRT(). Module này đồng thời cung cấp hàm tính toán ra giá trị dự
đoán gần nhất của các VM so với ngưỡng đưa vào thông qua hàm
AllocateRequestToVM(VM, Request);
PRTi = Prediected Response Time = Thời gian đáp ứng dự đoán của máy ảo i.


17

(3) Module phân bổ các dịch vụ (chọn máy ảo)
Module này có nhiệm vụ phân bổ các yêu cầu đến các máy ảo đạt được điều
kiện ngưỡng thời gian. Nếu một yêu cầu được gửi tới VM đang xét và VM này
không tải, thì yêu cầu này sẽ được chuyển tới trực tiếp VM này, và lấy được giá trị
thời gian đáp ứng. Nếu thời gian đáp ứng dự đoán của VM đang xét (được tính toán
từ module 2) nhỏ hơn thời gian đáp ứng tiếp theo của cloud (tính toán từ module 1)
thì yêu cầu này sẽ được xử lý trên VM này. Ngược lại, không có VM nào thỏa điều
kiện ngưỡng (thời gian đáp ứng dự đoán của VM không nhỏ hơn thời gian đáp ứng
dự đoán của cloud) thì yêu cầu sẽ được phân bổ vào máy ảo có dự báo gần với
ngưỡng nhất.
Việc khởi tạo ngưỡng: ban đầu do chưa có dữ liệu thời gian, nên ta lấy ngưỡng
bằng thời gian đáp ứng của request đầu tiên.
khởi tạo ngưỡng: Tinitial = RT1
.
Các bước của thuật toán:
1. For each Request in CloudRequests
2.

Tnew = ARIMA(RTi); // Module 1
3.
isLocated = false;
4.
For each VM in VMList
5.
If VM.getPredictedRT() < Tnew
6.
AllocateRequestToVM(VM, Request); // Module 3
7.
isLocated = true;
8.
End If
9.
End For
10. If (!isLocated)
11.
VM = VMList.getMinDistance(Tnew); // Module 2
12.
AllocateRequestToVM(VM, Request);
13. End If
14. End For


18

Chương 4: MÔ PHỎNG VÀ ĐÁNH GIÁ THUẬT TOÁN ĐỀ
XUẤT CẢI TIẾN
4.1 Môi trường mô phỏng thực nghiệm
Giả lập môi trường cloud sử dụng bộ thư viện CloudSim và lập trình trên ngôn

ngữ JAVA; Môi trường giả lập cloud là từ 3 đến 10 máy ảo, và tạo môi trường
request ngẫu nhiên tới các dịch vụ trên cloud này. Bao gồm dịch vụ cung cấp máy
ảo, dịch vụ cung cấp và đáp ứng người dùng của cloudSim để thử nghiệm.
Cài đặt thuật toán ARIMA trên môi trường mô phỏng, và kiểm nghiệm ra kết
quả. Tương tự, cài đặt thuật toán của tác giả [12], và so sánh kết quả đạt được giữa
2 thuật toán.
Môi trường mô phỏng giả lập gồm các thông số sau:
-

01 Datacenter với thông số như sau:
Bảng 4.1: Thông số cấu hình Datacenter
Thông tin Datacenter
- Số lượng máy (host) trong
datacenter: 5
- Không sử dụng Storage (các ổ
SAN)
- Kiến trúc(arch): x86
- Hệ điều hành (OS): Linux
- Xử lý (VMM): Xen
- TimeZone: +7 GMT
- Cost: 3.0
- Cost per Memory: 0.05
- Cost per Storage: 0.1
- Cost per Bandwidth: 0.1

-

Thông tin Host trong Datacenter
Mỗi host trong Datacenter có cấu hình
như sau:

- CPU có 4 nhân, mỗi nhân có tốc độ
xử lý là 1000 (mips)
- Ram: 16384 (MB)
- Storage: 1000000
- Bandwidth: 10000

Các máy ảo có cấu hình giống nhau khi được khởi tạo:
Bảng 4.2: Cấu hình máy ảo

Kích
thước
(size)
10000 MB

Ram

Mips

Bandwidth

Số lượng cpu
(pes no.)

VMM

512 MB

250

1000


1

Xen


19

-

Các Request được đại diện bởi Cloudlet trong cloudSim và kích thước của
các Cloudlet được khởi tạo một các ngẫu nhiên bằng hàm random của
JAVA. Số lượng Cloudlet lần lượt là 100  1000.
Bảng 4.3: Cấu hình thông số các Request
Chiều dài
(Length)

Kích thước file
(File Size)

3000 ~ 1700

5000 ~ 45000

Kích thước file
xuất ra
(Output Size)
450 ~ 750

Số CPU xử lý

(PEs)
1

4.2 Thực nghiệm và kết quả mô phỏng
Kết quả chạy thực nghiệm mô phỏng trên CloudSim với 3 máy ảo được dựng
sẵn để đáp ứng các yêu cầu, các yêu cầu được khởi tạo với chiều dài và kích thước
ngẫu nhiên, số lượng Request lần lượt là 100, 200,… đến 900:
Bảng 4.4: Kết qua thực nghiệm mô phỏng với 3 máy ảo
Số lần request
100
200
300
400
500
600
700
800
900

VM0
3491
6736
10082
13550
16574
20049
23712
26531
29491


VM1
3162
6899
9752
13213
17094
20239
23719
26994
30649

VM2
3268
6451
9925
13327
16505
19784
23078
26484
30055

Threshold
3492
6890
10084
13547
17095
20241
23712

26992
30649


20

Hình 4.1: Biểu đồ so sánh thời gian đáp ứng dự báo của 3 máy ảo và ngưỡng

Hình 4.2: Biểu đồ so sánh thời gian đáp ứng dự báo trong trường hợp 3 máy ảo
Kết quả chạy thực nghiệm mô phỏng trên CloudSim với 4 máy ảo được dựng
sẵn để đáp ứng các yêu cầu, các yêu cầu được khởi tạo với chiều dài và kích thước
ngẫu nhiên, số lượng Request lần lượt là 100, 200,… đến 900:


21

Bảng 4.5: kết quả thực nghiệm mô phỏng với 4 máy ảo
Số lần request
100
200
300
400
500
600
700
800
900

VM0
2635

5194
7654
10047
12324
15291
17650
20066
22941

VM1
2443
4986
7700
10251
12564
14984
17411
19700
22334

VM2
2534
5069
7584
9846
12582
14964
17151
19653
22469


VM3
2353
4928
7291
10110
12328
14685
17704
20149
22468

Threshold
2628
5192
7701
10258
12582
15291
17702
20153
22941

Hình 4.3: Biểu đồ so sánh thời gian đáp ứng dự báo của 4 máy ảo và ngưỡng


22

Hình 4.4: Biểu đồ so sánh thời gian đáp ứng dự báo trong trường hợp 4 máy ảo


Kết quả chạy thực nghiệm mô phỏng trên CloudSim với 5 máy ảo được dựng
sẵn để đáp ứng các yêu cầu, các yêu cầu được khởi tạo với chiều dài và kích thước
ngẫu nhiên, số lượng Request lần lượt là 100, 200,… đến 900:
Bảng 4.6: Kết quả thực nghiệm mô phỏng với 5 máy ảo
Số lần request
100
200
300
400
500
600
700
800
900

VM0 VM1
VM2
VM3
VM4
Threshold
1878
1904
2042
1828
2114
2133
4020
3922
4097
3913

3975
4028
6087
6031
5874
5987
5724
6089
7896
7913
8045
7820
7760
8048
9889
9752 10019
9934 10033
10033
12223 11875 12080 12311 12311
12315
13771 14346 13852 13939 14279
14347
15629 16117 16300 15929 16270
16299
18144 17819 17967 18336 18174
18338


23


Hình 4.5: Biểu đồ so sánh thời gian đáp ứng dự báo của 5 máy ảo và ngưỡng

Hình 4.6: Biểu đồ so sánh thời gian đáp ứng dự báo trong trường hợp 5 máy ảo

4.3 Nhận xét kết quả đạt được
Thông qua 03 biểu đồ so sánh thời gian đáp ứng dự báo của các máy ảo với
ngưỡng tính toán (ứng với trường hợp 3 máy ảo, 4 máy ảo và 5 máy ảo) ta có thể


×