Nghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud ComputingNghiên cứu kỹ thuật Auto – Scaling trong Cloud Computing
Trang 1NGUYỄN TRUNG HIẾU
NGHIÊN CỨU KỸ THUẬT AUTO-SCALING
TRONG CLOUD COMPUTING
LUẬN VĂN THẠC SĨ KỸ THUẬT
TP.HỒ CHÍ MINH -2016
Trang 2NGUYỄ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Ố: 0 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
TP HỒ CHÍ MINH -2016
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được aicông bố trong bất cứ công trình nào
TPHCM, Ngày 20 tháng 6 năm 2016
Học viên thực hiện luận văn
Nguyễn Trung Hiếu
Trang 4LỜI CÁM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo Học việnCông nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian họctập tại nhà trường
Em xin gửi lời cảm ơn sâu sắc đến Thầy TS Nguyễn Hồng Sơn, người đã
trực tiếp hướng dẫn, tạo mọi điều kiện thuận lợi và tận tình chỉ bảo cho em trongsuốt thời gian làm luận văn tốt nghiệp
Bên cạnh đó, để hoàn thành luận văn tốt nghiệp, em cũng đã nhận được rấtnhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồngnghiệp Em xin chân thành cảm ơn
Tuy nhiên, do thời gian có hạn, mặc dù đã nỗ lực hết sức mình, nhưng chắcrằng luận văn của em khó tránh khỏi thiếu sót Em rất mong nhận được sự thôngcảm và chỉ bảo tận tình của quý thầy cô và các bạn
Trân trọng cám ơn
TPHCM, ngày 20 tháng 6 năm 2016
Học viên thực hiện luận văn
Nguyễn Trung Hiếu
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ vii
MỞ ĐẦU 1
Chương 1 -CƠ SỞ LÝ LUẬN 3
1.1 Tổng quan và động cơ thúc đẩy 3
1.1.1 Kiến trúc điện toán đám mây 3
1.1.2 Các mô hình dịch vụ đám mây 5
1.1.3 Các mô hình triển khai 6
1.1.4 Khả năng mở rộng của điện toán đám mây 8
1.2 Công trình nghiên cứu gần đây về Auto scale của điện toán đám mây 11
1.3 Mục tiêu luận văn 12
1.4 Tổ chức luận văn 12
Chương 2 -KỸ THUẬT AUTO-SCALING TRONG ĐIỆN TOÁN ĐÁM MÂY 14
2.1 Kỹ thuật Auto-scaling trong điện toán đám mây 14
2.1.1 Tổng quan về Auto-scaling 14
2.1.2 Phân loại Auto-Scaling 15
2.1.3 Những phương pháp Auto-scaling 18
2.1.4 Mô hình hệ thống 18
2.1.4.1 Cấu trúc hệ thống Auto-scaling 21
2.1.4.2 Cơ chế chịu lỗi 22
2.1.4.3 Độ tin cậy và chi phí hiêu quả 23
2.1.5 Chính sách Auto-scaling 25
2.1.5.1 Khả năng và ước tính cân bằng tải 25
2.1.5.2 Spot Instance và On-demand Instance 25
2.1.5.3 Đấu thầu trung thực (Truthfull Bidding Prices) 25
2.1.5.4 Chính sách Scaling Up 26
2.1.5.5 Chính sách Scaling Down 26
Trang 62.1.6 Chính sách dừng Spot Group 26
2.1.7 Chính sách cho Spot Instance 27
2.1.8 Chính sách gở bỏ Spot Group 27
2.2 Kết luận 27
Chương 3 -LẬP TRÌNH MÔ PHỎNG CƠ CHẾ AUTO-SCALING 28
3.1 Lập trình mô phỏng và đánh giá cơ chế auto-scaling 28
3.1.1 Mục tiêu của mô phỏng .28
3.1.2 Mô tả môi trường điện toán đám mây sử dụng trong mô phỏng 37
3.1.3 Kết quả mô phỏng .39
3.1.3.1 Trường hợp sử dụng ngưỡng MIPS 39
3.1.3.2 Trường hợp sử dụng deadline thời gian 42
3.1.3.3 Đánh giá hai kịch bản mô phỏng 46
3.2 Kết luận 48
KẾT LUẬN VÀ KIẾN NGHỊ 49
DANH MỤC TÀI LIỆU THAM KHẢO 50
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
CNTT Information Technology Công nghệ thông tin
NISI National Institute of Standards
and Technology
Viện tiêu chuẩn và kỹ thuật Quốcgia ( Hoa Kỳ )
QoS Quality of Service Quản lý chất lượng dịch vụAPI Application Programming
Interface
Giao diện lập trình ứng dụng
Trang 8DANH SÁCH BẢNG
Số hiệu
3.2 Cấu hình Host trường hợp mô phỏng dùng ngưỡng MIPS 303.3 Cấu hình VM trường hợp mô phỏng dùng ngưỡng MIPS 30
3.5 Cấu hình Host trường hợp mô phỏng dùng deadline thời gian 343.6 Cấu hình VM trường hợp mô phỏng dùng deadline thời gian 34
Trang 91.7 Khả năng mở rộng đám mây theo chiều ngang 91.8 Khả năng mở rộng đám mây theo chiều dọc 92.1 Auto-scalingtrong cơ sở hạ tầng điện toán đám mây 15
2.6 Kiến trúc hệ thống Autoscaling on-demand 21
2.9 Cung cấp tài nguyên chịu lổi khác sử dụng hơn 2 kiểu spot 24
3.1 Biêu đồ tỷ lệ vi phạm ngưỡng MIPS khi thay đổi số lượng
Trang 103.5 Biểu đồ tỷ lệ vi phạm deadline về thời gian khi thay đổi số
lượng cloudlet
43
3.6 Biểu đồ tỷ lệ vi phạm deadline thời gian khi thay đổi số
3.7 Biểu đồ tỷ lệ vi phạm deadline khi thay đổi deadline thời
3.10 Biểu đồ tỷ lệ vi phạm của hai trường hợp khi thay đổi số
3.11 Biểu đồ tỷ lệ vi phạm của hai trường hợp mô phỏng khi bổ
Trang 11MỞ ĐẦU
Trong thời gian qua, Công nghệ thông tin đã phát triển với mức độ ngàycà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ĩnhvự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ểnphầ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ọilú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ươngtrì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ếtnố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 haylaptop, máy tính bảng,… mà vẫn không hề thấy sự 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ảinghiê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ệntoá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ữngngày bình thường khác thì số lượng truy cập sẽ giảm nhiều đáng kể
Trang 12Ngườ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áidị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
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ượngdị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ổ sungtà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 Tuynhiê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ênvừ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àyvẫ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
Trang 13Chươ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ôngnghệ 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êngcô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ữngbà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ệpquả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ệuquả 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 CNTTvố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 (đámmâ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
Trang 14Hình 1.1: Điện toán đám mây
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 (utilitycomputing) 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
Các trung tâm dữ liệu
Các dịch vụ web
Trang 15Một mạng có thể mở rộng các nút là hình thức một đám mây Một ứng dụngdựa trên những đám mây này được thực hiện như là một ứng dụng điện toán đámmây Trong những năm gần đây, hầu hết các phần mềm, phần cứng và mạng đã pháttriển, đặc biệt là điện toán đám mây dựa trên dịch vụ đã thay đổi các máy tínhtruyền thống và lưu trữ tập trung Nó có tiềm năng to lớn để giao phó, sự nhanhnhẹn, cho thuê nhiều cách, độ tin cậy, khả năng mở rộng, tính sẵn sàng, hiệu suất,
an ninh và bảo trì Viện Quốc gia Tiêu chuẩn và Công nghệ Hoa Kỳ (NIST) địnhnghĩa điện toán đám mây như sau: "Điện toán đám mây là một mô hình cho tạo điềukiện thuận tiện, truy cập mạng theo nhu cầu đến một tài nguyên máy tính chia sẻdùng chung có thể cấu hình được (ví dụ, mạng, máy chủ, lưu trữ, các ứng dụng , vàdịch vụ) mà có thể được phát hành và cung cấp một cách nhanh chóng với việcquản lý đơn giản hoặc có sự hổ trợ dịch vụ của nhà cung cấp Mô hình đám mây
này thúc đẩy khả năng và gồm có năm đặc điểm chính, năm mô hình cung cấp, và
bốn mô hình triển khai "[1]
1.1.2 Các mô hình d ịch vụ đám mây
Có ba mô hình dịch vụ cơ bản hiện có trong đám mây để cung cấp tài nguyên
cho người dùng[7] Gần đây các mô hình dịch vụ khác cũng đang được triển khai.Hình 1 cho thấy một ví dụ về mô hình dịch vụ điện toán đám mây cơ bản
Hình 1.2: Ba mô hình cơ bản 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ó
Trang 16thể 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áchhà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áchhà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áccô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ấpdị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 ưuhó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ấtcủ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ápkhá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
a.Private Cloud: Cơ sở hạ tầng điện toán đám mây đó chỉ hoạt động cho
một tổ chức Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ ba và có thểtồn tại on premise hoặc off premise Hình 1.3 là một ví dụ của đám mây riêng
Trang 17Hình 1.3: Điện toán đám mây cá nhân
b Public Cloud: Cơ sở hạ tầng điện toán đám mây được tạo sẵn cho công
cộng hoặc một nhóm ngành công nghiệp lớn và được sở hữu bởi một tổ chức báncác dịch vụ đám mây Hình 1.4 cho thấy một ví dụ về điện toán đám mây côngcộng
Hình 1.4: Điện toán đám mây công cộng
c Cộng đồng Cloud: Cơ sở hạ tầng điện toán đám mây được chia sẻ bởi
một số tổ chức và hỗ trợ một cộng đồng cụ thể đã chia sẻ mối quan tâm (ví dụ,Mission, các yêu cầu bảo mật, những cân nhắc chính sách, và tuân thủ) Nó có thể
được quản lý bởi các tổ chức hoặc một bên thứ ba và có thể tồn tại on premise hoặc
off premise Hình1.5 mô tả cho ví dụ về điện toán đám mây cộng đồng
Trang 18Hình 1.5: Điện toán đám mây cộng đồng
d Hybrid Cloud: Cơ sở hạ tầng điện toán đám mây này là một thành phần
của hai hoặc nhiều đám mây (tư nhân, cộng đồng, hoặc công cộng) mà nhưng thực
tế là duy nhất nhưng được ràng buộc với nhau bằng tiêu chuẩn hóa công nghệ hoặc
độc quyền cho phép dữ liệu và ứng dụng di động (ví dụ, đám mây bùng nổ cho tải
cân bằng giữa các đám mây) Hình1.6 là một ví dụ về Hybrid Cloud
Hình 1.6: Điện toán đám mây hỗn hợp
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 [7]
a Khả năng mở rộng điện toán đám mây ngang:
Khả năng mở rộng điện toán đám mây theo chiều ngang là khả năng kết nốinhiều phần cứng lẫn phần mềm, chẳng hạn như máy chủ làm việc như một đơn vịduy nhất hợp lý Nó có nghĩa là thêm nhiều nguồn tài nguyên làm cùng một côngviệc Trong trường hợp máy chủ, bạn có thể tăng tốc độ và tính sẵn sàng của logicunit bằng cách thêm nhiều máy chủ Thay vì một máy chủ, một người có thể có hai,
mười, hoặc nhiều hơn của cùng một máy chủ làm cùng một công việc Khả năng
Trang 19mở rộng theo chiều ngang cũng được gọi là nhân rộng ra, như thể hiện tronghình1.7.
Hình 1.7: Khả năng mở rộng đám mây theo chiều ngang
b Khả năng mở rộng đám may theo chiều dọc:
Khả năng mở rộng theo chiều dọc là khả năng tăng cường phần cứng hoặcphần mềm hiện có bằng cách thêm nhiều nhiều hơn Ví dụ, thêm sức mạnh xử lýcho một máy chủ để làm cho nó nhanh hơn Nó có thể đạt được thông qua việc bổsung thêm phần cứng như ổ cứng, máy chủ, CPU, vv … Khả năng mở rộng theochiều dọc cung cấp nguồn tài nguyên được chia sẻ nhiều hơn cho các Hệ Điều Hành
và các ứng dụng Khả năng mở rộng dọc cũng có thể được gọi là mở rộng quy mô,
được thể hiện trong hình 1.8
Hình 1.8: Khả năng mở rộng đám mây theo chiều dọc
Khi giải pháp scaling được đề ra và có rất nhiều nghiên cứu scaling ở các cấp độ dịch vụ, các mô hình dịch vụ điện toán đám mây khác nhau,
Auto-nhưng hầu hết các nghiên cứu chỉ tập trung vào mức độ cơ sở hạ tầng [2] Nếu xem
mở rộng theo chiều ngang cũng được gọi là nhân rộng ra, như thể hiện tronghình1.7
Hình 1.7: Khả năng mở rộng đám mây theo chiều ngang
b Khả năng mở rộng đám may theo chiều dọc:
Khả năng mở rộng theo chiều dọc là khả năng tăng cường phần cứng hoặcphần mềm hiện có bằng cách thêm nhiều nhiều hơn Ví dụ, thêm sức mạnh xử lýcho một máy chủ để làm cho nó nhanh hơn Nó có thể đạt được thông qua việc bổsung thêm phần cứng như ổ cứng, máy chủ, CPU, vv … Khả năng mở rộng theochiều dọc cung cấp nguồn tài nguyên được chia sẻ nhiều hơn cho các Hệ Điều Hành
và các ứng dụng Khả năng mở rộng dọc cũng có thể được gọi là mở rộng quy mô,
được thể hiện trong hình 1.8
Hình 1.8: Khả năng mở rộng đám mây theo chiều dọc
Khi giải pháp scaling được đề ra và có rất nhiều nghiên cứu scaling ở các cấp độ dịch vụ, các mô hình dịch vụ điện toán đám mây khác nhau,
Auto-nhưng hầu hết các nghiên cứu chỉ tập trung vào mức độ cơ sở hạ tầng [2] Nếu xem
mở rộng theo chiều ngang cũng được gọi là nhân rộng ra, như thể hiện tronghình1.7
Hình 1.7: Khả năng mở rộng đám mây theo chiều ngang
b Khả năng mở rộng đám may theo chiều dọc:
Khả năng mở rộng theo chiều dọc là khả năng tăng cường phần cứng hoặcphần mềm hiện có bằng cách thêm nhiều nhiều hơn Ví dụ, thêm sức mạnh xử lýcho một máy chủ để làm cho nó nhanh hơn Nó có thể đạt được thông qua việc bổsung thêm phần cứng như ổ cứng, máy chủ, CPU, vv … Khả năng mở rộng theochiều dọc cung cấp nguồn tài nguyên được chia sẻ nhiều hơn cho các Hệ Điều Hành
và các ứng dụng Khả năng mở rộng dọc cũng có thể được gọi là mở rộng quy mô,
được thể hiện trong hình 1.8
Hình 1.8: Khả năng mở rộng đám mây theo chiều dọc
Khi giải pháp scaling được đề ra và có rất nhiều nghiên cứu scaling ở các cấp độ dịch vụ, các mô hình dịch vụ điện toán đám mây khác nhau,
Auto-nhưng hầu hết các nghiên cứu chỉ tập trung vào mức độ cơ sở hạ tầng [2] Nếu xem
Trang 20xét tường tận, chúng ta nhận thấy rằng Auto-scaling ở cấp độ dịch vụ cũng quan
trọng không kém, chẳng hạn như các dịch vụ đang chạy trên một tập hợp các kết nốimáy ảo và chất lượng của các dịch vụ nhờ vào Auto-scaling sẽ xử lý nguồn tàinguyên cho các máy ảo Các số liệu ở cấp độ dịch vụ như giao dịch trên một đơn vịthời gian cần phải được ánh xạ đến các số liệu cấp hệ thống chẳng hạn như sử dụngCPU, băng thông và tỷ lệ truy xuất của ổ đĩa Tuy nhiên, các công cụ không đủ đểtheo dõi, tổng hợp ở cấp độ nền tảng và cũng như dịch vụ để hỗ trợ cho quyết địnhthực hiện Auto-scaling khi nảo.Auto-scaling ở các môi trường điện toán đám mâyhỗn hợp không được hỗ trợ tốt Đám mây hỗn hợp là một phần của ứng dụng đượctriển khai trên một đám mây riêng và các phần khác trên một đám mây công cộng.Trong bối cảnh này, các đám mây công cộng và đám mây riêng có thể cung cấp các
kỹ thuật Auto-scaling khác nhau mà không tương thích với nhau, do đó sẽ có xuấthiện vấn đề tương tác trong việc Auto-scaling tài nguyên giữa hai đám mây[4]
Hiệu quả của Auto-scaling trong lúc này với độ tin cậy của các quá trìnhAuto-scaling không được quản lý tốt [5] Sự thất bại của các quá trình Auto-scaling
có thể dẫn đến hành vi vi phạm yêu cầu quản lý chất lượng hệ thống về hiệu suất vàkhả năng mở rộng và thậm chí phải chịu chi phí không cần thiết Auto-scaling tạo ra
sự khác biệt với sự cố định hàng ngày, hàng tuần, hoặc chu kỳ hàng năm của máychủ sử dụng ở chỗ là nó đáp ứng thói quen sử dụng thực tế, và do đó làm giảm các
nhược điểm của việc có quá ít hoặc quá nhiều máy chủ xử lý công việc Ví dụ, nếulưu lượng xử lý công việc thường thấp vào lúc nửa đêm, sau đó là một giải pháp
scaling tĩnh có thể lên lịch một số máy chủ tắt đi vào ban đêm, nhưng điều này cóthể dẫn đến có một lúc nào đó xảy ra hiện tượng mọi người sử dụng Internet nhiều
hơn (ví dụ: lượng truy cập các trang mạng xã hội ban ngày sẽ cao ), khi đó số server
còn lại sẽ làm việc quá tải Nhưng nếu có Auto-scaling, thì việc xử lý tình trang quátải bất ngờ này sẽ tốt hơn
Có một vài nghiên cứu cho thấy mối quan hệ giữa Auto-scaling với chất
lượng như tính sẵn sàng, độ tin cậy và vấn đề an ninh [6] Ví dụ, các cuộc tấn công
Trang 21DoS có thể tạo ra dịch vụ Auto-scalingmở rộng hệ thống không cần thiết và do đó
làm tăng chi phí hoạt động
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:
Vấn đề nghiên cứu kỹ thuật Auto-scaling trong điện toán đám mây nhằmphục vụ cho mục đích tối ưu năng lượng tiêu thụ đối với nhà cung cấp Đồng thờigiảm thiểu chi phí phải trả cho người sử dụng dịch vụ, điều mà cả nhà cung cấp lẫnnhà sử dụng dịch vụ điện toán đều mong muốn Và đây chính là một chủ đề đã và
đang được rất nhiều các nhà nghiên cứu thực hiện, một số nghiên cứu có thể kể đến
là:
Bài báo “Tổng quan về Auto-Scalingtrong ĐTĐM” của tác giả
M.Kriushanth, L Arockiam, G Justy Mirobi [7] Trong bài báo này các tácgiả thảo luận các vấn đề khác nhau của Auto-scaling Xem xét Auto-scalingcần thiết để biết các cơ chế hiện tại được sử dụng trong Auto-scaling Ở đây
họ đã bàn về kỹ thuật Auto-scaling và các công trình liên quan Họ cho tathấy rằng trong Auto-scaling có nhiều cách, và có nhiều nghiên cứu ở mức
độ khác nhau của các phương pháp Auto-scaling khác nhau liên quan đếnĐTĐM sẽ được phát triển trong tương lai
Bài báo “Phân tích vấn đề Auto-scaling trong môi trường ĐTĐM” của các
tác giả Hanieh Alipour, Yan Liu, Abdelwahab Hamou-Lhadj [8] Mục tiêucủa bài báo này là trình bày một nghiên cứu toàn diện về cơ chế Auto-scalehiện nay, cũng như để làm nổi bật các vấn đề Auto-scale trong lĩnh vực này.Trong bài báo này, các tác giả cung cấp một phân tích cẩn thận tình trạnghiện thời của Auto-scaling trong ĐTĐM Lần đầu tiên đặt họ Auto-scale vàobối cảnh bằng cách cung cấp thông tin cơ bản, thảo luận về các đối tượng thụ
hưởng chính của Auto-scaling, và đưa ra định nghĩa, khái niệm chính.Tiếp
theo, họ đề xuất một nguyên tắc phân loại, đơn giản hóa các trạng thái scaling hiên tại, và cung cấp cho các nhà nghiên cứu và phát triển ý tưởng vềcác cơ chế, thách thức Auto-scalinghiện tại Sau đó, các tác giả kiểm tra cácvấn đề hiện tại và quá khứ, và những đóng góp được cung cấp trong tài liệu
Auto-cho đến nay Sau cùng các tác giả mô tả các nền tảng chính (thương mại và
học thuật), và cuối cùng là xem xét những thách thức và định hướng tươnglai của Auto-scaling trong ĐTĐM
Trang 22 Bài báo “Kỹ thuật tự động mở rộng quy mô đàn hồi cho các ứng dụng
trong môi trường ĐTĐM” của các tác giả Tania Lorido-Botrán, José Alonso, José A Lozano [9] Bài báo nghiên cứu tập trung vào các vấn đề củacác ứng dụng Auto-scaling trong môi trường ĐTĐM ĐTĐM là công nghệ
Miguel-được sử dụng rộng rãi, đặc trưng bởi các tài nguyên một cách đàn hồi Người
dùng có thể yêu cầu và giải phóng tài nguyên theo yêu cầu,và chỉ phải trảcho các tài nguyên cần thiết (điều này thường được gọi là một chương trìnhpay-as-you-go) Scaling có thể được thực hiện bằng tay, nhưng để thực sựtận dụng lợi thế của các nền này, một hệ thống Auto-scaling là cần thiết.Yếu
tố này sẽ có thể thích ứng với số lượng tài nguyên cần thiết (thông thường làVM) với khối lượng công việc đầu vào, luôn luôn cố gắng để tránh khôngtận dụng đểgiảm thiểu chi phí, nhưng việc duy trì mục tiêu mức dịch vụ (vídụ: xác định trước thời gian đáp ứng)
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ậtthự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êndựa vào deadline Tiến hành lập trình mô phỏng để đánh giá và so sánh hai giảiphá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-scalingtrong đ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ế
Trang 23Auto-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ếnnghị 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ếptheo
Trang 24Chươ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ácthờ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 trongngà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ứngdẫ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 địnhnghĩ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àinguyê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ộngquy mô tự động trong cơ sở hạ tầng điện toán đám mây được hiển thị tronghình2.1[7]
Trang 25Hình 2.1: Auto-sacling 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ủakhá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ênmì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ì 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àinguyên nhiều hơn
auto-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ácnhau, phụ thuộc vào bài toán cần giải quyết Tuy nhiên Auto-scaling có thể chiathà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
có nhu cầu tăng thêm
Cài đặt và khởi tạo VM
Hàng đợi instance chờ được VM
Cài đặt có sẵn trong hàng đợi ?
Trang 26 Các kiểu hệ thống thường gặp có thể thực hiện auto-scaling và được phânloại theo yêu cầu tài nguyên.
a Hệ thống ON & OFF :
Hình 2.2: 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ếtthúc thời gian giao dịch trong ngày (sau 5h chiều) thì hệ thống ngân hàng tạmngừng giao dịch Và có thể chuyển qua phân tích những dữ liệu đã thu thập đượctrong 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ình 2.3: Hệ thống Fast Growth
Trang 27 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ấpcứu khi gặp sự cố trên diện rộng…
c Hệ thống Variable
Hình 2.4: 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
d Hệ thống Consistent:
Hình 2.5:Hệ thống Consistent
Trang 28Đâ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…
Phương pháp Time Base thường được dùng cho các hệ thống
ON&OFF và Consistent
b Reactive:
Đây là cơ chế mà chúng ra sẽ xây dựng các tập luật, mà khi hệ thống
vi phạm luật trong tập luật này thì chúng ta sẽ đưa ra hành động cụ thể
Ví dụ như khi hệ thống chạy ngốn 80% tài nguyên trong 5s thì ta phải thực thiscaling Tất cả các thông số trong các tập luật đều do người lập trình cài đặt
trước.Phương pháp này thường được sử dụng trong các hệ thống : Fast Growth,
Variable
c Predictive:
Hệ thống này có nét tương tự như hệ thống Reactive, tuy nhiên hệthống này có thể ứng dụng công nghệ máy học (machine learning) vào để giúpcác tập luật được hoàn thiện hơn, và từ đó có thể đưa ra những quyết định phùhợp hơn với hệ thống Phương pháp này thường được sử dụng trong các hệthống : Fast Growth, Variable
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ônghoạ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
Trang 29đầ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-demandinstance 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ínhchị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 nhaucủa các spot instance để đạt được tính sẵn sàng cao và tiết kiệm chi phí Đầu tiênmộ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âytheo 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ướccủ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ỗimá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 đồngnhấ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 đặtgiá thị trường của từng loại VM theo nhu cầu và cung cấp thời gian thực Để thamgia 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 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ườngcủ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 quantrọ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
Trang 30các dịch vụ mà sự ổn định của chất lượng dịch vụ (QoS) được xem là cực kỳ quantrọ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ệtcủ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ênhlệ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ònlạ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 đượcquả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ệusuấ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ínhcủ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ínhsẵn sàng cao và thời gian đáp ứng thấp, ngay cả khi một số spot máy ảo được chấmdứ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ảngthời gian ngắn
Trang 312.1.4.1 Cấu trúc hệ thống Auto-scaling
Hình 2.6: Kiến trúc hệ thống Auto-scaling on-demand
Như được minh họa trong hình 2.6, hệ thống Auto-scaling là hệ thống một
single-tier (thường là tầng máy chủ ứng dụng) của một ứng dụng bằng cách sử dụngmột hỗn hợp các on-demand instance và spot instance Việc cung cấp on–demand
instance là instance đồng nhất với chi phí-hiệu quả nhất liên quan đến các ứng
dụng, trong khi các spot instance là không đồng nhất
Hệ thống bao gồm các module giám sát, các module ra quyết định, và cânbằng tải Các module giám sát bao gồm nhiều giám sát độc lập chịu trách nhiệm choviệc lấy thông tin mới nhất hệ thống tương ứng như sử dụng tài nguyên, tỷ lệ yêucầu, spot giá cả thị trường, và trạng thái máy ảo trong hệ thống Các module raquyết định sau đó đưa ra quyết định mở rộng quy mô theo thông tin thu được dựatrên các chiến lược được xác định trước và các chính sách khi cần thiết Trong hệthống có cluster ảo được cung cấp là không đồng nhất, cân bằng tải sẽ có thể phânphối những yêu cầu theo khả năng của mỗi VM đính kèm Các thuật toán phổ biến
được sử dụng trong trường hợp này là weighted round robin