Điều chỉnh tài nguyên tự động dựa vào tham số chất lượng dịch vụ trong Cloud Computing
Tóm tắt: Việc cung cấp tính năng điều chỉnh tài
nguyên tự động (auto scaling) trên hạ tầng IaaS của nhà
cung cấp dịch vụ điện toán đám mây đã giúp thuê bao tránh
được tình trạng suy thoái dịch vụ và tiết kiệm chi phí. Cùng
với đó là sự xuất hiện các thuật toán auto scaling để tự động
hóa việc cung ứng cũng như thu hồi tài nguyên một cách
kịp thời. Phương pháp auto scaling dựa vào luật đối sánh
giá trị tham số hiện hành với ngưỡng được sử dụng phổ
biến trong môi trường công nghiệp. Tính hiệu quả của auto
scaling dạng này tùy thuộc vào cách chọn tham số. Trong
bài báo này đề xuất sử dụng tham số chất lượng dịch vụ
thay cho cách dùng tham số mức độ sử dụng CPU đang
dùng phổ biến hiện nay. Bài báo cũng đưa ra mô hình đánh
giá tính hiệu quả của auto scaling dạng này và dựa vào đó
để kiểm tra tính hiệu quả của phương pháp. Mô hình đã
được cài đặt và đã xác định được tính hiệu quả theo cách
chọn các tham số dịch vụ.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Tóm tắt nội dung tài liệu: Điều chỉnh tài nguyên tự động dựa vào tham số chất lượng dịch vụ trong Cloud Computing
ủa tải theo mùa để đưa ra các quyết định auto scaling trước thời hạn. Giải pháp đã khai thác các thuộc tính của công nghệ ảo hóa nhằm chi phối chất lượng dịch vụ và tiết kiệm chi phí. Tuy nhiên hiệu quả của giải pháp phụ thuộc nhiều vào tập dữ liệu ban đầu và các chi tiết Nguyễn Hồng Sơn SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 81 trong kỹ thuật xử lý trong mô hình học giám sát này. III. MÔ HÌNH ĐÁNH GIÁ Để đánh giá hiệu quả sử dụng lượng tài nguyên thuê bao gồm cả tài nguyên máy ảo được bổ sung tự động thông qua dịch vụ auto scaling, trong bài báo này định nghĩa một đại lượng được gọi là máy ảo thời gian VMxTime. Nếu thời gian được tính theo giờ thì gọi là máy ảo giờ (VMxHour), 1 VMxHour có nghĩa là 1 máy ảo được mở trong thời gian 1 giờ. Chi phí tiêu thụ tài nguyên thuê được qui về VM hour bằng cách lấy tích số giữa số máy ảo và thời gian mở tương ứng tính theo giờ. Gọi VM Usage là lượng tiêu thụ máy ảo theo đại lượng VMxTime trong thời gian T, tham số này được tính theo công thức (1) như sau: VM Usage = ∫ NumOfVMs(t)dt T 0 (1) NumOfVMs(t) là số máy ảo (VM) được mở tại thời điểm t và được tính bởi công thức (2) như sau: NumOfVMs(t)=currentNumofVMs(t) + numOfVMsScale(t) (2) Dễ dàng nhận thấy nếu VM Usage càng lớn thì tài nguyên của nhà cung cấp dịch vụ bị chiếm dụng càng lớn và chi phí phải trả của người dùng sẽ lớn. Các thuê bao được bổ sung và thu hồi mỗi một lần là N máy ảo một cách tự động, ta có: numOfVMScale(t)=N x scaleEvent(t) (3) trong đó numOfVMScale(t) là số máy ảo được bổ sung hay thu hồi vào thời điểm t, scaleEvent(t) lấy giá trị 1, 0 hay -1 tùy vào hàm quyết định, được gọi là D(). Trong trường hợp thuật toán auto scaling được thực hiện theo kiểu giám sát tích cực các đại lượng trạng thái thì autoscaler sẽ theo dõi các tài nguyên còn lại tại thời điểm lấy mẫu, ký hiệu là remainResource(t) và hàm xác định tài nguyên còn lại sẽ được đưa vào như là tham số của hàm quyết định D() cùng với một giá trị ngưỡng được xác lập trước. Như vậy sự kiện điều chỉnh tự động lấy giá trị từ hàm quyết định D() như công thức (4): scaleEvent(t)=D(controlValue(t),Threshold) (4) controlValue(t)= F(QoS pamameter(t)) (5) Với F() là phương pháp tính toán tham số chất lượng dịch vụ. Trong bài báo này sẽ cụ thể bằng tham số tỉ lệ các yêu cầu lần đầu đệ trình vào máy ảo bị từ chối và phải đợi, được giải thích chi tiết trong phần IV. IV. THUẬT TOÁN AUTO SCALING SỬ DỤNG THAM SỐ CHẤT LƯỢNG DỊCH VỤ Tham số chất lượng dịch vụ thứ nhất được chọn là thời gian hoàn thành một yêu cầu trên hệ thống. Đây là tham số phản ánh tốc độ đáp ứng dịch vụ của hệ thống, xét một cách định tính thì thời gian này sẽ càng nhỏ khi năng lực tài nguyên của hệ thống càng lớn. Tuy nhiên tham số này không dùng để điều khiển trực tiếp hoạt động auto scaling nhưng sẽ dùng để kiểm tra hiệu quả của thuật toán auto scaling. Tham số thứ hai được chọn làm tham số điều khiển trực tiếp liên quan đến hiện tượng thực tế là khi các yêu cầu gửi đến vào những thời điểm mà năng lực của hệ thống không đáp ứng được sẽ phải vào trạng thái đợi.Tỉ lệ các yêu cầu không được đáp ứng lần đầu là tham số lựa chọn thứ hai. Tham số này được chọn dựa trên phát hiện có những yêu cầu không được đáp ứng ở lần đệ trình đầu tiên trên các hệ thống auto scaling dựa vào mức sử dụng CPU, khi mà mức độ sử dụng này vẫn còn dưới ngưỡng.Thông thường các yêu cầu không được đáp ứng không bị hủy luôn mà được đưa vào hàng đợi của hệ thống để tiếp tục được đệ trình nếu khoảng thời gian timeout vẫn còn. Hệ thống dịch vụ không đáp ứng một yêu cầu nào đó không chỉ vì năng lực CPU bị thiếu, mà còn bởi nhiều tài nguyên khác bị thiếu như bộ nhớ thực thi, bộ nhớ lưu trữ, băng thông của các cổng xuất nhập (I/O) và ngay cả nguyên nhân không từ tài nguyên vật lý mà đến từ tắc nghẽn do lỗi logic của phần mềm ứng dụng. Lợi ích của việc chọn tham số này là bao hàm được nhiều yếu tố, phản ảnh đầy đủ hơn về tình trạng của hệ thống dịch vụ so với trường hợp dùng tham số mức độ sử dụng CPU. Thuật toán auto scaling thay vì sử dụng ngưỡng tỉ lệ sử dụng CPU trong máy ảo sẽ dùng ngưỡng tỉ lệ yêu cầu không được phục vụ ở lần đầu đệ trình vào máy ảo và phải đợi, ở đây gọi vắn tắt là tỉ lệ đợi Waiting rate. Tham số Waiting rate được tính như sau: Waiting rate = Nw NT × 100% (6) Nw là số yêu cầu đệ trình lần đầu bị từ chối phải đợi trong khoảng thời gian lấy mẫu. NT là tổng số yêu cầu đệ trình vào máy ảo trong khoảng thời gian lấy mẫu. Thuật toán auto scaling: ______________________________________ 1.//Gán ngưỡng a% cho Vth (threshold value); Vth = a%; 2. //Gán giá trị b giây cho T1 là thời gian nhàn rỗi của máy ảo trước khi máy ảo bị hủy T1= b; 3.//Gán giá trị c giây cho T2 là khoảng thời gian lấy mẫu để thống kê và tính toán giá trị tham số điều khiển T2 = c; 4.//Thực hiện đồng thời trên các máy ảo được đăng ký auto scaling Parallel: //Với mỗi máy ảo được thuê VM thu thập và tính tỉ lệ waiting rate trong khoảng thời gian T2 timeout =T2; Timerstart(timeout); if (timeoutevent) then { Nw=count(waitingList); NT=count(submitRequestList); wRate=Nw/NT*100%; ĐIỀU CHỈNH TÀI NGUYÊN TỰ ĐỘNG DỰA VÀO THAM SỐ CHẤT LƯỢNG DỊCH VỤ TRONG CLOUD COMPUTING SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 82 if (waiting rate > Vth) { //tạo máy ảo bổ sung vm vm=createVM(); //đăng ký máy ảo với Loadbalancer LBRegister(vm); } } 5.//Thực hiện song song trên tất cả các máy ảo Parallel: //với mỗi máy ảo vm được mở, giám sát thời gian nhàn rỗi idletime=count(finishedtime); if (idletime>T1) { //xóa máy ảo VM khỏi danh sách của Loadbalancer; LBDelete(vm); //tắt máy ảo VM; VMDestroy(vm); } _________________________________________ V. MÔ PHỎNG GIẢI PHÁP AUTO SCALING DỰA VÀO TỈ LỆ ĐỆ TRÌNH KHÔNG THÀNH CÔNG Giải pháp auto scaling dựa vào tỉ lệ đệ trình yêu cầu vào máy ảo lần đầu không thành công như đã đề xuất ở trên được kiểm chứng qua mô phỏng máy tính. Chương trình mô phỏng được xây dựng bằng ngôn ngữ Java sử dụng thư viện Cloudsim [6] chạy trên máy tính Intel Core 2 Dual CPU 2GHz, bộ nhớ RAM 4GB. Mô phỏng sử dụng hệ thống điện toán đám mây có cấu hình như sau: Data center có 50 host, mỗi host có 32 core, RAM 16GB, Storage 1TB, banwidth 10Gbps. Các host sử dụng time-shared scheduling cho máy ảo. Các máy ảo có cấu hình 1core, 1000 MIPS, 4GB RAM, 60GB Storage và 1Gbps banwidth. Các máy ảo sử dụng time-shared scheduling cho các cloudlet (yêu cầu phục vụ). Giả sử khách hành sử dụng gói thuê bao gồm 2 máy ảo VM (virtual machine) và đăng ký sử dụng dịch vụ auto scaling. Sử dụng bộ cân bằng tải phổ biến là AMLB (Active Monitroing Load Balancer). Công việc mô phỏng sẽ dựa vào mô hình đánh giá được trình bày ở phần III, so sánh tính hiệu quả giữa giải pháp auto scaling theo waiting rate được đề xuất ở trên với auto scaling theo CPU usage đang được dùng phổ biến trên các hệ thống điện toán đám mây hiện nay. Trước tiên, hệ thống điện toán đám mây được chạy với thuật toán auto scaling dùng tham số CPU usage. Các ngưỡng được thay thế lần lượt là 80%, 85%, 90% và 95%. Ứng với mỗi giá trị ngưỡng chi phí máy ảo trung bình hoàn thành một yêu cầu và chi phí thời gian trung bình hoàn thành một yêu cầu được thống kê và tính toán. Kết quả mô phỏng cho trường hợp này được trình bày tương ứng trên hình 1 và hình 2. Hình 1. Chi phí máy ảo trung bình hoàn thành một yêu cầu tính theo VM.s tương ứng với các mức ngưỡng dùng CPU. Trên hình 1 cho thấy khi sử dụng mức ngưỡng thấp 80%, chi phí máy ảo cao hơn 5,5 VM.s/yêu cầu, mức chi phí này giảm dần khi ngưỡng tăng lên. Khi ngưỡng được đặt ở 95% thì chi phí máy ảo vào khoảng 3,5 VM.s. Tuy nhiên, trong khi chi phí máy ảo cao ứng với ngưỡng thấp thì trên hình 2 cho thấy chi phí thời gian trung bình/yêu cầu lại nhỏ hơn, khoảng 31s/yêu cầu ở ngưỡng 80% so với 37s/yêu cầu ở ngưỡng 90% và cao hơn 40s khi ngưỡng ở 95%. Hình 2. Chi phí thời gian trung bình hoàn thành một yêu cầu tương ứng với các mức ngưỡng dùng CPU. Tiếp theo hệ thống điện toán đám mây được chạy với thuật toán auto scaling dùng tham số tỉ lệ yêu cầu không được tiếp nhận lần đầu và phải đợi waiting rate. Kịch bản lưu lượng ngõ vào hệ thống điện toán đám mây lần này hoàn toàn giống như lần chạy trong trường hợp dùng ngưỡng CPU uasge ở trên. Các ngưỡng tỉ lệ này được thay đổi lần lượt theo các tỉ lệ 20%, 30%, 40% và 50%. Ứng với mỗi trường hợp ngưỡng khác nhau chi phí máy ảo trung bình hoàn thành một yêu cầu và chi phí thời gian trung bình hoàn thành một yêu cầu được thống kê và tính toán. Kết quả chạy mô phỏng của trường hợp này được trình bày trên hình 3 và hình 4. Hình 3 là mô tả chi phí máy ảo trung bình VM.s/yêu cầu theo các ngưỡng tỉ lệ waiting rate và hình 4 là chi phí thời gian trung bình/yêu cầu theo các ngưỡng tỉ lệ waiting rate. 0 1 2 3 4 5 6 80 85 90 95 Chi phí máy ảo trung bình theo ngưỡng CPU Usage 0 10 20 30 40 50 80 85 90 95 Chi phí thời gian trung bình theo ngưỡng CPU usage Nguyễn Hồng Sơn SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 83 Hình 3. Chi phí máy ảo trung bình hoàn thành một yêu cầu tính theo VM.s tương ứng với các mức ngưỡng dùng waiting rate. Hình 3 cho thấy với ngưỡng tỉ lệ thấp 20% làm chi phí máy ảo ở mức cao 3.75 VM.s và chi phí giảm dần khi ngưỡng tỉ lệ tăng lên, mỗi yêu cầu tiêu tốn trung bình là 3.45 VM.s khi ngưỡng tỉ lệ được đặt ở 50%. Tuy nhiên, trên hình 4 thì chi phí thời gian trung bình/yêu cầu tăng lên khi ngưỡng tỉ lệ tăng, ở mức 34 s ứng với ngưỡng tỉ lệ 20% và 40s khi ngưỡng tỉ lệ là 50%. Hình 4. Chi phí thời gian trung bình hoàn thành một yêu cầu tương ứng với các mức ngưỡng dùng waiting rate. Sau cùng, hình 5 là nhằm so sánh giữa auto scaling dựa vào CPU usage và auto scaling dựa vào waiting rate được đề xuất. Trục tung biểu thị chi phí máy ảo trung bình/yêu cầu và trục hoành là chi phí thời gian trung bình/yêu cầu. Theo đó, với chi phí thời gian trung bình ở mức thấp thì trường hợp dùng waiting rate có chi phí máy ảo thấp hơn nhiều, khoảng 3.7 VM.s so với 5.6 VM.s của trường hợp dùng CPU usage. Chỉ khi chi phí thời gian trung bình/yêu cầu lớn hơn 38.6s thì mức chi phí máy ảo của cả hai phương pháp mới xấp xỉ nhau ,vào khoảng 3.5 VM.s. Điều này chứng tỏ giải pháp auto scaling dùng waiting rate có thể giảm đồng thời cả hai chí phí so với auto scaling dùng CPU usage truyền thống. Hình 5. Quan hệ giữa chi phí máy ảo trung bình (MATB) và chi phí thời gian trung bình (TGTB) trên một yêu cầu của giải pháp dùng CPU usage và Waiting rate. VI. KẾT LUẬN Phương pháp auto scaling sử dụng tỉ lệ giữa yêu cầu không được đáp ứng lần đầu và tồng số yêu cầu được đệ trình đã được trình bày. Phương pháp này được xem như một trong số các phương pháp theo xu hướng custom- metric auto scaling. Với cách dùng tỉ lệ này đã bao hàm tất cả các yếu tố phản ảnh năng lực của máy ảo và của hệ thống thuê bao trên điện toán đám mây vào thời điểm xem xét, nhờ đó phản hồi tình trạng máy ảo thực tế hơn, giúp đưa ra quyết định chính xác cho auto scaling. Kết quả mô phỏng dựa vào mô hình đánh giá cho thấy phương pháp auto scaling được đề xuất đã giảm đồng thời cả chi phí máy ảo và chi phí thời gian so với auto scaling dựa vào mức độ sử dụng CPU đang được dùng phổ biến trên các hệ thống điện toán đám mây hiện nay. Điều này đồng nghĩa với chi phí được giảm thiểu nhưng chất lượng dịch vụ vẫn được đảm bảo khi thực hiện auto scaling dùng tỉ lệ đặc biệt này. Nếu các hệ thống giám sát trung tâm của hệ thống điện toán đám mây có cung cấp tỉ lệ này thì người dùng hoàn toàn có thể áp dụng phương pháp cho hệ thống thuê bao của mình một cách nhanh chóng và hiệu quả. TÀI LIỆU THAM KHẢO [1] Peter Mell, Timothy Grance, The NIST Definition of Cloud Computing, NIST Special Publication 800-145, September 2011. [2] Lorido-Botran, T., Miguel-Alonso, J. & Lozano, J.A. A Review of Auto-scaling Techniques for Elastic Applications in Cloud Environments. J Grid Computing 12, 559–592 (2014). https://doi.org/10.1007/s10723-014-9314-7 [3]Dariusz Rafal Augustyn, Lukasz Warchal, Metrics-Based Auto Scaling Module for Amazon Web Services Cloud Platform, 2017 [4] Salman Taherizadeh and Vlado Stankovski, Dynamic Multi- level Auto-scaling Rules for Containerized Applications, Computer And Communications Networks and Systems The Computer Journal, Vol. 62 No. 2, 2019 [5] Sabidur Rahman, et al. Auto-Scaling Network Resources using Machine Learning to Improve QoS and Reduce Cost, Networking and Internet Architecture, arXiv:1808.02975v2 [cs.NI], 2019. [6] CloudSim 3.0 API, The Cloud Computing and Distributed Systems(CLOUDS) Laboratory, The University of Melbourne,available: 3.3 3.4 3.5 3.6 3.7 3.8 20 30 40 50 Chi phí máy ảo trung bình theo ngưỡng Waiting Rate 0 10 20 30 40 50 20 30 40 50 Chi phí thời gian trung bình theo ngưỡng Waiting Rate 0 1 2 3 4 5 6 32.9 35.89 38.61 40.23 Chi phi MATB-Chi phí TGTB (CPU Usage) Chi phí MATB-Chi phí TGTB (Waiting Rate) ĐIỀU CHỈNH TÀI NGUYÊN TỰ ĐỘNG DỰA VÀO THAM SỐ CHẤT LƯỢNG DỊCH VỤ TRONG CLOUD COMPUTING SỐ 02 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 84 [7] https://kubernetes.io/ AUTO SCALING BASED ON QUALITY OF SERVICE PARAMETERS IN CLOUD COMPUTING Abstract: The provision of auto scaling service on the infrastructure of cloud service providers has helped subscribers avoid service degradation and save costs. Along with that is the emergence of auto scaling algorithms to automate the provision and return resources in a timely manner.The auto scaling method, which is based on the rule of matching current parameter values with thresholds, is commonly used in industrial environments. The effectiveness of the auto scaling method depends on how the parameter is selected. In this paper I propose to use quality of service parameters instead of a commonly used CPU usage parameter. The paper also provides a model to evaluate the effectiveness of this type of auto scaling and based on that to test the effectiveness of the method. The model has been installed and effectiveness has been determined according to the choice of quality of service parameters. Nguyen Hong Son received his B.Sc. in Computer Engineering from Ho Chi Minh City University of Technology, his M.Sc. and PhD in Communication Engineering from the Post and Telecommunication Institute of Technology Hanoi. His current research interests include communication engineering, machine learning, data science, network security, and cloud computing
File đính kèm:
- dieu_chinh_tai_nguyen_tu_dong_dua_vao_tham_so_chat_luong_dic.pdf