Tải bản đầy đủ (.pdf) (63 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 (LV thạc sĩ)

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 (1.04 MB, 63 trang )

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

PHẠM THỊ NGOAN

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 THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

TP. HỒ CHÍ MINH – 2017


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

PHẠM THỊ NGOAN
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
CHUYÊN NGÀNH :
MÃ SỐ:

HỆ THỐNG THÔNG TIN
60.48.01.04

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

NGƯỜI HƯỚNG DẪN KHOA HỌC:


TS. VÕ THỊ LƯU PHƯƠNG

TP. HỒ CHÍ MINH - 2017


i

LỜI CAM ĐOAN
Tôi xin cam đoan luận vă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” này là nghiên cứu của riêng tôi.
Ngoại trừ các tài liệu được tham khảo và đã được trích dẫn trong bài thì kết
quả thuật toán, các số liệu, kết quả mô phỏng trong bài luận văn là trung thực và
chưa từng được ai công bố trong bất kỳ công trình nào khác.

Tp. Hồ Chí Minh, ngày 20 tháng 5 năm 2017
Học viên thực hiện luận văn

Phạm Thị Ngoan


ii

LỜI CẢM ƠN
Trong suốt quá trình học tập, nghiên cứu và hoàn thành luận văn thạc sĩ,
ngoài những cố gắng nỗ lực của bản thân, tôi đã nhận được sự hướng dẫn, giúp đỡ
quý báu của quý Thầy cô, cùng với sự động viên khích lệ và ủng hộ của đồng
nghiệp, bạn bè và gia đình. Với lòng kính trọng và biết ơn sâu sắc tôi xin được gửi
lời cảm ơn chân thành tới:
Ban giám hiệu, Học viện Bưu chính Viễn thông, Phòng đào tạo sau đại học
đã tạo điều kiện thuận lợi giúp tôi hoàn thành chương trình học tại trường. Tôi xin

chân thành cảm ơn TS.Võ Thị Lưu Phương, PGS.TS Trần Công Hùng đã chỉ bảo,
hướng dẫn và giúp đỡ tôi trong suốt quá trình học tập và làm luận văn tốt nghiệp.
Bên cạnh đó tôi cũng xin chân thành cảm ơn ThS. Nguyễn Xuân Phi và ThS.
Bùi Thanh Khiết đã giúp đỡ, hỗ trợ tận tình trong suốt quá trình làm luận văn tốt
nghiệp.
Tôi xin bày tỏ lòng biết ơn đến lãnh đạo Trường đại học Kiến trúc TP.Hồ
Chí Minh – nơi mà tôi đang công tác, đặc biệt là những đồng nghiệp cùng phòng đã
hỗ trợ và tạo điều kiện để tôi có thể học tập và nghiên cứu đề tài một cách tốt nhất.
Tôi xin cảm ơn những người trong gia đình tôi, đã tạo điều kiện và luôn luôn
động viên khích lệ tinh thần để tôi có thể chuyên tâm học tập và thực hiện luận văn
tốt nghiệp.
Mặc dù đã có nhiều cố gắng, nhưng do thời gian và kinh nghiệm nghiên cứu
khoa học còn nhiều hạn chế nên không 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ô và bạn bè để kiến thức của tôi ngày một hoàn
thiện hơn.
Tp. Hồ Chí Minh, ngày 20 tháng 5 năm 2017
Học viên thực hiện luận văn

Phạm Thị Ngoan


iii

MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................. iii
DANH SÁCH BẢNG .................................................................................................v
DANH SÁCH HÌNH VẼ ...........................................................................................vi
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 ........................................................................3
1.2 Kiến trúc của điện toán đám mây..........................................................................5
1.3 Các mô hình dịch vụ của điện toán đám mây .......................................................7
1.4 Tổng quan về cân bằng tải ....................................................................................8
1.4.1 Khái quát về cân bằng tải ..........................................................................8
1.4.2 Chức năng và ưu điểm cân bằng tải ..........................................................9
1.4.3 Các thông số đo lường trong cân bằng tải ...............................................11
1.5 Cân bằng tải trên môi trường điện toán đám mây ...............................................12
1.5.1 Cân bằng tải tĩnh ......................................................................................14
1.5.2 Cân bằng tải động ....................................................................................15
1.5.3 Một số vấn đề trong cân bằng tải động ...................................................16
1.6 Bộ mô phỏng điện toán đám mây CloudSim......................................................17
1.6.1 Thiết kế các lớp trong CloudSim.............................................................17
1.6.2 Luồng giao tiếp giữa các thực thể lõi trong CloudSim ...........................20
1.7 Tính cấp thiết của đề tài ......................................................................................21
1.8 Tình hình nghiên cứu ..........................................................................................22
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 ........................................................................................24


iv

2.1 Giới thiệuchung ..................................................................................................24
2.2 Thuật toán Round-Robin ....................................................................................24
2.3 Thuật toán Weighted Round-Robin....................................................................25
2.4 Thuật toán cải tiến Max-min trong môi trường điện toán đám mây ..................26
2.4.1 Quy trình chọn yêu cầu để cấp phát máy ảo ...........................................26
2.4.2 Cập nhật hàng đợi công việc cần xử lý và máy ảo ..................................27
2.4.3 Đánh giá thuật toán..................................................................................28

2.5 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.28
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 .......................29
2.5.2 Đánh giá thuật toán..................................................................................31
2.6 Thuật toán Throttled ...........................................................................................31
2.6.1 Giải thuật thuật toán Throttled ................................................................31
2.6.2 Đánh giá thuật toán..................................................................................32
CHƯƠNG 3 - THUẬT TOÁN ĐỀ XUẤT ...............................................................35
3.1 Giới thiệu.............................................................................................................35
3.2 Thuật toán cải tiến ...............................................................................................36
3.2.1 Ý tưởng ....................................................................................................36
3.2.2 Cơ sở tính toán cho giải thuật cải tiến .....................................................36
3.2.3 Thiết kế thuật toán ...................................................................................39
3.2.4 Thiết lập mô hình dữ liệu đám mây mô phỏng .......................................41
3.2.5 Kết quả thực nghiệm mô phỏng ..............................................................45
3.3 Kết luận ...............................................................................................................52
CHƯƠNG 4- KẾT LUẬN VÀ KIẾN NGHỊ ............................................................53
DANH MỤC CÁC TÀI LIỆU THAM KHẢO .........................................................54


v

DANH SÁCH BẢNG

Bảng 2.1 Bảng so sánh các thuật toán cân bằng tải

33

Bảng 3.1 Giá trị các tham số trong thiết lập đám mây

41


Bảng 3.2 Thiết lập tham số cấu hình các máy ảo

42

Bảng 3.3 Thiết lập tham số các Cloudlet

42

Bảng 3.4 Kết quả mô phỏng trên thuật toán Throttled (50 Cloudlets)

45

Bảng 3.5 Kết quả mô phỏng trên thuật toán cải tiến (50 Cloudlets)

47

Bảng 3.6 So sánh kết quả mô phỏng giữa hai thuật toán Throttled và

50

thuậttoán cải tiến(Số lượng Cloudlet lần lượt là 10, 20, 30, 40, 50, 60, 70,
80, 90, 100)


vi

DANH SÁCH HÌNH VẼ

Hình 1.1 Mô hình điện toán đám mây


4

Hình 1.2 Các thành phần trong điện toán đám mây

6

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

14

Hình 1.4 Mô hình cân bằng tải tại một nút xử lý

15

Hình 1.5 Chiến lược di trú tải trong cân bằng tải động

16

Hình 1.6 Sơ đồ thiết kế lớp trong CloudSim

18

Hình 1.7 Luồng giao tiếp giữa các thực thể lõi trong CloudSim

21

Hình 2.1 Mã giả thuật toán quy trình cấp phát máy ảo

26


Hình 2.2 Mã giả thuật toán cập nhật hàng đợi công việc và máy ảo

27

Hình 2.3 Mã giả thuật toán tránh tắc nghẽn trong cân bằng tải

30

Hình 3.1 Lưu đồ thuật toán cải tiến

40

Hình 3.2 Biểu đồ thể hiện thời gian cấp phát tài nguyên cho 50 cloudlet
49
trong một Datacenter của hai thuật toán
Hình 3.3 Biểu đồ so sánh thời gian xử lý dữ liệu trung bình của hai thuật

51

toán
Hình 3.4 Biểu đồ so sánh thời gian đáp ứng trung bình của hai thuật toán

51


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 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


2


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 clientserver (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 [3]

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 được thiết lập và cung cấp
cho rộng rãi người dùng thông qua Internet. Nó còn được biết như là đám mây
nhiều thuê bao với các đặc trưng cơ bản là hạ tầng thống nhất, chính sách chung,
nguồn lực chia sẻ cho nhiều thuê bao, đa qui mô. Mô hình đám mây này thường ít
an toàn hơn các mô hình khác và thường chỉ cung cấp các dịch vụ phần mềm chung

nhất như bộ phần mềm văn phòng, chat, họp trực tuyến,…
Đám mây riêng (Private Cloud): đám mây được thiết lập chỉ cho một tổ
chức tương tự như một mạng nội bộ. Nó có thể được quản lý bởi chính tổ chức đó


5

hoặc một bên thứ ba và có thể tồn tại trên cơ sở hạ tầng trước đó đã có. Mô hình này
còn được gọi là đám mây nội bộ và thường chỉ dành quyền truy cập vào tài nguyên
của nó cho người dùng trong nội bộ tổ chức là chủ sở hữu đám mây. Đặc điểm cơ
bản của đám mây riêng là hạ tầng không đồng nhất, chính sách “may đo” và tùy
chỉnh, tài nguyên dành riêng, cơ sở hạ tầng “cây nhà lá vườn”. Tuy nhiên do chỉ có
các tổ chức và người dùng được phép mới có thể truy cập nên nó có thể được bảo vệ
bởi các quy trình, quy chế bảo mật riêng, điều này làm cho nó khó bị tấn công hơn.
Đám mây cộng đồng (Community Cloud): đây là dạng đám mây mà hạ
tầng được chia sẻ bởi một vài tổ chức. Nó hỗ trợ một vài thứ chung của cộng đồng
đó, chẳng hạn như nhiệm vụ, chính sách bảo mật....
Đám mây hỗn hợp (Hybrid Cloud): hạ tầng của đám mây là một sự kết nối
của nhiều mô hình triển khai đám mây (chung, riêng, cộng đồng).

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:
Hạ tầng: cơ sở hạ tầng (Infrastructure) của điện toán đám mây là phần cứng
được cung cấp như là các dịch vụ, nghĩa là được chia sẻ và có thể sử dụng lại dễ
dàng. Các tài nguyên phần cứng được cung cấp theo thời gian cụ thể theo yêu cầu.
Dịch vụ kiểu này giúp cho khách hàng giảm chi phí bảo hành, chi phí sử dụng,…
Lưu trữ (Storage): lưu trữ đám mây là khái niệm tách dữ liệu khỏi quá trình
xử lý và chúng được lưu trữ ở những vị trí từ xa. Lưu trữ đám mây cũng bao gồm cả
các dịch vụ cơsở dữ liệu, ví dụ như BigTable của Google, SimpleDB của
Amazon,…

Nền tảng: là dịch vụ phát triển phần mềm ứng dụng và quản lý các yêu cầu
phần cứng, nhu cầu phần mềm. Ví dụ nền dịch vụ như khung ứng dụng Web, web
hosting,…


6

Ứng dụng: ứng dụng đám mây (Cloud Application) là một đề xuất về kiến
trúc phần mềm sẵn sàng phục vụ, nhằm loại bỏ sự cần thiết phải mua phần mềm, cài
đặt, vận hành và duy trì ứng dụng tại máy bàn/thiết bị của người sử dụng. Ứng dụng
đám mây loại bỏ được các chi phí để bảo trì và vận hành các chương trình ứng
dụng.
Dịch vụ: dịch vụ đám mây là một phần độc lập có thể kết hợp với các dịch vụ
khác để thực hiện tương tác, kết hợp giữa các máy tính với nhau để thực thi chương
trình ứng dụng theo yêu cầu trên mạng. Ví dụ về các dịch vụ hiện nay như: simple
Queue Service, Google Maps, các dịch vụ thanh toán linh hoạt trên mạng của
Amazon,…
Khách hàng: bao gồm phần cứng và phần mềm, để dựa vào đó khách hàng có
thể truy cập và sử dụng các ứng dụng, dịch vụ được cung cấp từ điện toán đám mây.
Ví dụ như máy tính và đường dây kết nối Internet và các trình duyệt web.

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



7

1.3 Các mô hình dịch vụ của điện toán đám mây
Dịch vụ điện toán đám mây rất đa dạng và bao gồm tất cả các lớp dịch vụ
điện toán từ cung cấp năng lực tính toán trên lưới máy chủ hiệu năng cao hay các
máy chủ ảo, không gian lưu trữ dữ liệu, hay một hệ điều hành, một công cụ lập
trình, hay một ứng dụng kế toán... Các dịch vụ cũng được phân loại khá đa dạng,
nhưng các mô hình dịch vụ điện toán đám mây phổ biến nhất có thể được phân
thành ba nhóm:
Dịch vụ hạ tầng IaaS (Infrastructure as a Service):
IaaS cung cấp dịch vụ cơ bản bao gồm năng lực tính toán, không gian lưu
trữ, kết nối mạng tới khách hàng. Khách hàng (cá nhân hoặc tổ chức) có thể sử dụng
tài nguyên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cài đặt ứng dụng riêng
cho mình. Với dịch vụ này khách hàng làm chủ hệ điều hành, lưu trữ và các ứng
dụng do khách hàng phát triển và cài đặt. Khách hàng điển hình của dịch vụ IaaS có
thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng của mình.
Ví dụ điển hình về dịch vụ này là dịch vụ EC2của Amazon. Khách hàng có
thể đăng ký sử dụng một máy tính ảo trên dịch vụ của Amazon và lựa chọn một hệ
điều hành (ví dụ như Windows hoặc Linux) và tự cài đặt ứng dụng của mình.
Dịch vụ nền tảng PaaS (Platform as a Service):
PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển các phần
mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng Cloud
đó. Dịch vụ PaaS có thể được cung cấp dưới dạng các hạ tầng trao đổi thông tin ứng
dụng (middleware), các nền tảng ứng dụng (application server) cùng các công cụ
lập trình với ngôn ngữ lập trình nhất định để xây dựng ứng dụng. Dịch vụ PaaS
cũng có thể được xây dựng riêng và cung cấp cho khách hàng thông qua một giao
diện lập trình ứng dụng riêng. Khách hàng xây dựng ứng dụng và tương tác với hạ
tầng điện toán đám mây thông qua giao diện ứng dụng đó. Ở mức PaaS, khách hàng



8

không quản lý nền tảng đám mây hay các tài nguyên lớp như hệ điều hành, lưu trữ ở
lớp dưới. Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng
dụng (ISV).
Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép
khách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát
triển dựa trên ngôn ngữ lập trình Java hoặc Python.
Dịch vụ Phần mềm SaaS (Software as a Service):
SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu cầu cho
nhiều khách hàng với chỉ một phiên bản cài đặt. Khách hàng lựa chọn ứng dụng phù
hợp với nhu cầu và sử dụng mà không quan tâm tới hay bỏ công sức quản lý tài
nguyên tính toán bên dưới.
Điện toán đám mây cung cấp 3 mô hình dịch vụ cơ bản kể trên với một số
đặc trưng chính: thuê bao theo yêu cầu, nhiều thuê bao, dùng bao nhiêu trả bấy
nhiêu. Về mặt kỹ thuật, đám mây là một tập hợp tài nguyên tính toán rộng lớn và
cung cấp 3 dịch vụ nói trên.

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à một tính năng công nghệ rất quan trọng trong ngành mạng
máy tính, giúp các máy chủ ảo hoạt động đồng bộ và hiệu quả hơn thông qua việc
phân phối đồng đều tài nguyên.
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 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ể.



9

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ủ.
Quá trình cân băng tải là quá trình xử lý giúp cho hệ thống tránh hiện tượng
tắc nghẽn xảy ra do mất cân bằng tải. Cân bằng tải cũng đề cập đến vấn đề xử lý lỗi
trong tình huống khi một trong các thành phần của các dịch vụ bị lỗi trong khi các
dịch vụ tiến hành giao tiếp thông tin với nhau. Điều đó có nghĩa cân bằng tải cung
cấp một máy cho phép tự động cấp phép, tái cấp phép mà không cần phải cấu hình
lại mạng. Đặc trưng cân bằng tải được thừa kế từ mô hình điện toán lưới (Grid
computing).

1.4.2 Chức năng và ưu điểm cân bằng tải
Chức năng của cân bằng tải:
Chặn lưu lượng mạng (chẳng hạn lưu lượng web) đến một trang web. Bản
thân thiết bị cân bằng tải có thể là một Proxy hay một Firewall tầng ứng dụng
(Application Layer), nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia tải,
do đó, chức năng này được coi như là thiết yếu của một cân bằng tải.
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 đó. Đây là chức năng chủ chốt của cân bằng tải. Tùy vào thuật
toán áp dụng mà sẽ có từng cách thức khác nhau để phân chia cụ thể cho mỗi máy
chủ.
Duy trì một cơ chế ở những máy chủ đang sẵn sàng. Giữa cân bằng tải và
máy chủ luôn phải có liên lạc với nhau (Keep Alive) để biết được máy chủ đó còn
“sống” hay khô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 failover.



10

Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn
cookie và biên dịch XML. Đây được coi là một trong những tiêu chí chia tải của hệ
thống.
Ưu điểm của cân bằng tải:
Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ, đảm bảo tính
linh hoạt và mở rộng cho hệ thống.
Tăng độ tin cậy và khả năng dự phòng cho hệ thống: Sử dụng cân bằng tải
giúp tăng tính sẵn sàng (High Availability) cho hệ thống, đồng thời đảm bảo cho
người dùng không bị gián đoạn dịch vụ khi xảy ra lỗi sự cố lỗi tại một điểm cung
cấp dịch vụ.
Tăng tính bảo mật cho hệ thống: Thông thường khi người dùng gửi yêu cầu
dịch vụ đến hệ thống, yêu cầu đó sẽ được xử lý trên bộ cân bằng tải, sau đó thành
phần cân bằng tải mới chuyển tiếp các yêu cầu cho các máy chủ bên trong. Quá
trình trả lời cho khách hàng cũngthông qua thành phần cân bằng tải, vì vậy mà
người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương
pháp phân tải được sử dụng. Bằng cách này có thể ngăn chặn người dùng giao tiếp
trực tiếp với các máy chủ, ẩn các thông tin và cấu trúc mạng nội bộ, ngăn ngừa các
cuộc tấn công trên mạng hoặc các dịch vụ không liên quan đang hoạt động trên các
cổng khác.
Tính linh hoạt (Flexibility): Hệ thống cho phép bổ sung và loại bỏ các máy
chủ bất kỳ khi nào cần và hiệu quả ngay tức thì. Thực tế, việc này không làm gián
đoạn tới hoạt động của cả hệ thống, mà chỉ tại một điểm (node) trong hệ thống đó.
Điều này cho phép duy trì, sửa chữa bất kỳ máy chủ nào trong hệ thống (thậm chí
trong giờ cao điểm) mà ít tác động hoặc không có tác động nào tới hệ thống. Một
cân bằng tải (Load Balancer) cũng có thể trực tiếp điều khiển lưu lượng mạng bằng
cách sử dụng tập tin cookie, phân tích cú pháp URL, các thuật toán tĩnh hoặc động...
để tìm ra cách phân tải tối ưu cho hệ thống.



11

Tính sẵn sàng cao (High Availability): Hệ thống sẽ liên tục kiểm tra trạng
thái của các máy chủ trong hệ thống và tự động “loại” bất kỳ máy chủ nào không
“trả lời” trong một chu kỳ, cũng như tự động bổ sung máy chủ đó ngay khi nó hoạt
động trở lại. Quá trình này là hoàn toàn tự động, thông qua cơ chế giao tiếp của cân
bằng tải và các máy chủ, không cần có sự tham gia điều khiển trực tiếp của người
quản trị. Do dó, một hệ thống cân bằng tải hướng đến tính dự phòng cho thiết bị
chính trong trường hợp có thiết bị nào đó bị “hỏng”.
Khả năng mở rộng (Scalability): Cân bằng tải chịu trách nhiệm phân phối tải
tới nhiều máy chủ trong một hệ thống (Server Farm theo mặt vật lý và được gọi là
Server Cluser – các bó Server), với mục đích là nâng cao hiệu quả, tăng sức mạnh
phục vụ với số lượng lớn các máy chủ. Điều này mang lại lợi ích lớn về kinh tế, vì
chỉ phải chi phí cho nhiều máy chủ nhỏ, thay vì đầu tư cho một máy chủ lớn, thiết
bị chuyên dụng. Ngoài ra, trong quá trình hoạt động, số các máy chủ có thể thay
đổi, thêmbớt, loại bỏ, thay thế một cách dễ dàng mà không ảnh hưởng đến hoạt
động của hệ thống, giữ cho hệ thống luôn có tính sẵn sàng cao.

1.4.3 Các thông số đo lường trong cân bằng tải
Để đo lường các thuật toán cân bằng tải trong môi trường điện toán đám mây
người ta thường xem xét tới rất nhiều thông số khác nhau. Mỗi thuật toán sẽ có
những cách đánh giá khác nhau, tùy vào mục đích sử dụng và yêu cầu từ người sử
dụng.Tuy vậy, các thuật toán cân bằng tải cũng căn cứ vào một số thông số cơ bản
để đo lường như: phí tổn, hiệu suất, thời gian đáp ứng, khả năng mở rộng, thông
lượng, khả năng chịu lỗi, ngay cả lượng khí thải cũng được tính đến [4].
Thời gian đáp ứng: là thời gian từ lúc có yêu cầu của người dùng đến khi có
đáp ứng đầu tiên. Thời gian đáp ứng càng nhỏ thì hiệu suất của thuật toán cân bằng
tải càng cao.

Chi phí: là chi phí trong quá trình thực hiện thuật toán cân bằng tải như chi
phí di chuyển tác vụ, phối hợp các tiến trình, bộ xử lý. Để đánh giá một thuật toán


12

cân bằng tải người ta sẽ xem xét nhiều tới vấn đề chi phí, vì vậy để thuật toán cân
bằng tải hoạt động hiệu quả thì phải giảm thiểu chi phí thấp nhất có thể.
Thông lượng: thông lượng càng lớn thì hiệu năng của thuật toán cân bằng tải
càng cao. Nó thể hiện bằng số lượng các tác vụ đã được thực thi.
Hiệu năng: thể hiện hiệu quả của hệ thống. Một thuật toán cân bằng tải hiệu
quả nó phải có chi phí hợp lý, giảm thời gian đáp ứng và độ trễ có thể chấp nhận
được.
Sử dụng nguồn tài nguyên: trong một thuật toán cân bằng tải sự tận dụng tài
nguyên sẵn có là vô cùng quan trọng, việc sử dụng tài nguyên cần phải hợp lý và tối
ưu.
Khả năng mở rộng: là khả năng của một thuật toán có thể thực hiện với số
lượng nút khác nhau, áp dựng được với nhiều hệ thống khác nhau.
Khả năng chịu lỗi: một thuật toán cân bằng tải tốt sẽ có khả năng chịu lỗi tốt.
Khi bất kỳ một nút tải nào đó bị lỗi, vẫn không ảnh hưởng đến khả năng cân bằng
tải của hệ thống.
Thời gian di trú: là thời gian di trú các tác vụ hoặc tài nguyên từ nút này ới
nút khác. Thời gian di trú càng nhỏ thì hiệu suất của thuật toán cân bằng tải càng
cao.
Lượng khí thải: đây cũng là một thông số để đánh giá trong cân bằng tải.
Việc sử dụng cơ sở hạ tầng càng nhiều thì việc tiêu thụ năng lượng cũng tăng lên,
dẫn tới lượng khí thải ra môi trường càng lớn. Lượng khí thải càng nhỏ, thuật toán
cân bằng tải được đánh giá có hiệu suất tốt hơn.

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


13

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 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 [5]:
-

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.
Để đo hiệu quả của 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 việc mô phỏng là rất cần thiết. CloudSim [6] là một công cụ có hiệu quả khá
tốt trong việc sử dụng để mô phỏng 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. CloudSim gồm những thành phần cơ bản cho phép người dùng có
thể thiết lập và tính toán thuật toán cân bằng tải trên môi trường điện toán đám mây
cơ bản. Nhờ có công cụ hữu ích này mà 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 ngày càng được quan tâm nghiên cứu và đạt được những kết quả
đáng mong đợi.
Kỹ thuật cân bằng tải hiện nay chủ yếu tập trung vào hai kỹ thuật là cân bằng
tải tĩnh và cân bằng tải động.
Kỹ thuật cân bằng tải tĩnh không thu thập thông tin trạng thái hiện tại của hệ
thống. Những yếu tố được đo lường trước khi gán công việc cho một nút tính toán
như thời gia đến, qui mô nguồn tài nguyên, thời gian thực thi và giao tiếp các tiến
trình.
Kỹ thuật cân bằng tải động trong tự nhiên không xem xét trạng thái trước đó
hoặc hành vi của hệ thống, nó chỉ phụ thuộc vào hành vi hiện tại của hệ thống.


14

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 [7]

1.5.1 Cân bằng tải tĩnh
Trong cân bằng tải tĩnh, số lượng công việc của mỗi nút là cố định. Khi các
tiến trình chạy nó sẽ không được gán lại hay thu thập bất kỳ thông tin nào về các
nút mà chỉ thực hiện theo đúng biên dịch từ ban đầu. Các quy tắc trong thuật toán
cân bằng tải tĩnh được lập trình trước và không có sự thay đổi nào. Việc phân phối
công việc cho các nút tính toán dựa trên các thông số như thời gian đến, cấu hình tài


15

nguyên có sẵn, thời gian thực thi và phân phối giao tiếp giữa các tiến trình. Tất cả
các thông số này cần được đo trước khi gán, đây là lý do tại sao cân bằng tải tĩnh

còn được gọi là thuật toán xác suất. Như vậy, không có sự di trú công việc ở thời
gian chạy trong cân bằng tải tĩnh [8].
Một thuật toán điển hình cânvề bằng tải tĩnh đó là thuật toán Round-Robin.
Hình 1.4 miêu tả hoạt động cân bằng tải tĩnh tại một nút xử lý. Ở tại mỗi nút này
các tác vụ sẽ được chuyển đến “hàng đợi chuyển giao”. Sau đó được phân phối tới
“hàng đợi ngưỡng”. Khi một công việc được gán tới “hàng đợi ngưỡng” thì nó sẽ
không thể được di trú tới bất kỳ nút nào nữa. Thông qua mạng truyền thông, các tác
vụ sẽ được xử lý tại nút đó hoặc di trú sang một nút bất kỳ.

Hình 1.4: Mô hình cân bằng tải tại một nút xử lý [8]

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


16

độ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].

Hình 1.5: Chiến lược di trú tải trong cân bằng tải động [8]

1.5.3 Một số vấn đề trong cân bằng tải động
Để thiết kế thuật toán cân bằng tải động ta phải xem xét tới các vấn đề sau
[8]:
- Để có thể phân công xử lý công việc cho các nút tính toán sẽ 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.


17

- 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.
- 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
CloudSim là bộ thư viện dùng để hỗ trợ mô hình hóa hệ thống điện toán đám
mây. Các thành phần của bộ mô phỏng CloudSim bao gồm: Trung tâm môi giới –
Broker, trung tâm dữ liệu, máy ảo, các chính sách cung cấp nguồn tài nguyên và các
chính sách quản lý các thành phần khác nhau của hệ thống. Nhờ có các thành phần
này mà người dùng có thể đánh giá các chiến lược mới trong việc sử dụng đám mây
như các chính sách, thuật toán lập lịch, chính sách cân bằng tải……Bộ thư viện
CloudSim dùng để đánh giá hiệu quả của các chiến lược để tăng tốc thời gian thực
thi của các ứng dụng. Các lớp thư viện trong CloudSim nhằm mục đích phục vụ cho
vấn đề nghiên cứu. Giúp cho người sử dụng dễ dàng mô phỏng thuật toán, chiến
lược trong cân bằng tải. Tất cả các chi tiết về thông số, mô hình đều được trừu


×