Phân cấp tài nguyên

Một phần của tài liệu Phát triển dịch vụ quản lý và phân phối tài nguyên trong điện toán đám mây (Trang 33)

Như đã nói trong mục 4.1.1, hệ thống tài nguyên ảo trong điện toán đám mây có thể được thiết kế phân cấp như hình sau:

Datacenter

Cụm 1 Cụm 2 Cụm 3

Các mẫu máy ảo RP 1 RP 2 RP 3 Các máy chủ (hosts) Các hệ thống mạng ảo

VM 1 VM 2 VM 3 RP 3.1 RP 3.2 RP 3.3

CPU Memory Ổ đĩa cứng Các thiết bị ảo

Hình 9: Phân cấp tài nguyên ảo trong một hệ thống điện toán đám mây 4.3. Thiết kế các chức năng

Dịch vụ quản lý và phân phối tài nguyên được thiết kế với mục đích là để ảo hóa cơ sở hạ tầng điện toán đám mây cho các doanh nghiệp, dùng cho kỹ thuật viên của các nhà cung cấp dịch vụ đám mây và đồng thời dùng cho chức năng tự phục vụ việc cấp phát và sử dụng tài nguyên ảo của người dùng trong các hệ thống dịch vụ điện toán đám mây. Người sử dụng có thể là các doanh nghiệp thuê dịch vụ đám mây của nhà cung cấp hoặc các khách hàng cá nhân tùy. Mỗi doanh nghiệp hoặc nhóm khách hàng cá nhân sẽ được cấp một Resource Pool mà chứa các tài nguyên máy ảo, mạng, cpu, bộ nhớ phù hợp tùy theo yêu cầu thuê dịch vụ. Các thao tác của người dùng sẽ chủ yếu tác động lên tài nguyên Resource Pool và các máy ảo. Vì thế, luận văn này sẽ tập trung thiết kế chủ yếu các chức năng tương tác trên resource pool và máy ảo.

4.3.1. Các chức năng đƣợc phát triển

Chức năng Mô tả Tên phƣơng thức

Truy vấn danh sách các trung tâm dữ liệu

Truy vấn danh sách các trung tâm dữ liệu, thông tin bao gồm:

 Tên datacenter

getDatacenters

Truy vấn danh sách các cụm (cluster)

Truy vấn danh sách các cụm có trong một trung tâm dữ liệu, thông tin bao gồm:  Tên cụm getClusters Truy vấn danh sách các vùng tài nguyên (Resource Pool) có trong một cụm

Truy vấn danh sách các Resource Pool có trong một cụm, thông tin lấy ra gồm:

 Tên Resource Pool

getResourcePools

Tạo mới một

Resource Pool

Tạo mới một Resource Pool với các thông tin đầu vào gồm có:

 Tên Resource Pool (tên Resource Pool là duy nhất)  Các thông tin về tài nguyên CPU gán cho Resource Pool

 Các thông tin tài nguyên bộ nhớ gán cho Resource Pool

createResourcePool

Truy vấn thông tin của một Resource Pool theo tên

Truy vấn thông tin chi tiết của một Resource Pool theo tên, thông tin lấy ra bao gồm:

 Tên Resource Pool (như dữ liệu đầu vào)

 Số máy ảo có trong Resource Pool

 Số máy ảo đang chạy  Các thông tin về tài

nguyên CPU (adsbygoogle = window.adsbygoogle || []).push({});

 Các thông tin về tài nguyên bộ nhớ

 Danh sách các máy ảo và thông tin chi tiết của mỗi máy

 Các thông tin thống kê việc sử dụng tài nguyên trong Resource Pool theo ngày, tuần, tháng, năm. Thay đổi thông tin

cấu hình của một Resource Pool

Thay đổi thông tin về các tài nguyên được gán cho Resource Pool:

 Cấu hình lại thông tin tài nguyên CPU

 Cấu hình lại thông tin tài nguyên bộ nhớ

reconfigResourcePool

Xóa một Resource Pool

Xóa một Resource Pool theo dữ liệu truyền vào là:

 Tên datacenter  Tên cluster

 Tên Resource Pool cần xóa

