L ỜI CẢ M ƠN
3.4 Thuật toán Active Monitoring Load Balancer
Chính sách cân bằng tải trong thuật toán này cố gắng duy trì tải công bằng trên tất cả các máy ảo sẵn có[7],[24]. Thuật toán duy trì thông tin về mỗi máy ảo và số lượng yêu cầu hiện tại được cấp phát tới máy ảo. Khi một yêu cầu cấp phát một máy ảo đến, DatacenterBroker sẽ xác định máy ảo có tải ít nhất. Nếu có nhiều hơn một, xác định đầu tiên được chọn. Sau khi DatacenterBroker xác định id máy ảo, DatacenterBroker gởi yêu cầu tới máy ảo được xác định bởi id đó và cập nhật tăng số cấp phát Cloudlet cho máy ảo. Khi DatacenterBroker nhận đáp ứng từ Cloudlet nó giảm số cấp phát cho máy ảo đi một.
3.4.2 Thuật toán
Bước 1: Khởi tạo DatacenterBroker duy trì một bảng chỉ mục của các máy
ảo và số lượng yêu cầu hiện tại được phân bổ tới máy ảo. Tại thời điểm bắt đầu tất cả máy ảo chưa được cấp phát.
Bước 2: Khi một yêu cầu phân bổ một máy ảo mới đến DatacenterBroker, nó phân tích bảng chỉ mục và xác định máy ảo có tải ít nhất. Nếu có nhiều hơn một, xác định đầu tiên được chọn.
Bước 3: DatacenterBroker xác định id máy ảo
Bước 4: DatacenterBroker gởi yêu cầu tới máy ảo được xác định bởi id
đó.
cho máy ảo có ID đã xác định lên một.
Bước 6: Khi máy ảo hoàn thành xử lý Cloudlet và DatacenterBroker nhận đáp ứng cloudlet. Nó cập nhật bảng chỉ mục bằng cách giảm số cấp phát cho máy ảo đi một.
Bước 7: Tiếp tục từbước 2.
3.4.3 Đánh giá
Yêu cầu xử lý trong thuật toán cân bằng tải động này được phân phối lại ở thời gian thực thi phụ thuộc vào trạng thái của hệ thống, đó là tải của mỗi máy ảo. Tại mỗi thời điểm phân phối, tải sẽ được chuyển từ máy ảo có tải nặng tới máy ảo có tải nhẹ hơn. Do đó hạn chế được tình trạng thắt cổ chai, máy ảo có năng lực xửlý mạnh nhất được gán nhiều tải hơn máy ảo có năng lực xử lý yếu hơn. Nên cải thiện thời gian đáp ứng một cách đáng kể.
Tuy nhiên, Thuật toán còn có điểm hạn chế và chưa hiệu quả nếu chỉ dựa vào tải hiện tại của máy ảo để phân bổ Cloudlet mới. Mặc dù trong thuật toán Active Monitoring Load Balancer máy ảo mạnh nhất được phân bổ nhiều tải hơn máy ảo có năng lực xử lý yếu hơn. Nhưng nếu vào từng thời điểm chỉ xét tải của từng máy ảo để đưa ra quyết định phân bổ Cloudlet là chưa đủ. Nguyên do, trong một số trường hợp chưa thể khẳng định được rằng máy ảo có tải nặng hơn sẽ mất nhiều thời gian xử lý Cloudlet tiếp theo đến và thời gian đáp ứng chậm hơn so với máy ảo có tải nhẹhơn. Trong một hệ thống mà khảnăng xửlý của mỗi máy ảo là không đồng nhất, và chiều dài của mỗi Cloudlet là tùy ý, thì có khả năng khả năng tổng thời gian hoàn thành xử lý hàng đợi của máy ảo có nhiều cloudlet hơn là nhỏ hơn tổng thời gian hoàn thành xử lý hàng đợi của máy ảo có ít cloudlet. Bởi vì máy đang chứa nhiều cloudlet nhưng công suất xử lý mạnh hơn nhiều lần so với máy có ít cloudlet thì hoàn toàn có thể kết thúc xử lý công việc sớm hơn. Vì vậy, việc lựa chọn máy ảo có tải ít hơn để đưa ra quyết định phân bổ Cloudlet tiếp theo sẽ không đạt hiệu quả trong một số trường hợp.
CHƯƠNG 4: ĐỀ XUẤT THUẬT TOÁN CÂN BẰNG TẢI CẢI
TIẾN
4.1Giới thiệu
Kỹ thuật cân bằng tải trong điện toán đám mây thể áp dụng ở những mức khác nhau, nó phụ thuộc vào chúng ta muốn cân bằng tải những gì. Điều này có thể được nghiên cứu và phát hiện ở các mức độ khác nhau trong khía cạnh khác nhau chẳng hạn như: chúng ta có một cơ sở hạ tầng SaaS, nơi có nhiều các yêu cầu về dịch vụ được tiếp nhận. Các yêu cầu này phải được phân phối tới các máy ảo sẵn có để xử lý. Vấn đề đặt ra là làm thế nào phân phối các yêu cầu đó để thời gian đápứng yêu cầu nhỏ nhất, làm thế nào để quyết định số lượng vàđặc điểm của các máy ảo xử lý các yêu cầu này. Trong một trường hợp khác, cơ sở hạ tầng điện toán đám mây để xử lý các yêu cầu có thể được chia sẽ giữa các Datacenter khác nhau của cùng hoặc khácnhà cung cấp dịch vụ. Vậy làm thế nào để phân phối các yêu cầu giữa chúng để thời gian thực thi được tối thiểu. Trong trường hợp này, các nhà cung cấp dịch vụ khác nhau có thể tính phí khác nhau cho các nguồn tài nguyên, và để giải quyết vấn đề này cần phải được xem xét cùng với thuật toán cân bằng tải.
Do đó, để thực hiện các chính sách cân bằng tải phụ thuộc vào cách chúng ta muốn thực hiện ở mức nào. Chẳng hạn như, nếu chúng ta muốn Datacenter cân bằng tải các host vật lý liên quan đến máy ảo, tức là chính sách cung cấp phân bổ host cho máy ảo, như chính sách phân bổ một host có ít core xử lý được sử dụng nhất cho một máy ảo, cân bằng tải ở mức này gọi là ở mức Host. Nếu chúng ta muốn cân bằng tải của các máy ảo đang chạy ứng dụng, tức là mỗi máy ảo chia các nguồn tài nguyên nhận được từ Host cho các tác vụ hay dịch vụ ứng dụng đang chạy trên chúng, cân bằng tải ở mức này gọi là mức máy ảo [3],[7]. Trong phạm vi của luận văn sẽ tập trung nghiên cứu kỹ thuật cân bằng tải ở mức máy ảo, chính sách lập lịch được thực hiện bởi máy ảo sử dụng là time- shared hoặc space-share và chính sách lập lịch là time-shared hoặc space-share cho tác vụ. Mục tiêu làđề xuất cải tiến thuật toán Active Monitoring Load Balancer nhằm cải thiện thời gian đáp ứng xử lý yêu cầu hay dịch vụ ứng dụng cho bốn
chính sách lập lịch cho máy ảo và cho tác vụ.
Để minh họa rõ ràng sự khác nhau giữa các chính sách này và hiệu quả của chúngtrên hiệu xuất dịch vụứng dụng, trong hình 3.1 trình bày một kịch bản cung cấp máy ảo đơn giản. Trong hình này, một host với hai core CPU nhận yêu cầu lưu giữ hai máy ảo. Như vậy mỗi máy ảo yêu cầu hai core và có kế hoạch lưu giữ bốn đơn vị tác vụ. Cụ thể hơn, các tác vụ t1, t2, t3, t4 được lưu giữ trong máy ảo một, trong khi t5, t6, t7 và t8 được giữ trong máy ảo hai.
Hình 3.1(a) trình bày một kịch bản cung cấp, trong đó chính sách space- shared được áp dụng cho cả máy ảo và các đơn vị tác vụ. Vì mỗi máy ảo yêu cầu hai core, trong môhình space-shared chỉ một máy ảo có thể chạy ở một trường hợp thời gian nhất định. Vì vậy, máy ảo hai chỉ có thể được giao core khi máy ảo một hoàn thành thực thi các đơn vị tác vụ. Tương tự xảy ra đối với các tác vụ cung cấp bên trong máy ảo một. Vì mỗi đơn vị tác vụ chỉ yêu cầu một core, do đó cả hai trong sốcác tác vụcó thể chạy đồng thời. Trong suốt thời gian này các tác vụ còn lại đợi trong hàng đợi thực thi. Bởi vì sử dụng chính sách space-shared, thời gian hoàn thành dự kiến của một cloudlet p được quản lý bởi máy ảo i được cho bởi công thức sau [16]:
Trong đó est(p) là thời thời điểm của Cloudlet p được khởi động và rl(p) là tổng số chỉ thị mà Cloudlet p sẽ cần thực thi trên một bộ xử lý. Thời gian bắt đầu dự kiến phụ thuộc vào vị trí của Cloudlet trong hàng đợi thực thi, bởi vì đơn vị xử lý được dùng độc quyền, chế độ space-shared, bởi Cloudlet. Các Cloudlet được đặt trong hàng đợi khi có core xử lý rỗi sẵn sàng để dùng sẽ được giao cho máy ảo. Trong chính sách này, tổng công suất của một Host có np phần tử xử lý được cho bởi công thức [16]:
Trong đó cap(i) là năng lực xử lý của core I, np lá số lượng core thực mà Host đang xét có.
Trong hình 3.1(b), một chính sách space-shared được áp dụng để phân bổ máy ảo tới các Host và chính sách time-shared hình thành cơ sở để phân bổ các đơn vị tác vụ tới core xử lý bên trong một máy ảo. Do đó, trong suốt thời gian sống của máy ảo, tất cả các tác vụ được giao tới nó được chuyển theo bối cảnh động. Bằng cách sử dụng chính sách time-shared, thời gian hoàn thành dự kiến của một Cloudlet được quản lý bởi một máy ảo được cho bởi công thức [16]:
Trong đó, eft(p) là thời gian hoàn thành dự kiến, ct là thời gian mô phỏng hiện tại, rl(p) là tổng số chỉ thị mà Cloudlet p sẽ cần thực thi trên một bộ xửlý và cores(p) là số lượng core yêu cầu bởi Cloudlet. Trong chế độ time- shared, nhiều Cloudlet có thể đồng thời đa tác vụ bên trong một máy ảo. Trong trường hợp này, tổng công suất xử lý của Host đám mây như sau [16]:
Trong đó cap(i) là năng lực xử lý của core i, np lá số lượng core thực mà Host đang xét có.
Trong hình 3.1(c), máy ảo sử dụng chính sách cung cấp time-shared, trong khi các tác vụ được cung cấp dựa trên chính sách space-shared. Trong trường hợp
này, mỗi máy ảo nhận một lát thời gian trên mỗi core xử lý, máy ảo sau đó phân phối các lát giữa các đơn vị tác vụ trên cơ sở space-shared. Vì các core được chia sẻ, số lượng năng lực xửlý sẵn sàngđể sử dụng cho một máy ảo có thể thay đổi. Điều này xác định các máy ảo thích hợp hoạt động trên một Host. Cũng như các đơn vị tác vụ được gán dựa trên chính sách space-shared, có nghĩa rằng tại bất kỳ trường hợp thời gian nhất định chỉ một tác vụ có thể tích cực sử dụng core xử lý.
Cuối cùng hình 3.1(d) chính sách phân bổ time-shared áp dụng cho cả máy ảo và tác vụ. Do đó, năng lực xử lý được chia sẻ đồng thời bởi các máy ảo và sự nhận chia sẻ này của mỗi máy ảo được chia giữa các tác vụ của nó. Trường hợp này, không có trễ xếp hàng liên quan với các tác vụ.
Hình 4.1. Ảnh hưởng các chính sách cung cấp khác nhau đối với sự
thực thi đơn vịtác vụ:
(a) Cung cấp Space-shared cho các máy ảo và tác vụ.
(b) Cung cấp Space- shared cho các máy ảo và cung cấp Time-shared cho tác vụ.
(c) Cung cấp Time-shared cho máyảo, cung cấp Space-shared cho tác vụ. (d) Cung cấp Time-shared cho máy ảo và tác vụ. [16]
4.2Mô hình cân bằng tải trong điện toán đám mây
Hình 4.2 Mô hình IaaS điện toán đám mây thông qua thành phần DatacenterBroker [10].
Hình 4.2 trình bày mô hình phân phối các tác vụ của DatacenterBroker đến các máy ảo để xử lý. Trong môi trường điện toán đám mây, máy ảo cho phép sự trừu tượng hệđiều hànhvà các ứng dụng chạy trên nó từ phần cứng. Dịch vụ cơ sở hạ tầng bên trong kết nối đến những đám mây được mô hình bởi thực thể datacenter để xử lý các yêu cầu dịch vụ. Các dịch vụ xử lý yêu cầu này là các phần ứng dụng chứa bên trong các máy ảo, nó cần được cấp phát một sức mạnh xử lý chia sẻ trong các thành phần host của datacenter. Các tác vụ từ nhiều người dùng khác nhau tương đối độc lập; Ở hình 4.1 chúng ta xét một đám mây có m người dùng như User1, User2,…, Usern, n tác vụ độc lập T1, T2,…, Tn, n máy ảo như VM1, VM2,…,VMn, và p datacenters như Datacenter1, Datacenter2,…,Datacenterp. Tại một thời điểm cụ thể, m người dùng gởi n tác vụ đến hệ thống yêu cầu phục vụ, DatacenterBroker là trung gian chịu trách nhiệm giữa người dùng và nhà cung cấp dịch vụ đám mây phụ thuộc vào yêu cầu QoS của người dùng. DatacenterBroker sẽ cố gắng đệ trình và phân bổ n tác vụ này đến n máy ảo sau cho hiệu năng của mỗi máy ảo là tốt nhất, góp phần cải thiện
được hiệu năng của toàn bộ đám mây, giảm được thời gian xử lý và thời gian đáp ứng yêu cầu xửlý của người dùng.Nhưng đồng thời phải đảm bảo khôngđể một máy ảo phải xử lý ở tình trạng tải nặng và những máy ảo khác ở trong tình trạng tải nhẹ. Do đó, các chính sách cân bằng tải, phân phối tải chạy trên các máy ảo được xét ở DatacenterBroker được gọi là chính sách cân bằng tải ở mức máy ảo.
4.3Đề xuất thuật toán cải tiến 4.3.1 Ý tưởng cải tiến
Thuật toán cải tiến sẽ dựa trên cả hai tiêu chí tải và công suất của máy ảo để đưa ra quyết định máy ảo nào sẽ được chọn phân bổ Cloudlet tiếp theo. Trong trường hợp đã nêu trên, khi DatacenterBroker phân bổ Cloudlet tới một máy ảo có tải ít hơn chưa chắc là thời gian đáp ứng tốt hơn máy ảo có tải nhiều hơn. Vì điều này còn phụ thuộc vào công suất của mỗi máy ảo. Tại thời điểm cụ thể, DatacenterBroker luôn biết được trạng thái hiện tại của mỗi máy ảo, cùng các cloudlet mà nó nắm giữ. Chính vì vậy, ý tưởng đề xuất cho thuật toán cải tiến là tại thời điểm chuẩn bị phân bổ cloudlet tiếp theo, DatacenterBroker sẽ xem xét từng máy ảo trên từng máy host vật lý, cụ thể là tính tổng chi phí thời gian xử lý các Cloudlet đang ở trong hàng đợi của mỗi máy ảo với chi phí thời gian xử lý Cloudlet chuẩn bị phân bổ tiếp theo trên chính máy ảo đang xét. Khi đó tổng chi phí thời gian xử lý trên máy ảo nào là nhỏ hơn thì chọn máy ảo đó để phân bổ Cloudlet đến. Trong ý tưởng đề xuất này, công suất thực sự dành cho xử lý các cloudlet trên mỗi máy ảo là một yếu tố quan trọng được đưa vào tính toán mà không bị bỏ qua như các phương pháp cũ. Việc xác định công suất xử lý thực sự cho cloudlet trên máy ảo trong hạ tầng ảo hóa đám mây là phức tạp, tùy thuộc vào cơ chế lập lịch tài nguyên tính toán trong hệ thống. Vì vậy, trong đề tài cũng sẽ phát triển các công thức đểtính toán cho mục đích này (xem mục 4.3.3).
4.3.2 Phân tích hệ thống
Luồng giao tiếp giữa DatacenterBroker với các đối tượng
Hình 4.3 trình bày luồng giao tiếp giữa Datacenter và DatacenterBroker. Khi Datacenter được tạo ra sẽ đăng ký thông tin của với dịch vụ thông tin đám mây,
CIS. Dựa trên những thông tin được cập nhật, CIS giúp cho DatacenterBroker có thể tra cứu thông tin về đặc điểm nguồn tài nguyên tính toán của các nhà cung cấp dịch vụ đám mây phù hợp với yêu cầu của nó. Sau khi nhận được tài nguyên tính toán, DatacenterBroker sẽ gởi yêu cầu khởi tạo các máy ảo trực tiếp đến Datacenter và đóng vai trò trung gian đại diện cho người dùng lập lịch và điều phối các yêu cầu xửlý tới các máy ảo. Cho đến khi tất cảcác yêu cầu được hoàn thành xử lý, lúc này máy ảo sẽ được hủy bỏ. Vì vậy, hiệu quả của chính sách lập lịch và điều phối tải của DatacenterBroker sẽ ảnh hưởng đến thời gian đáp ứng của nguồn tài nguyên đám mây cho các yêu cầu xửlý của người dùng. Cân bằng tải ở mức máy ảo như đã đề cập ở trên là trường hợp đặc biệt của chính sách phân phối tải. Vì vậy, thuật toán được cài đặt và thực hiện tại thành phần điều phối, DatacenterBroker.
Hình 4.3. Sơđồ luồng giao tiếp giữa Datacenter với các đối tượng [16]
Cácthành phần trong DatacenterBroker
Mô tả chức năng các thành phần DatacenterBroker trong hình 4.3 như sau: 1. Thành phần tiếp nhận yêu cầu khởi tạo máy ảo, xử lý công việc từ phía
2. Thành phần tra cứu nguồn tài nguyên đám mây về nguồn tài nguyên đám mây thông qua dịch vụ thông tin đám mây.