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

Nghiên cứu kỹ thuật auto – scaling trong cloud computing (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 (806.27 KB, 34 trang )

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

NGUYỄN TRUNG HIẾU

NGHIÊN CỨU KỸ THUẬT AUTO-SCALING
TRONG CLOUD COMPUTING
CHUYÊN NGÀNH :

HỆ THỐNG THÔNG TIN

MÃ SỐ:

60.48.01.04

0

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN HỒNG SƠN

TP.HỒ CHÍ MINH – 2016


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: TS. NGUYỄN HỒNG SƠN

Phản biện 1: ………………………………………………


Phản biện 2: ………………………………………………

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: ... giờ .... ngày ..... tháng .... năm ….....

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
Trong thời gian qua, Công nghệ thông tin đã phát triển với mức độ ngày càng
nhanh về phần cứng lẫn phần mềm. Bên cạnh sự phát triển này, có một lĩnh vực cũng đang
trên đà phát triển và cũng là xu thế, một sự kết hợp của sự phát triển phần cứng lẫn phân
mềm đó là lĩnh vực điện toán đám mây. Điện toán đám mây giúp cho người sử dụng nó dễ
dàng, không cần có đội ngũ xử lý sự cố phần cứng cũng như phần mềm. Nó đáp ứng mọi
nhu cầu của người sử dụng, trong mọi ngành từ kỹ thuật đến kinh doanh hay giải
trí,…Người dùng có thể tiếp cận ở mọi nơi, mọi lúc miễn là có sử dụng Internet. Với sở sở
hạ tầng của Internet, tất cả các ứng dụng người dùng cần đều được đáp ứng chỉ bởi một
trình duyệt, một ứng dụng web, hoặc một API là người dùng có được trên một máy tính
(máy tính ảo) với những chương trình đã được cài đặt sẵn và người dùng chỉ cần chi trả
những gì sử dụng trên máy tính đó [3].
Dữ liệu được tiếp cận thông qua điện toán đám mây khiến người sử dụng có tất cả
các quyền của máy chủ mà không phải vất vả thiết lập, bảo trì và cải tiến hệ thống (đó là
việc của nhà cung cấp). Một điều quan trọng mà chúng ta cần quan tâm đó là dữ liệu rất an
toàn nếu phần cứng có hư thì dữ liệu vần nguyên vẹn.
Một đặc điểm khá thú vị là với điện toán đám mây người sử dụng có thể kết nối được
bất kỳ ở đâu, với bất kỳ thiết bị nào dù nó là điện thoại smart phone hay laptop, máy tính

bảng,… mà vẫn không hề thấy sựu khác biệt. Tất cả đều nhờ vào điện toán đám mây, nhờ
vào các nhà cung cấp điện toán đám mây. Nói thì đơn giản thế nhưng hàng ngày các kỹ sư,
các lập trình viên, các nhà khoa học máy tính phải nghiên cứu mới có được một hế thống đa
năng, hữu ích như thế.
Một vấn đề khó khăn được đặt ra là làm sao có thể sử dụng tài nguyên của điện toán
đám mây hiệu quả. Ví dụ : Các trang mạng xã hội trên hệ thống của điện toán đám mây có
số lượng thành viên cao. Vào ban ngày, lượng thành viên truy cập sẽ nhiều khi đó tài
nguyên được sử dụng tối đa, nếu tính toán không khéo thì sẽ bị nghẽn. Còn vào ban đêm
lượng truy cập sẽ giảm khi đó tài nguyên sẽ dư thừa. Cũng tương tự như vậy các trang bán
hàng có web đặt trên các hệ thống điện toán đáp mây vào những ngày có chương trình
khuyến mãi khi đó lượng người mua hàng sẽ truy cập vào rất đông và tài nguyên hệ thống
sẽ được sử dụng tối đa. Còn vào những ngày bình thường khác thì số lượng truy cập sẽ giảm
nhiều đáng kể.
Người dùng có xu hướng thuê gói tài nguyên tiết kiệm theo nhu cầu sử dụng thông
thường. Nếu dịch vụ người dùng không có tình trạng đột biến tải thì không có vấn đề vì xảy
ra. Tuy nhiên nếu xuất hiện tăng tải quá mức sẽ dẫn đến suy thoái dịch vụ do thiếu tài
nguyên. Yêu cầu đặt ra là làm sao cho phép người dùng đăng ký với gói tiết kiệm nhưng khi
có đột biến tải ngắn hạn thì vẫn có thêm tài nguyên để làm việc. Cơ chế cho phép điều này
trong điện toán đám mây được gọi là Auto-scaling.


2
Nếu hệ thống điện toán đám mây có cung cấp dịch vụ Auto-scaling, nó sẽ giúp cho
hệ thống dịch vụ của người dùng luôn có tài nguyên bổ sung và chất lượng dịch vụ sẽ không
bị suy giảm.
Nguyên lý làm việc cơ bản của kỹ thuật autoscaling chỉ là cấp phát bổ sung tài
nguyên một cách tạm thời khi thiếu và thu hồi lại khi không còn cần thiết. Tuy nhiên, việc
xác định đúng đối tượng thiếu, cung cấp kịp thời với lượng tài nguyên vừa đủ và thu hồi
đúng lúc là điều không dễ dàng. Mặc dù đã có các nghiên cứu và triển khai dịch vụ
autoscaling trên thực tế, ví dụ như Amazon, nhưng vấn đề này vẫn mang tính thời sự và

đang đặt ra nhiều thách thức đối với cộng đồng nghiên cứu về điện toán đám mây. Đây cũng
là lý do đề tài “NGHIÊN CỨU KỸ THUẬT AUTO-SCALING TRONG CLOUD
COMPUTING” được chọn cho luận văn Thạc sĩ này.


3

Chương 1 - CƠ SỞ LÝ LUẬN
1.1 Tổng quan và động cơ thúc đẩy:
Ngày nay công nghệ thông tin (CNTT) phát triển rất nhanh chóng, nắm giữ vai trò
quan trọng trong việc thúc đấy sự tăng trưởng kinh tế. Ứng dụng một công nghệ hay một
dịch vụ CNTT đáp ứng việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu
khách hàng, đối tác ngày càng lớn lên là một trong những bài toán được ưu tiên hàng đầu,
đang không ngừng gây khó khăn cho doanh nghiệp. Và điện toán đám mây (ĐTĐM) đã trở
thành nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ
không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc
kinh doanh của mình. Hiệu quả và lợi nhuận ngày càng cao hơnđã giúp điện toán đám mây
trở nên quen thuộc đối với các doanh nghiệp[1].

1.1.1 Kiến trúc điện toán đám mây:
ĐTĐM còn gọi là điện toán máy chủ ảo, là mô hình tính 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ữ "cloud computing" ra đời giữa năm 2007 không phải để nói về một trào
lưu mới, mà để khái quát lại các hướng phát triển của cơ sở hạ tầng CNTT vốn đã và đang
diễn ra từ những năm qua. Quan niệm này có thể được diễn giải một cách đơn giản: các
nguồn tính toán khổng lồ như các phần cứng (máy chủ ), phần mềm, và các dịch vụ (chương
trình ứng dụng), … sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy
tính gia đình và văn phòng (trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần.
Theo tổ chức xã hội máy tính IEEE, “Điện toán đám mây là hình mẫu trong đó thông
tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời

ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh
nghiệp, các phương tiện máy tính cầm tay, …"
Điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán lưới (grid computing)
trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm
dịch vụ (SaaS).
Điện toán đám mây là mô hình tập trung vào việc chia sẻ dữ liệu và tính toán trên
một nút mạng có :
 Khả năng mở rộng,
 Đi đến các máy tính người dùng cuối


4
 Các trung tâm dữ liệu
 Các dịch vụ web.

1.1.2 Các mô hình dịch vụ đám mây
a.Phần mềm như một dịch vụ (SaaS): Người sử dụng sử dụng các nhà cung cấp ứng
dụng đang chạy trên một cơ sở hạ tầng điện toán đám mây. Các ứng dụng có thể truy cập từ
các thiết bị khách hàng khác nhau thông qua một giao diện khách hàng nhỏ như một trình
duyệt web (ví dụ, email trên nền web, Google Docs)
b. Nền tảng như một dịch vụ (PaaS): Người sử dụng sử dụng platform để triển khai
cho các ứng dụng cơ sở hạ tầng điện toán đám mây được tạo bởi khách hàng hoặc mua ứng
dụng được tạo ra bằng cách sử dụng ngôn ngữ lập trình và các công cụ hỗ trợ của nhà cung
cấp (ví dụ, Google App Engine, Microsoft Azure).
c.Cơ sở hạ tầng như một dịch vụ (IaaS):. Người sử dụng được cung cấp để xử lý,
lưu trữ, mạng, và các tài nguyên máy tính cơ bản khác từ các nhà cung cấp dịch vụ (ví dụ,
Amazon Web Services).
Ngoài ra, còn có hai mô hình cũng được cho là cơ bản :
d.Mạng như một dịch vụ (NaaS): Đây là một loại dịch vụ đám mây, có khả năng
cung cấp cho người sử dụng dịch vụ điện toán đám mây để sử dụng dịch vụ kết nối mạng và

dịch vụ kết nối mạng liên đám mây. NaaS liên quan đến việc tối ưu hóa việc phân bổ nguồn
lực bằng cách xem xét mạng và tài nguyên máy tính như một thể thống nhất.
e.Mọi thứ như một dịch vụ (XaaS): Xaas là một thuật ngữ phổ biến và bao gồm
một sô gì đó. Nó có thể được sử dụng như "X như một dịch vụ", "Bất cứ điều gì như một
dịch vụ" và "Tất cả mọi thứ như một dịch vụ". Các ví dụ phổ biến nhất của XaaS được lưu
trữ như một dịch vụ, truyền thông như một dịch vụ, giám sát như một dịch vụ và xử lý thất
bại như một dịch vụ.

1.1.3 Các mô hình triển khai
Dịch vụ điện toán đám mây có thể được triển khai với nhiều phương pháp khác nhau
tùy thuộc vào các tổ chức và địa điểm. Bốn mô hình triển khai thường được biết đến, cụ thể
là điện toán đám mây cá nhân, công cộng, cộng đồng và hổn hợp.


5

1.1.4 Khả năng mở rộng của điện toán đám mây
Khả năng mở rộng điện toán đám mây có hai kích thước, cụ thể là khả năng mở rộng
điện toán đám mây ngang và khả năng mở rộng theo chiều dọc.

1.2 Công trình nghiên cứu gần đây về Auto-scaling của điện toán đám mây:
1.3 Mục tiêu luận văn
Dịch vụ Autoscaling đem lại lợi ích thiết thực cho khách hàng và ngay cả nhà cung
cấp dịch vụ cloud. Tuy nhiên, vẫn còn khá nhiều thách thức để có được cơ chế Auto-scaling
hiệu quả. Mục tiêu của đề tài là nghiên cứu các khía cạnh kỹ thuật thực hiện Auto-scaling
trong điện toán đám mây. Nghiên cứu giải pháp tự động điều khiển quá trình co giãn tài
nguyên dựa vào ngưỡng tài nguyên, là giải pháp phổ biến hiện nay. Đề xuất giải pháp tự
động điều khiển quá trình co giãn tài nguyên dựa vào deadline. Tiến hành lập trình mô
phỏng để đánh giá và so sánh hai giải pháp.


1.4 Tổ chức luận văn
Luận văn có tổng cộng 3 chương và một phần kết luận và kiến nghị. Trong đó,
chương 1 là phần “Cơ sở lý luận”. Trong chương này luận văn muốn khái quát về kiến thức
của điện toán đám mây cũng như nói rõ mục tiêu chính của luận văn. Qua phần chương 2 là
phần “Kỹ thuật Auto-Scaling trong điện toán đám mây”. Trong chương 2 sẽ trình bày chi
tiết các kỹ thuật cũng như chính sách Auto-scaling trong điện toán đám mây. Làm rõ các
vấn đề của cơ chế hoạt động Auto-scaling trong điện toán đám mây. Chương 3 kế tiếp là
chương “Lập trình mô phỏng cơ chế Auto-scaling”. Chương này sẽ tập trung mô phỏng cơ
chế Auto-scaling trong điện toán đám mây để so sánh và đánh giá kỹ thuật Auto-scaling
dùng ngưỡng tài nguyên và kỹ thuật Auto-scaling dũng deadline. Cuối cùng là phần kết luận
và kiến nghị sẽ trinh bày kết luận của luận văn và các kiến nghị định hướng nghiên cứu tiếp
theo.


6

Chương 2 - KỸ THUẬT AUTO-SCALING TRONG
ĐIỆN TOÁN ĐÁM MÂY
2.1 Kỹ thuật Auto-scaling trong điện toán đám mây
2.1.1 Tổng quan về Auto-scaling
Theo thống kế của nhà cung cấp dịch vụ, thì sáng sớm là thời điểm người sử dụng
đọc báo mạng nhiều nhất. (ví dụ là 100.000 lượt truy cập đồng thời). Và các thời điểm khác
thì ít hơn rất nhiều.
Nếu thiết kế theo phương thức truyền thống, thì phần cứng của server sẽ phải đáp
ứng ít nhất được 100.000 lượt truy cập đồng thời và luôn sẵn sàng chờ người truy cập. Từ
đó nảy sinh một vấn đề là trong những khoảng thời gian khác trong ngày, với lượng người
truy cập ít hơn sẽ dẫn đến sự dư thừa tài nguyên phần cứng dẫn đến thất thoát về tiền bạc.
Từ vấn đề đó, người ta đã nghĩ tới một hệ thống mà tài nguyên hệ thống có thể tự co
dãn nhằm đáp ứng nhu cầu sử dụng của người dùng.
Giải pháp đưa ra chính là sử dụng Auto-Scaling.Auto-Scaling được định nghĩa là một

tính năng của dịch vụ điện toán đám mây có thể thêm hoặc loại bỏ tài nguyên tính toán tùy
thuộc vào cách sử dụng thực tế.
Auto-scaling là khả năng mở rộng quy mô lên hoặc xuống khả năng tự động theo các
điều kiện của người sử dụng xác định. Với Auto-scaling đảm bảo rằng số lượng các
instances đang gia tăng liên tục trong thời gian nhu cầu để duy trì hiệu suất, và giảm tự động
theo nhu cầu giảm để giảm thiểu chi phí [3]. Việc mở rộng quy mô tự động trong cơ sở hạ
tầng điện toán đám mây.
Auto-scaling đảm bảo tài nguyên luôn có đủ để xử lí những yêu cầu của khách hàng.
Chúng ta có thể đặt ra giới hạn trên và giới hạn dưới của lượng tài nguyên mình cần
sử dụng.Và tài nguyên hệ thống cấp cho bạn sẽ luôn nhỏ hơn giới hạn trên và cao hơn giới
hạn dưới.
Hoặc khi bạn chỉ định lượng tài nguyên cụ thể mà bạn cần dùng, thì auto-scaling sẽ
luôn đáp ứng được nhu cầu, tiết kiệm tiền nhiều hơn và được sử dụng tài nguyên nhiều hơn.


7

2.1.2 Phân loại Auto-Scaling
Auto-Scaling có thể chia nhỏ thành các thành phần theo nhiều kiểu khác nhau, phụ
thuộc vào bài toán cần giải quyết. Tuy nhiên Auto-scaling có thể chia thành 3 thành phần
chính thực hiện những chức năng một cách tuần tự.
Thu thập báo cáo -> ra quyết định -> thực thi
Lần lượt là:
 Monitoring, reporter: thu thập thông tin trạng thái của hệ thống.
 Decider: nhận báo cáo từ bộ phận monitoring, xây dựng mô hình và ra quyết định
 Scaler: nhận lệnh từ Decider và thực hiện scale.
 Các kiểu hệ thống thường gặp có thể thực hiện auto-scaling và được phân loại theo
yêu cầu tài nguyên.
a. Hệ thống ON & OFF :
 Đây là những hệ thống cần đến sự phân tích và trích xuất dữ liệu. Một ví dụ

điển hình nhất của Hệ thống ON&OFF là hệ thống ngân hàng. Sau khi kết thúc thời gian
giao dịch trong ngày (sau 5h chiều) thì hệ thống ngân hàng tạm ngừng giao dịch. Và có
thể chuyển qua phân tích những dữ liệu đã thu thập được trong ngày.


Với hệ thống như thế này, người lập trình viên chỉ cần đặt lịch ON&OFF hệ thống
phân tích theo giờ cố định trong ngày.
b. Hệ thống Fast Growth
 Hệ thống này được định nghĩa là dạng hệ thống, mà thường có sự thay đổi đột

ngột về lượng tài nguyên yêu cầu (tăng rất nhanh, giảm cũng rất nhanh). Ví dụ như hệ
thống kinh doanh online trong thời gian sales, hoặc hệ thống cấp cứu khi gặp sự cố trên
diện rộng…..
c. Hệ thống Variable
 Đây được hiểu là hệ thống có những thay đổi về yêu cầu tài nguyên ở mức
trung bình, với mức xê xích có thể tính toán trước được. Ví dụ như hệ thống các trang
báo mạng điện tử hoặc những trang nghe nhạc, với những hệ thống này, lương người
dùng là không cố định. Tuy nhiên lại có thể tính toán được mức giới hạn trên của hệ
thống (mang tính chất tương đối) để phân bổ tài nguyên phù hợp.


8
d. Hệ thống Consistent:
Đây là những hệ thống yêu cầu về tài nguyên theo một chu kì nhất định. Thường là
những hệ thống như HR application, Accounting, Email…..

2.1.3 Những phương pháp Auto-Scaling
a. Time Base
b. Reactive:
c. Predictive:


2.1.4 Mô hình hệ thống [10]
Nhà cung cấp dịch vụ đám mây nhận thấy rằng khi hệ thống sẽ có lúc không hoạt
động hết công sức nên đưa ra một cơ chế đấu giá auction-like để tăng lợi nhuận đầu tư
thông qua việc bán các instance, những instance bán theo cách này được gọi là spot
instance. Mặc dù rằng spot instance thường rẻ hơn so với các on-demand instance 90%, họ
có thể bị chấm dứt bởi nhà cung cấp khi giá đấu thầu thấp hơn giá thị trường. Vì vậy, chúng
được sử dụng rộng rãi để cung cấp các ứng dụng có tính chịu lỗi. Ý tưởng là tận dụng lợi
thế của sự khác biệt về giá giữa các kiểu khác nhau của các spot instance để đạt được tính
sẵn sàng cao và tiết kiệm chi phí. Đầu tiên một mô hình chịu lỗi cho các ứng dụng được
cung cấp bởi các spot instance. Trên cơ sở đó, đưa ra các chính sách Auto-scaling mới cho
thị trường điện toán đám mây theo hóa đơn tính tiền theo giờ.
Có ba mô hình tính giá phổ biến trong cơ sở hạ tầng (IaaS) cung cấp dịch vụ điện
toán đám mây hiện nay, cụ thể là on-demand, trong đó mua máy ảo (VM) được thanh toán
theo số lượng thời gian tiêu thụ và chi phí đơn vị được xác định trước của từng loại VM đặt
trước, người dùng phải trả một khoản lệ phí trước cho mỗi máy ảo để đảm bảo an toàn việc
sử dụng và giá rẻ hơn trong một thời gian hợp đồng nhất định, và ngay tại chỗ.
Mô hình spot pricing đã được giới thiệu, bán công suất đang còn trống của họ trên
thị trường mở thông qua một cơ chế đấu giá. Các nhà cung cấp tự động đặt giá thị trường
của từng loại VM theo nhu cầu và cung cấp thời gian thực. Để tham gia vào thị trường, một
người sử dụng điện toán đám mây cần phải đưa ra một giá xác định số lượng các instance
cho kiểu VM mà họ muốn và đơn giá tối đa họ chấp nhận trả. Nếu giá dự thầu vượt giá thị
trường hiện tại, giá thầu sẽ đươc chấp nhận. Sau khi nhận được máy ảo, người dùng chỉ phải
trả mức giá thị trường hiện tại chứ không không phải trả giá mà anh ta dự thầu, kết quả là
chi phí tiết kiệm so với các VM mà hoá đơn theo giá on-demand (thường chỉ có 10% đến


9
20% ) [1]. Tuy nhiên, spot VM sẽ bị chấm dứt bởi nhà cung cấp đám mây bất cứ khi nào giá
cả thị trường của họ tăng lên vượt quá giá chào thầu.

Mô hình này lý tưởng cho các ứng dụng chịu lỗi và thời gian không quan trọng như
ứng dụng khoa học máy tính, phân tích dữ liệu lớn, và các ứng dụng xử lý truyền thông.
Mặt khác, nó phù hợp cho các ứng dụng, như các ứng dụng web, còn các dịch vụ mà sự ổn
định của chất lượng dịch vụ (QoS) được xem là cực kỳ quan trọng thì không phù hợp để
triển khai trên spot instance.
Thị trường spot instance tương tự như một thị trường chứng khoán, mặc dù có thể
theo xu hướng chung, mỗi mục được liệt kê có hành vi thị trường đặc biệt của nó theo cung
cầu riêng của mình. Trong loại này của thị trường, thường chênh lệch giá xuất hiện với một
số instance giá cao do nhu cầu cao, trong khi một số còn lại được ưa chuộng đến chương
trình khuyến mại hấp dẫn. Bằng cách khai thác sự đa dạng trong thị trường này, người sử
dụng điện toán đám mây có thể sử dụng các spot instance càng lâu càng tốt để giảm hơn nữa
chi phí của họ. Gần đây, Amazon đã giới thiệu các Spot Fleet API [2], trong đó cho phép
người sử dụng đặt giá thầu cho tài nguyên dùng chung cùng một lúc. Việc cung cấp các
nguồn tài nguyên được quản lý tự động bởi Amazon sử dụng sự kết hợp của các spot
instance với chi phí thấp nhất. Tuy nhiên, nó vẫn còn thiếu khả năng chịu lỗi để tránh ảnh
hưởng hiệu suất sẵn có do chấm dứt đột ngột của spot instance, và do đó, không phù hợp để
cung cấp ứng dụng web.
Để giải quyết vấn đề này, một hệ thống Auto-scaling đáng tin cậy cho các ứng dụng
web bằng cách sử dụng các spot instance không đồng nhất cùng với các on-demand
instance. Cách tiếp cận không chỉ làm giảm đáng kể chi phí tài chính của việc sử dụng
nguồn tài nguyên điện toán đám mây, nhưng cũng đảm bảo tính sẵn sàng cao và thời gian
đáp ứng thấp, ngay cả khi một số spot máy ảo được chấm dứt đột ngột bởi nhà cung cấp
đám mây đồng thời hay liên tục trong một khoảng thời gian ngắn.


10

2.1.4.1 Cấu trúc hệ thống Auto-scaling
2.1.4.2 Cơ chế chịu lỗi
2.1.4.3. Độ tin cậy và chi phí hiêu quả

2.1.5 Chính sách Auto-scaling
2.1.5.1 Khả năng và ước tính cân bằng tải
Hệ thống auto-scaling có nhiều yếu tố tài nguyên (như CPU, bộ nhớ, mạng,... ). Nó
cần một profile của các ứng dụng mục tiêu liên quan đến tài nguyên tiêu thụ trung bình cho
tất cả các yếu tố xem xét. Hiện nay, các profile cần được thực hiện offline, nhưng cách tiếp
cận là mở để tích hợp profile trực tuyến năng động vào nó.
Với profile, chúng ta có thể ước tính được khả năng xử lý của từng loại spot trong
bối cảnh các ứng dụng scaling. Trên cơ sở đó, có thể dễ dàng xác định làm thế nào để phân
phối các yêu cầu đến các máy ảo không đồng nhất để cân bằng tải của họ, nói cách khác,
trọng lượng tương đối của mỗi instance phải được giao cho việc cân bằng tải. Các khả năng
ước tính cũng được sử dụng trong tính toán của các kế hoạch scaling.
2.1.5.2 Spot Instance và On-demand Instance
Hệ thống scaling chạy thay thế cho nhau giữa Spot Mode và Mode On-Demand.
Trong Spot Mode, người dùng cần phải xác định tỷ lệ phần trăm tối thiểu tài nguyên cần
thiết được cung cấp bởi các On-demand Instance, ký hiệu là O. Cũng có thể thiết lập một
giới hạn về số lượng các spot group được lựa chọn trong việc cung cấp, ký hiệu là S. Trong
On-Demand Mode, ứng dụng được cung cấp đầy đủ bởi các on-demand instance không cần
quá cung. Chuyển đổi các chế độ được tự động kích hoạt bởi các chính sách scaling chi tiết
trong các phần sau.
2.1.5.3 Đấu thầu trung thực (Truthfull Bidding Prices)
Đấu thầu trung thực có nghĩa là người tham gia trong một cuộc đấu giá luôn chào giá
tối đa mà anh ta sẽ trả. Để đảm bảo hiệu quả chi phí, giá dự thầutrung thựcđối với từng loại
VM trong các chính sách được tính toán tự động theo thời gian thực và cung cấp khối lượng
công việc. Trước khi tính toán chúng, trước tiên chúng ta tính toán chi phí cơ bản theo giờ
nếu ứng dụng được cung cấp tài nguyên trong chế độ On-Demand.
2.1.5.4 Chính sách Scaling Up
Chính sách Scaling Up được sử dụng khi một số instance bị chấm dứt đột ngột hoặc
sự cung cấp tài nguyên hiện tại không thể đáp ứng yêu cầu tài nguyên của ứng dụng. Ở chế
độ Spot, do sự yêu cầu tài nguyên cho nên việc cung cấp tài nguyên phải an toàn cho khối



11
lượng công việc hiện tại (được quy định tại mục1.3). Trong khi ở chế độ On-Demand, nó
chỉ yêu cầu khả năng nguồn lực chỉ cần có thể xử lý khối lượng công việc hiện tại.
Sau khi mục tiêu cung cấp được tìm thấy, hệ thống so sánh nó với sự cung cấp hiện
hành và sẽ liên hệ với nhà cung cấp đám mây thông qua API của nó để cung cấp các kiểu
tương ứng của máy ảo đó ngay tức khắc.
2.1.5.5 Chính sách Scaling Down
Khi instance được tính theo giờ, nó không tắt instance trước khi instance hiện tại
được đáo hạn. Do đó chúng ta đưa ra quyết định liệu instance nên được kết thúc hay không
tại lúc cuối giờ thanh toán của nó.
Các thuật toán quyết định cụ thể khác nhau đối với các on-demand instance và các
spot instance.

2.1.6 Chính sách dừng Spot Group
Khi một on-demand kết thúc, chúng ta không chỉ cần phải quyết định xem các
instance nên được tắt, mà còn phải thay đổi các spot group nếu cần . Các chính sách tóm tắt
là trừu tượng. Các thuật toán kiểm tra đầu cho dù đủ các on-demand đang được cung cấp
đáp ứng khả năng giới hạn on-demand. Nếu có đủ các on-demand instance, nó cố gắng tìm
ra sự cung cấp chi phí hiệu quả nhất có và không có on-demand. Giả sử việc cung cấp hiện
nay là trong chế độ On-Demand và không tìm thấy sự cung cấp không có on-demand
instance, sự cung cấp sẽ vẫn ở chế độ On-Demand. Ngược lại, nếu sự cung cấp mới được
tìm thấy mà không phải instance hiện tại, chính sách chuyển sự cung cấp đến chế độ Spot.
Trong trường hợp đó việc cung cấp hiện tại là chế độ Spot, nó chọn bất kỳ sự cung cấp có
chi phí thấp hơn tính theo giờ.

2.1.7 Chính sách cho Spot Instance
Khi thực hiện spot instance đến giai đoạn sắp kết thúc, trong các chính sách cơ bản,
chúng ta chỉ đơn giản là tắt instance khi các hạn ngạch Q tương ứng đáp ứng không có nó.


2.1.8 Chính sách gở bỏ Spot Group
Lưu ý rằng trong cả hai chính sách scaling-up và down, chúng ta cấm loại bỏ các
spot group được chọn từ sự cung cấp. Thay vào đó, chúng tôi bỏ một spot group khi bất kỳ
spot instance bị chấm dứt bởi cácnhà cung cấp. Khi giá đấu của mỗi instance được tính toán
thay đổi, instance trong spot group có thể được đặt mua với giá khác nhau. Điều này có thể
gây ra một số instance được giữ lại ngay cả sau khi các spot group được lấy ra khỏi sự cung


12
cấp. Chúng ta gọi những instance mồ côi. Mặc dù các instance mồ côi vẫn được tạo ra, nó
không được gia nhập vào tài nguyên khi quyết định scaling. Trong cácchính sách cơ bản,
chúng được tắt khi thời gian thanh toán kết thúc.

2.2 Kết luận
Luận văn đã lần lượt trình bày các cơ chế, kỹ thuật cho tính năng auto-scaling của
cloud computing, từ đó hiểu thấu đáo cơ chế làm việc của auto-scaling trong cloud
computing, trong chương tiếp theo sẽ xây dựng chương trình mô phỏng môi trường điện
toán đám mây, và áp dụng các thuật toán đưa ra chính sách khi nào thực hiện tính năng
Auto-scaling cho điện toán đám.


13

Chương 3 - LẬP TRÌNH MÔ PHỎNG
CƠ CHẾ AUTO-SCALING
3.1 Lập trình mô phỏng và đánh giá :
3.1.1 Mục tiêu của mô phỏng
Như chúng ta đã biết, khi dịch vụ của người dùng có tình trạng đột biến về tải thì
chất lượng dịch vụ sẽ bị giảm do tài nguyên được sử dụng cạn dần. Khi đó, Auto-scaling sẽ
thực hiện chức năng scale-up để tăng lượng tài nguyên sao cho chất lượng dịch vụ không

thay đổi và khi tải giảm thì hệ thống sẽ thực hiện chức năng scale-down nhằm giảm đi năng
lượng tiêu thụ hệ thống và bớt đi chi phí cho người sử dụng dịch vụ. Nhưng tăng tài nguyên
cũng như thu hồi tài nguyên làm sao cho kịp thời, đúng và hợp lý là một trong những mục
tiêu của các kỹ thuật Auto-scaling. Trong luận văn này sẽ mô phỏng trường hợp Autoscaling dựa vào ngưỡng tài nguyên, là trường hợp đang dùng phổ biến trên thực tế và trong
các nghiên cứu. Luận văn cũng đề xuất trường hợp Auto-scaling dựa vào deadline. Thông
thường, người sử dụng dịch vụ luôn mong muốn các công việc của mình phải được hoàn
thành càng sớm càng tốt. Deadline là qui định thời gian trễ nhất mà dịch vụ của người dùng
phải hoàn tất. Thay vì dựa vào ngưỡng tài nguyên, luận văn thử dùng dealine làm cơ sở cho
cơ chế cấp phát và thu hồi tài nguyên tự động.
Luận văn sẽ sử dụng tỉ lệ vi phạm để đánh giá các cơ chế autoscaling dựa vào
ngưỡng và dựa vào deadline, qua đó cũng phản ánh khả năng cấp phát và thu hồi có kịp
thời không và có đúng lúc không.
Trên cơ sở kết quả có được từ các trường hợp mô phỏng, luận văn sẽ xem tỉ lệ vi
phạm trường hợp nào cao hơn và đánh giá hiệu quả của hai trường hợp để có được kết luận
trường hợp mô phỏng nào giúp cho Auto-scaling cấp thêm tài nguyên và thu hồi tài nguyên
kịp thời, đúng và hợp lý hơn.
Việc mô phỏng bao gồm hai trường hợp : Trường hợp mô phỏng 1 dùng kỹ thuật
Auto-scaling với chính sách ngưỡng tài nguyên (ở đây ta dùng chỉ số MIPS để làm ngưỡng)
để thực thi các cloudlet. Khi MIPS của VM không đạt ngưỡng mà chúng ta đưa ra thì VM
được tạo ra để đạt có số MIPS bằng hoặc trên ngưỡng. Trường hợp mô phỏng 2 luận văn đề
xuất dùng kỹ thuật Auto-scaling với chính sách dealine thời gian thực hiện cloulet (các
cloulet có cấu hình như trường hợp mô phỏng 1). Sau khi có kết quả thực hiện của hai
trường hợp sẽ cho ta tỷ lệ vi phạm với ngưỡng MIPS và dealine về thời gian mà chúng ta


14
đặt ra. Từ đó giúp chúng ta thấy được trường hợp mô phỏng nào thực hiện chức năng Autoscaling hiệu quả hơn.
 Mô phỏng trường hợp dùng ngưỡng MIPS :
Mô phỏng dùng ngưỡng tài nguyên MIPS là mô phỏng mà luận văn dùng chỉ số tài
nguyên MIPS để làm ngưỡng thực hiện Auto-scaling. Ngưỡng này thể hiện cho số dòng

lệnh thực thi công việc, khi số dòng lệnh cấp cho mỗi công việc dưới ngưỡng thì hệ thống sẽ
tự động đáp ứng kịp thời tăng thêm VM để tài nguyên MIPS đủ để thực hiện công việc.
Mô phỏng trường hợp dùng ngưỡng tài nguyên MIPS:
Bảng 3.2 : Cấu hình Host trường hợp mô phỏng dùng ngưỡng MIPS

1 Máy

50 máy

RAM

32768

1638250

Storage

100TB

50TB

Bandwidth

10TB

500TB

MIPS

10000


100000

4

200

PE LIST

Bảng 3.3 : Cấu hình VM trường hợp mô phỏng dùng ngưỡng MIPS
1 VM
RAM

128 MB

Storage

10000

Bandwidth

1000

MIPS

1000

PE LIST

1


Bảng 3.4: Cấu hình Cloulet
1 Cloudlet
Length

10000

Fize size

2000

Output size

300

PE LIST

1


15

Sơ đồ thực hiện mô phỏng trường hợp dùng ngưỡng MIPS

1. Bắt đầu mô phỏng

2. Tạo hệ thống cloud gồm:
Datacenter, Host, DatacenterBroker

3. Tạo VM, cloudlet


4. Gán cloulet vào VM
5.1 Tạo VM
5. Kiểm tra MIPS của số VM
hiện tại đủ để chạy cloudlet ?

No

Yes

6. Nếu trạng thái

No

Cloudlet = FINISH
Yes
Y
es

7. Kiểm tra VM của cloudlet
còn cloulet không ?

No

8. Giải phóng VM

9. Output

Yes



16

Thuật toán kiểm tra MIPS để thực hiện chức năng scale-up
int solanvipham;
boolean dieukien=true;
while (dieukien)
{
If (So_MIPS còn lại của VM hiện tại < So_MIPS_nguong_tren)
Tạo ra một VM;
solanvipham++;
else
submitcloulet();
dieukien=false;
end if
submitcloulet();
dieukien=false;
end if
}
Thuật toán Scaling-down
If (Trạng thái cloulet[i] = Finish)
If !(Kiểm tra xem VM mà cloud[i]submit còn
cloudlet khác đang chạy)
Xóa VM;
end
End if

Mục tiêu của trường hợp mô phỏng dùng ngưỡng tài nguyên MIPS cho chúng ta thấy
được khi ngưỡng MIPS không đạt thì hệ thống sẽ thực hiện Auto-scaling đáp ứng được tiêu
chí tạo VM để tài nguyên hệ thống không bị giảm, chất lượng dịch vụ luôn được đảm bảo

và hơp lý.
Trong trường hợp mô phỏng dùng ngưỡng tài nguyên MIPS luận văn thực hiện chạy
mô phỏng thay đổi các thông số như sau để lấy tỷ lệ vi phạm so sánh:
- Thay đổi số lượng cloudlet lần lượt : 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65.
- Thay đổi số lượng VM ban đầu lần lượt : 2, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55.


17
- Thay đổi ngưỡng MIPS lần lượt : 500, 400, 333, 286, 250, 222, 200, 182, 167, 154,
143, 133.
- Thay đổi MIPS của cấu hình VM được tạo ra khi có vi phạm xảy ra lần lượt: 500,
600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600.
 Mô phỏng với trường hợp cải tiến dùng deadline thay cho ngưỡng :
Mô phỏng trường hợp dùng deadline là mô phỏng xác định thời gian thực thi công
việc của hệ thống. Khi chúng ta muốn các công việc phải thực thi không vượt quá thời gian
nào đó thì chúng ta đưa ra một deadline thời gian, với số lượng công việc sẽ thực thi và tài
nguyên hệ thống chưa sử dụng, chúng ta sẽ tính được thời gian thực thi nhanh nhất của mỗi
công việc với công thức tính như sau:
Công thức tính thời gian thực thi cloudlet

Tcl= (Lcl/ (M*Pcl)) (1)
Trong đó :
- Tcl : thời gian ước tính thực hiện công việc
- Lcl : là chiều dài kích thước của cloudlet;
- M : số MIPS chưa sử dụng của hệ thống
- Pcl: số PE của cần cho cloudlet
Nếu thời gian đó cao hơn deadline thời gian chúng ta đã đề ra thì hệ thống sẽ tự động
Auto-scaling tạo thêm VM kịp thời cho hệ thống để đáp ứng sao cho thời gian thực hiện
công việc thấp hơn hơn deadline thời gian đã đưa ra.
Mô phỏng trường hợp dùng deadline thời gian:

Bảng 3.5 : Cấu hình Host trường hợp mô phỏngdùng deadline thời gian

1 Máy

50 máy

RAM

32768

1638250

Storage

100TB

50TB

Bandwidth

10TB

500TB

MIPS

10000

100000


4

200

PE LIST


18
Bảng 3.6 : Cấu hình trường hợp mô phỏng dùng deadline thời gian

1 VM
RAM

128 MB

Storage

10000

Bandwidth

1000

MIPS

1000

PE LIST

2


Bảng 3.7 : Cấu hình Cloulet
1 Cloudlet
Length

10000

Fize size

2000

Output size

300

PE LIST

1


19

Sơ đồ thực hiện mô phỏng trường hợp dùng deadline thời gian

1.Bắt đầu mô phỏng

2. Tạo hệ thống cloud gồm:
Datacenter, Host, DatacenterBroker

3. Tạo VM, cloudlet

4. Gán cloulet vào VM
5.1 Tạo VM
5. Kiểm tra thời gian thực
thi cloudlet > deadline ?

Yes

No

6. Trạng thái Cloudlet =
FINISH ?
Y
es

Yes

7. Kiểm tra VM của cloudlet
còn cloulet không ?
No

8. Giải phóng VM

9. Output

Yes


20

Thuật toán kiểm tra deadlinetime để thực hiện chức năng scale-up

int solanvipham;
int dealinetime=2;
boolean dieukien=true;
while (dieukien)
{
If ( Ước_tính_thời_gian_thực_hiện_1_cloulet_trong_
tổng_cloulet_của_số_VM_hiện_tại > deadlinetime)
Tạo ra một VM;
solanvipham++;
else
submitcloulet();
dieukien=false;
end if
}
Thuật toán Scaling-down
If (Trạng thái cloulet[i] = Finish)
If !(Kiểm tra xem VM mà cloud[i]submit còn
cloudlet khác đang chạy)
Xóa VM;
end
End if

Mục tiêu của trường hợp mô phỏng dùng deadline về thời gian mà luận văn đề xuất
sẽ thực hiện Auto-scaling khi deadline về thời gian thực hiện coudlet bị vi phạm, đáp ứng
được tiêu chí tạo VM đúng lúc cần, tài nguyên hệ thống không bị giảm, chất lượng dịch vụ
luôn được đảm bảo đủ tài nguyên và hơp lý.
Giống như trường hợp mô phỏng dùng ngưỡng tài nguyên MIPS, trường hợp mô
phỏng dùng deadline về thời gian cũng thay đổi các thông số sau để lấy tỷ lệ vi phạm so
sánh:
- Thay đổi số lượng cloudlet lần lượt : 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65.

- Thay đổi số lượng VM ban đầu lần lượt : 2, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55.


21
- Thay đổi deadline vể thời gian lần lượt : 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70,
75.
- Thay đổi MIPS của cấu hình VM được tạo ra khi có vi phạm xảy ra lần lượt: 500,
600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600.

3.1.2 Mô tả môi trường điện toán đám mây sử dụng trong mô phỏng
Để kiểm thử và đánh giá kỹ thuật Auto-scaling. Các trường hợp mô phỏng được thực
hiện với môi trường điện toán đám mây không đồng nhất, có một trung tâm dữ liệu với các
đặc điểm như bảng 3.8:
Bảng 3.8: Thông tin về trung tâm dữ liệu

Hệ điều hành

Linux

Kiến trúc

X86

VMM

Xen

Múi giờ

10


Chi phí sử dụng hệ thống / mỗi giây

3

Chi phí sử dụng 1 đơn vị Ram

0.05

Chi phí mỗi đơn vị lưu trữ

0.1

Chí phí sử dụng băng thông

0.1

Trong quá trình mô phỏng sử dụng hai loại máy chủ của HP[2]: HP Proliant ML110 G4
(Intel Xeon 3040, quad-core cores x 1860 MHz, 32 GB), và HP Proliant ML110 G5(Intel
Xeon 3075, quad-core x 2660, 32GB).
Việc lựa chọn mô phỏng với máy chủ có cấu hình tương đối, đóng vai trò quan trọng
trong quá trình mô phỏng. Bởi vì việc thực hiện Auto-scaling không chú trọng vào máy chủ,
chúng ta xem như máy chủ có đủ để tạo ta VM khi nhu cầu thực hiện Cloudlet với mục đích
giải quyết vấn đề thực hiện công việc nhanh với một deadline ta đưa ra, do đó dễ dàng đánh
giá các giải thuật hơn.
Các máy chủ thực hiện chính sách chia sẻ Time-Shared Over Subscription (chính
sách này cho phép cấp phát vượt quá khả năng của Host) ở mức Host.
Thông tin về cấu hình, số lượng của các máy chủ và máy ảo trong trung tâm dữ liệu
được trình bày trong bảng 3.9 và 3.10.



22
Bảng 3.9: Bảng số liệu máy chủ trong mô phỏng

Loại máy chủ

HP Proliant G4

HP Proliant G5

Số lượng

25

25

Host Mips

1860

2660

2

2

32Gb

32Gb


Băng thông

10Gbps

10Gbps

HDD

100Tb

100Tb

Số lượng Pe
Ram

Trong môi trường mô phỏng có một Broker yêu cầu máy ảo, cụ thể như sau:
Bảng 3.10: Thông tin máy ảo sử dụng trong mô phỏng

Tên máy ảo Mips Ram Băng thông
Hight

1000

128

1000

Size

Chính sách


10000

Time Shared

Vấn đề ngưỡng tài nguyên MIPS hay dùng deadline về thời gian để tạo ra VM của
hai trường hợp mô phỏng ta dùng kỹ thuật Auto-scaling Thu thập báo cáo -> ra quyết
định -> thực thi.Auto-scaling được thực hiện khi ta thu thập số lượng Cloudlet rồi tính
toán và thực hiện việc scale-up khi các điều kiện ngưỡng hay deadline thời gian thực thi
Cloudlet bị vi phạm. Và việc thực hiện Scale-down khi VM không còn đang thực hiện một
Cloudlet nào.
Trong phần tiếp theo báo cáo sẽ trình bày kết quả thực hiện các trường hợp mô
phỏng để đánh giá lại các thuật toán đã được cài đặt.

3.1.3 Kết quả mô phỏng
3.1.3.1 Trường hợp sử dụng ngưỡng MIPS
Trong trường hợp mô phỏng dùng ngưỡng MIPS, chúng ta thực hiện mô phỏng bằng
cách thay đổi các thông số : thay đổi số lượng cloudlet, thay đổi số lượng VM ban đầu, thay
đổi ngưỡng MIPS, thay đổi cấu hình VM. Khi Cloudlet submit thì chương trình sẽ kiểm tra
xem ngưỡng MIPS mà ta đã đặt ra có bị vi phạm hay không. Nếu có vi phạm, thì chương
trình sẽ thực hiện Auto-scaling thêm VM để đáp ứng ngưỡng MIPS mà chúng ta đưa ra.


23
Kết quả thực hiện:

T

a) Thay đổi số lượng cloudlet:


Số lượng cloudlet thay đổi
Hình 3.1: Biểu đồ tỷ lệ vi phạm ngưỡng MIPS khi thay đổi số lượng cloudlet

Trong kết quả mô phỏng hình 3.1 cho chúng ta thấy khi số cloudlet tăng thì tỷ lệ vi
phạm cũng tăng theo. Đường đi của đồ thi dần về sau không còn đi lên, điều này chứng tỏ
hệ thống dần thu khoảng cách vi phạm so với nguỡng mặc dù cloudlet ngày càng tăng.

T

vi ph

b) Thay đổi số lượng VM ban đầu:

Số lượng VM ban đầu thay đổi
Hình 3.2: Biểu đồ tỷ lệ vi phạm ngưỡng MIPS khi thay đổi số lượng VM ban đầu


×