deleteResourcePool

Truy vấn danh sách các mẫu

Lấy ra tất cả các mẫu máy ảo để phục vụ cho việc tạo mới máy ảo từ một mẫu có sẵn, các thông tin lấy ra bao gồm:

 Tên mẫu máy  Mã hệ điều hành  Tên hệ điều hành  Nhóm hệ điều hành  Số lượng CPU  Kích thước bộ nhớ getTemplates

 Dung lượng ổ cứng Truy vấn danh sách

các máy ảo

Lấy ra tất cả các máy ảo có trong một Resource Pool. Các thông tin lấy ra bao gồm:

 Tên máy ảo  Mã hệ điều hành  Tên hệ điều hành  Nhóm hệ điều hành  Số lượng CPU  Kích thước bộ nhớ  Dung lượng ổ cứng getVMs

Truy vấn thông tin chi tiết một máy ảo

Lấy thông tin chi tiết một máy ảo. Bao gồm các thông tin sau:

 Tên máy ảo  Mã hệ điều hành  Tên hệ điều hành  Nhóm hệ điều hành  Số lượng CPU  Kích thước bộ nhớ  Dung lượng ổ cứng  Các thông tin về mạng như: địa chỉ IP, DNS…  Các thông tin chi tiết về tài

nguyên CPU (tài nguyên được gán, giới hạn, tài nguyên đã sử dụng, tài nguyên còn chưa sử dụng, tài nguyên được phép sử dụng vượt hạn mức…)  Các thông tin chi tiết về tài

nguyên bộ nhớ (tài nguyên được gán, giới hạn, tài

nguyên đã sử dụng, tài nguyên còn chưa sử dụng, tài nguyên được phép sử dụng vượt hạn mức…) Tạo mới máy ảo Cho phép người dùng tạo mới một

máy ảo bằng cách truyền vào các tham số:

 Tên máy ảo (tên máy ảo là duy nhất)  Mã hệ điều hành  Số lượng CPU  Kích thước bộ nhớ  Dung lượng ổ cứng createVM

Cấu hình lại máy ảo Sửa đổi thông tin máy ảo như:  Số lượng CPU  Kích thước bộ nhớ  Dung lượng ổ cứng

reconfigVM (adsbygoogle = window.adsbygoogle || []).push({});

Xóa một máy ảo Xóa thông tin máy ảo theo tên máy ảo được truyền vào.

deleteVM

Đánh dấu một máy ảo như là một mẫu (template)

Đánh dấu một máy ảo như một template để sử dụng cho các lần sau.

markVMAsTemplate

Nhân bản máy ảo Nhân bản một máy ảo và cho phép cấu hình lại một số thông tin như: CPU, bộ nhớ, dung lượng ổ cứng, các thông tin về mạng như địa chỉ IP, Subnetmask, DNS, Getway.

Chức năng này hỗ trợ việc sao chép máy ảo:

 Từ template ra một template mới

 Từ template ra một máy ảo

mới

 Từ một máy ảo ra một template mới

 Từ một máy ảo ra một máy ảo mới

Bật máy ảo Bật máy ảo powerOnVM

Tắt máy ảo Tắt máy ảo powerOffVM

Khởi động lại một máy ảo

Khởi động lại một máy ảo resetVM

Tạm khóa một máy ảo

Tạm khóa một máy ảo suspendVM

Tắt hệ điều hành trên máy ảo

Tắt hệ điều hành trên máy ảo shutdownGuest

Khởi động lại hệ điều hành trên máy ảo

Khởi động lại hệ điều hành trên máy ảo

restartGuest

Chuyển hệ điều hành máy ảo sang chế độ chờ

Chuyển hệ điều hành máy ảo sang chế độ chờ

standbyGuest

Bảng 3: Các chức năng của dịch vụ quản lý và phân phối tài nguyên

4.3.2. URI của các web service tƣơng ứng với các chức năng Tên phƣơng thức Phƣơng

thức HTTP

URI Kiểu dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

getDatacenters GET /dcs Vào: không có

Ra: application/xml getClusters GET /dc/{dcname}/clusters Vào: không có

Ra: application/xml getResourcePools GET /dc/{dcname}/cluster/{cn

ame}/rps

Vào: không có Ra: application/xml

createResourcePool POST /dc/{dcname}/cluster/{cn ame}/rp

Vào: application/xml Ra: application/xml getResourcePool GET /dc/{dcname}/cluster/{cn

ame}/rp

Vào: không có Ra: application/xml reconfigResourcePool PUT /dc/{dcname}/cluster/{cn

ame}/rp

Vào: application/xml Ra: application/xml deleteResourcePool DELETE /dc/{dcname}/cluster/{cn

ame}/rp

Vào: không có Ra: không có

getTemplates GET /templates Vào: không có

Ra: application/xml

getVMs GET /dc/{dcname}/cluster/{cn

ame}/rp/{rpname}/vms

Vào: không có Ra: application/xml

getVM GET /vm/{vmname} Vào: không có

Ra: application/xml

createVM POST /vm Vào: application/xml

Ra: application/xml

reconfigVM PUT /vm/{vmname} Vào: application/xml

Ra: application/xml

deleteVM DELETE /vm/{vmname} Vào: không có

Ra: không có markVMAsTemplate PUT /vm/{vmname}/markAsT

emplate

Vào: không có Ra: không có

cloneVM POST /vm/{vmname}/clone Vào: application/xml Ra: application/xml powerOnVM PUT /vm/{vmname}/powerOn Vào: không có

powerOffVM PUT /vm/{vmname}/powerOff Vào: không có Ra: không có (adsbygoogle = window.adsbygoogle || []).push({});

resetVM PUT /vm/{vmname}/reset Vào: không có

Ra: không có suspendVM PUT /vm/{vmname}/suspend Vào: không có

Ra: không có shutdownGuest PUT /vm/{vmname}/shutdown Vào: không có

Ra: không có restartGuest PUT /vm/{vmname}/restart Vào: không có

Ra: không có standbyGuest PUT /vm/{vmname}/standby Vào: không có

Ra: không có

Bảng 4: Các URI của các web services 4.4. Mô tả chi tiết các chức năng

4.4.1. Truy vấn danh sách các trung tâm dữ liệu

Mô tả Liệt kê danh sách tên của các trung tâm dữ liệu.

URI http://servername/provisioning/dcs

Phương thức GET

Kiểu dữ liệu đầu vào Không có Dữ liệu đầu vào Không có

Kiểu dữ liệu đầu ra Application/xml

Dữ liệu đầu ra Danh sách tên các datacenter: HTTP/1.1 200 Ok

Server: Apache-Tomcat/6.0

Last-Modified: Thu, 11 Oct 2011 14:45:35 GMT Location: http://localhost:8080/provisioning/dcs

Date: Fri, 12 Oct 2011 12:00:28 GMT

Content-Type: application/xml; charset=UTF-8

<datacenters> <datacenter>

<name>VM-DC01</name> </datacenter> <datacenter> <name>VM-DC02</name> </datacenter> <datacenter> <name>VM-DC03</name> </datacenter> </datacenters>

Trạng thái dữ liệu đầu ra Mã dữ liệu trả về:

 200 Ok: nếu giao dịch thành công.

 500 Server error: nếu có lỗi xảy ra ở máy chủ.

Bảng 5: Chức năng truy vấn danh sách các trung tâm dữ liệu

4.4.2. Truy vấn danh sách các cụm

Mô tả Liệt kê danh sách tên của các cụm dữ liệu có trong một trung tâm dữ liệu căn cứ theo tên của trung tâm dữ liệu.

URI http://servername/provisioning/dcs/{dcname}/clusters

Phương thức GET

Kiểu dữ liệu đầu vào Tham số đường dẫn (path param). Dữ liệu đầu vào dcname: tên datacenter cần lấy dữ liệu. Kiểu dữ liệu đầu ra Application/xml

Dữ liệu đầu ra Danh sách tên các datacenter: HTTP/1.1 200 Ok (adsbygoogle = window.adsbygoogle || []).push({});

Server: Apache-Tomcat/6.0

Last-Modified: Thu, 11 Oct 2011 14:45:35 GMT Location: http://localhost:8080/provisioning/dc/VM- DC01/clusters

Date: Fri, 12 Oct 2011 12:00:28 GMT

Content-Type: application/xml; charset=UTF-8

<clusters> <cluster>

<name>Cluster01</name>

</cluster> <cluster>

<name>Cluster02</name>

</cluster> <cluster>

<name>Cluster03</name>

</cluster>

</clusters>

 200 Ok: nếu giao dịch thành công.

 404 Not found: nếu tên datacenter không đúng.  500 Server error: nếu có lỗi xảy ra ở máy chủ.

Bảng 6: Chức năng truy vấn danh sách các cụm

4.4.3. Truy vấn danh sách Resource Pool

Mô tả Liệt kê danh sách tên của các Resource Pool có trong một cụm dữ liệu căn cứ theo tên của trung tâm dữ liệu và tên của cụm dữ liệu chứa chúng.

URI http://servername/provisioning/dcs/{dcname}/cluster/{cna

me}/rps

Phương thức GET

Kiểu dữ liệu đầu vào Các tham số đường dẫn (path params)

Dữ liệu đầu vào  dcname: tên của datacenter cần lấy dữ liệu.

 cname: tên của cụm dữ liệu chứa các vùng dữ liệu cần lấy ra.

Kiểu dữ liệu đầu ra Application/xml

Dữ liệu đầu ra Danh sách tên các datacenter: HTTP/1.1 200 Ok

Server: Apache-Tomcat/6.0

Last-Modified: Thu, 11 Oct 2011 14:45:35 GMT Location: http://localhost:8080/provisioning/dc/VM- DC01/cluster/Cluster01/rps

Date: Fri, 12 Oct 2011 12:00:28 GMT

Content-Type: application/xml; charset=UTF-8

<resourcePools> <resourcePool> <name>RP001</name> </resourcePool> <resourcePool> <name>RP002</name> </resourcePool> <resourcePool> <name>RP003</name> </resourcePool> </resourcePools> (adsbygoogle = window.adsbygoogle || []).push({});

Trạng thái dữ liệu đầu ra Mã dữ liệu trả về:

 200 Ok: nếu giao dịch thành công.

 404 Not found: nếu tên datacenter và/hoặc tên cụm dữ liệu không đúng.

 500 Server error: nếu có lỗi xảy ra ở máy chủ.

Bảng 7: chức năng truy vấn danh sách Resource Pool

4.4.4. Truy vấn thông tin chi tiết của một Resource Pool

Mô tả Lấy ra thông tin chi tiết của một Resource Pool căn cứ vào tên datacenter, tên cụm dữ liệu và tên Resource Pool cần lấy thông tin.

Các thông tin cần lấy ra là:

 Các thông tin về tài nguyên được gán cho Resource Pool đó như bộ nhớ, CPU. Bao gồm các thông tin: kích thước, dung lượng được gán (reservation), giới hạn (limit), tài nguyên được phép vượt quá (overhead).

 Các thông tin về tài nguyên đã tiêu thụ (usage) và còn sẵn sang (available) của Resource Pool.  Danh sách các máy ảo thuộc Resource Pool đó và

các thông tin tài nguyên của các máy ảo.

 Danh sách các Resource Pool con chứa trong nó.

URI http://servername/provisioning/dcs/{dcname}/cluster/{cna

me}/rp/{rpname}

Phương thức GET

Kiểu dữ liệu đầu vào Các tham số đường dẫn (path params)

Dữ liệu đầu vào  dcname: tên của datacenter cần lấy dữ liệu.

 cname: tên của cụm dữ liệu chứa các vùng dữ liệu cần lấy ra.

Kiểu dữ liệu đầu ra Application/xml

Dữ liệu đầu ra Danh sách tên các datacenter: HTTP/1.1 200 Ok

Server: Apache-Tomcat/6.0

Last-Modified: Thu, 11 Oct 2011 14:45:35 GMT Location: http://localhost:8080/provisioning/dc/VM- DC01/cluster/Cluster01/rp/RP001

Date: Fri, 12 Oct 2011 12:00:28 GMT

Content-Type: application/xml; charset=UTF-8

<resourcePool> <cpuResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </cpuResource> <memoryResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </memoryResource> <virtualMachine> <name>RP001.VM001</name> <memory>1024</memory> <numCPU>1</numCPU> <diskSize>15360</diskSize> <state>powerOn</state> <guest>

<guestOsFullName>Ubuntu Linux (32- bit)</guestOsFullName>

<guestOsId>ubuntuGuest</guestOsId> <nicSetting>

<ip>192.168.122.1</ip>

<macAddress>00:50:56:ae:3c:c5</macAddress> </nicSetting> </guest> <cpuResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </cpuResource> <memoryResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </memoryResource> </virtualMachine> <virtualMachine> <name>RP001.VM002</name> <memory>1024</memory> <numCPU>1</numCPU> <diskSize>15360</diskSize> <state>powerOn</state> <guest>

<guestOsFullName>Microsoft Windows XP Professional (32-bit)</guestOsFullName> (adsbygoogle = window.adsbygoogle || []).push({});

<guestOsId>winXPProGuest</guestOsId> <nicSetting>

<ip>192.168.11.99</ip>

</nicSetting> </guest> <cpuResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </cpuResource> <memoryResource> <limit>9200</limit> <reservation>0</reservation> <reservationUsed>0</reservationUsed> <unreserved>9200</unreserved> </memoryResource> </virtualMachine> <resourcePool> <name>RP001</name> </resourcePool> <resourcePool> <name>RP001</name> </resourcePool> <resourcePool> <name>RP001</name> </resourcePool> </resourcePool>

Trạng thái dữ liệu đầu ra Mã dữ liệu trả về:

 200 Ok: nếu giao dịch thành công.

 404 Not found: nếu tên datacenter, tên cụm dữ liệu và/hoặc tên Resource Pool không đúng.  500 Server error: nếu có lỗi xảy ra ở máy chủ.

Bảng 8: Chức năng truy vấn thông tin chi tiết của một Resource Pool

4.4.5. Tạo mới một Resource Pool

Mô tả Tạo mới một Resource Pool với các tham số đầu vào là tên Resource Pool và các giá trị của tài nguyên được gán.

URI http://servername/provisioning/dcs/{dcname}/cluster/{cna

me}/rp/{rpname}

Phương thức POST

Kiểu dữ liệu đầu vào Các tham số đường dẫn (path params)

Xâu dữ liệu đầu vào định dạng application/xml. Dữ liệu đầu vào Các tham số đường dẫn:

 dcname: tên của datacenter cần lấy dữ liệu.

liệu cần lấy ra.

 Rpname: tên của Resource Pool cần tạo. Xâu dữ liệu đầu vào định dạng XML:

POST http://localhost:8080/provisioning/dc/VM- DC01/cluster/Cluster01/rp/{rpname} HTTP/1.1 Accept: application/xml Accept-Language: en-us <resourcePool> <name>RP001</name> <cpuResource> <expandableReservation>false</expandableReservation> <limit>7523</limit> <reservation>2385</reservation> <shareLevel>Custom</shareLevel> <shareValue>21920</shareValue> </cpuResource> <memoryResource> <expandableReservation>true</expandableReservation> <limit>2453</limit> <reservation>777</reservation> <shareLevel>Custom</shareLevel> <shareValue>21920</shareValue> </memoryResource> </resourcePool> Kiểu dữ liệu đầu ra Application/xml

Dữ liệu đầu ra Danh sách tên các datacenter: HTTP/1.1 200 Ok

Server: Apache-Tomcat/6.0

Last-Modified: Thu, 11 Oct 2011 14:45:35 GMT Location: http://localhost:8080/provisioning/dc/VM- DC01/cluster/Cluster01/rps

Date: Fri, 12 Oct 2011 12:00:28 GMT

Content-Type: application/xml; charset=UTF-8

<resourcePools> <resourcePool> <name>RP001</name> </resourcePool> <resourcePool> <name>RP002</name> </resourcePool> <resourcePool> <name>RP003</name>

Một phần của tài liệu Phát triển dịch vụ quản lý và phân phối tài nguyên trong điện toán đám mây (Trang 33)