Thiết kế database

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ CẤP PHÁT TÀI NGUYÊN CHO HỆ THỐNG VIRTUAL LAB TRÊN NỀN ĐIỆN TOÁN ĐÁM MÂY (Trang 37 - 52)

Về mặt thiết kế cơ sở dữ liệu, hệ thống gặp rắc rối ở chỗ phải sử dụng đến hai cơ sở dữ liệu khác nhau, mộ do tự tạo ra nhằm quản lý các tài nguyên của Virtual Lab, một là dữ liệu của chính OpenNebula. Trong khi đó, các thành phần này lại có mối quan hệ chặt chẽ

với nhau. Ví dụ như việc quản lý người dùng của hệ thống. Với mỗi một người dùng của Virtual Lab, về nguyên tắc cần phải có một tài khoản được khai báo trong OpenNebula và một tài khoản thuộc cơ sở dữ liệu riêng của Virtual Lab.

Hình 3.4. User phải được lưu trữ v à quản lý hai cơ sở dữ liệu k hác nhau

Để đảm bảo sự nhất quán về tài khoản người dùng, các thông tin về tên tài khoản, mật mã phải được đồng nhất giữa hai cơ sở dữ liệu. Tuy nhiên, xét ở góc độ quản lý cơ sở dữ liệu, chúng ta không thể tạo được quan hệ giữa hai bảng trên hai cơ sở dữ liệu độc lập với nhau như vậy.

Một ví dụ khác, hệ thống Virtual Lab cần lưu trữ dữ liệu thời gian hoạt động của mỗi một máy ảo bao gồm thời gian bắt đầu và kết thúc của nó. Như vậy, ta cần lưu trữ một bảng có tên là res_vm_time chứa mã chiếu đến ID của một máy ảo thực sự đang tồn tại trong hệ thống OpenNebula. Dĩ nhiên, ta có thể lưu trữ bằng một quan hệ lỏng lẻo, nghĩa là chỉ cần biết mã máy ảo một lần, lưu vào cơ sở dữ liệu của Virtual Lab. Tuy vậy, yêu cầu của một hệ thống làm việc tin cậy không cho phép chúng ta duy trì những quan hệ lỏng lẻo về mặt cơ sở dữ liệu như thế.

Hình 3.5. Thuộc tính v m_id của bảng res_v m_time tham chiếu đến mã máy ảo trong hệ thống OpenNebula

Từ thực tế trên, ta cần phải có một phương pháp kết nối hai cơ sở dữ liệu để duy trì các quan hệ chặt chẽ giữa các bảng.

Một phương pháp để thử nghiệm là lưu trữ lại các đối tượng của OpenNebula và chung cơ sở dữ liệu của Virtual Lab. Như vậy, chúng ta có thể tạo được các quan hệ giữa các bảng một cách dễ dàng. Tuy nhiên, phương pháp này đòi hỏi một cách thức để sao chép dữ liệu từ OpenNebula một các thường xuyên để cập nhật cho hệ thống Virtual Lab. Điều này kéo theo một chi phí rất lớn, làm giảm hiệu suất của toàn hệ thống. Khi số lượng người dùng tăng nhanh, hệ thống sẽ không thể đủ sức mạnh để đáp ứng nhu cầu thực tế. Hơn nữa, một hệ thống như vậy không thể tin tưởng được. Luôn luôn tồn tại những khoảng thời gian mà dữ liệu của OpenNebula không đồng nhất với dữ liệu của Virtual Lab. Ví dụ, Virtual Lab có nhu cầu khởi động một máy ảo có mã là 100. Tuy nhiên, khi gửi yêu cầu cho OpenNebula thì hệ thống này đã xóa máy ảo trên mà chưa cập nhập cho Virtual Lab. Điều này sẽ sinh ra các lỗi trong quá trình thực thi không đáng có.

Vì vậy, trong thực tế, ta không thể lưu trữ lại dữ liệu của OpenNebula trong hệ thống Virtual Lab. Chúng tôi đã nghiên cứu và quyết định tự xây dựng lấy một lớp trung gian để đảm bảo các mối quan hệ giữa các bảng của Virtual Lab với các thành phần của

dữ liệu của Virtual Lab, cũng như viết thêm các hàm Java API truy cập đến OpenNebula, đảm bảo thông tin luôn được cập nhật với chi phí chấp nhận được.

Hình 3.6. Thiết k ế lớp Jav a để duy trì các quan hệ giữa hai cơ sở dữ liệu độc lập

Xét lại ví dụ bảng res_vm_time cần chứa một tham chiếu đến đối tượng máy ảo được

quản lý bởi OpenNebula. Khi hiện thực theo nguyên tắc cùa Hibernate, việc truy cập cơ sở dữ liệu được hỗ trợ rất tốt từ bên dưới. Người dùng không cần phải viết các câu truy vấn SQL mỗi khi cần truy cập đến cơ sở dữ liệu, mà công việc này được thực hiện thông qua một DAO (Data access object).

Nhờ vậy, công sức phát triển cũng như sự trong sáng của chương trình sẽ được tăng lên đáng kể.

Để có thể kết nối với dữ liệu của cả hai hệ thống, bên trong lớp VM_TIME, ta viết thêm các hàm truy cập đến OpenNebula thông qua Cloud API cho các thuộc tính cần thiết.

Hình 3.8. Ví dụ các hàm truy cập đến OpenNebula của lớp VM_TIME

Như vậy, thông qua một phương thức trung gian, hệ thống giám sát và quản lý tài nguyên của Virtual Lab có thể duy trì được quan hệ giữa các thành phần thuộc hai hệ thống độc lập với nhau. Nhờ đó, ta có thể tăng độ ổn định, giảm chi phí cho hệ thống một cách đáng kể mà vẫn giữ cho mã chương trình hết sức trong sáng.

Vì các quan hệ nêu trên được bảo đảm, ta có thể đưa ra bảng thiết kế cơ sở dữ liệu cho toàn bộ hệ thống trong một lược đồ EER duy nhất.

CHƯƠNG 4 DEMO HỆ THỐNG 4.1 Giao diện web tổng quan

Khi vào web portal, màn hình sau sẽ hiển thị và yêu cầu người dùng đăng nhập:

Hình 4.1. Trang đăng nhập

Sauk hi đăng nhập vào hệ thống thành công sẽ xuất hiện trang About us, đây là trang giới thiệu:

Các chức năng để demo chính của hệ thống được nằm trong thẻ Subjects, khi click vào đó sẽ hiện thị ra danh sách các môn học:

Hình 4.3. Danh sách các môn học

Trong trang này, có thể thêm, xóa, hoặc chỉnh sửa các môn học, ngoài ra còn có chức năng thêm bài thực hành ( lab) vào một môn học. Chức năng Add subject:

Hình 4.4. Thêm một môn học v ào cơ sở dữ liệu

Sau khi submit, nếu thêm thành công sẽ quay lại màn hình ban đầu và hiển thị danh sách môn học mới:

Hình 4.5. Sau k hi t hêm t hành công môn học

Khi click vào tên mỗi một môn học, sẽ hiển thị danh sách các bài thực hành của môn học đó:

Hình 4.6. Danh sách các bài thực hành

Hình trên là danh sách các bài thực hành của môn hệ điều hành, từ trang này có thể chỉnh sửa, xóa hoặc thêm một bài thực hành. Ví dụ sau sẽ thêm một bài thực hành có tên là Lab5 – Lập trình thread vào môn học hệ điều hành:

Hình 4.7. Thêm một bài thực hành

Ở đây, tên của bài thực hành không được trùng nhau, nếu trùng sẽ có thông báo lỗi xuất hiện, sau khi thêm thành công sẽ trở lại trang chính của môn học đó:

Hình 4.8. Sau k hi thêm bài thực hành thành công

Khi click vào tên các bài thực hành, sẽ hiển thị các template của máy ảo phục vụ cho bài thực hành đó:

Hình 4.9. Template máy ảo dành cho bài Lab1

Từ những template này, chúng ta có thể tạo ra và chạy các máy ảo, muốn tạo máy ảo theo template nào, chọn Create từ template đó, chờ một khoảng thời gian để OpenNebula triển khai máy ảo đó, nếu thành công sẽ chuyển sang một màn hình mới hiển thị máy ảo đã được khởi động:

Dựa vào đây có thể biết được thông số VNC port của máy ảo là 5941, người sử dụng chỉ cần dùng một VNC client để kết nối đến máy ảo và sử dụng chúng:

PHẦN III: TỔNG KẾT

1. Các kết quả đạt được 1.1.Về mặt lý thuyết 1.1.Về mặt lý thuyết

- Chúng tôi đã hiểu được cách thức để xây dựng nên một hệ thống Cloud computing sử dụng trong môi trường nội bộ của trường đại học Bách khoa, nắm được các kĩ thuật cũng như các công nghệ được sử dụng trong openNebula, cách thức sử dụng nó để xây dựng nên một private cloud.

- Trong giai đoạn này chúng tôi cũng đã tìm hiều được những lý thuyết cơ bản về Virtual Lab, một môi trường thực hành ảo, xây dựng được những chức năng cơ bản cho môi trường Virtual Lab trong trường đại học Bách Khoa.

- Tìm hiểu được cách tạo được các ảnh máy ảo được tích hợp sẵn các thành phần dùng để xác thực người sử dụng thông qua một trung tâm dữ liệu người dùng ( ở đây là hệ cơ sở dữ liệu openLDAP)

- Xây dựng các giao tiếp với các thành phần khác.

1.2.Về mặt thực nghiệm

- Nghiên cứu và tìm hiểu về các cơ chế quản lý trong openNebula, sử dụng được JAVA API được cung cấp bởi openNebula để xây dựng một ứng dụng web cho phép truy xuất và sử dụng các tài nguyên bên dưới của openNebula.

- Tìm hiểu Spring và Hibernate framework dùng để xây dựng một web application trên nền OpenNebula và có thêm cơ sở dữ liệu riêng để quản lý các vấn đề người dùng và các đặc thù của hệ thống Virtual Lab như môn học, bài thực hành.

- Xây dựng được các chức năng như thêm, sửa xóa một môn học, thêm sửa xóa các bài thực hành, truy xuất các template từ openNebula và triển khai các máy ảo từ các template đó.

Ở giai đoạn này, chúng tôi chỉ tập trung vào nghiên cứu các lý thuyết, cách thức sử dụng OpenNebula và một vài công nghệ khác như Sping, Hibernate, XMP-RPC, LDAP và yêu cầu, thiết kế của hệ thống quản lý và cấp phát tài nguyên nên những gì hiện thực được còn sơ sài, hơn nữa có một vài một vài chức năng vẫn chưa rõ ràng, những hạn chế này chúng tôi sẽ khắc phục trong giai đoạn luận văn.

3. Hướng phát triển ở giai đoạn luận văn.

Ở giai đoạn luân văn chúng tôi sẽ phát triển thêm một sô tính năng của hệ thống và web portal như :

- Xây dựng riêng một web service dùng để quản lý và cấp phát tài nguyên.

- Kết hợp thêm các thành phần quản lý môn học, quản lý các bài thực hành và các chức năng triển khai một lượng lớn máy ảo phục vụ cho nhu cầu học tập, các chức năng

- Hiện thực thêm các thành phần dùng để giao tiếp với các hệ thống khác như hệ thống khác như hệ thống giám sát tài nguyên, hệ thống tính phí, hệ thống lập lịch để tạo nên một hệ thống hoàn chỉnh.

TÀI LIỆU THAM KHẢO

[1-Vir] An introduction to Virtualization – Amit Singh - http://www.kernelthread.com/publications/virtualization/

[2-Vir] A Survey on Virtualization Technologies - Susanta Nanda Tzi-cker Chiueh, Department of Computer Science SUNY at Stony Book, Stony Brook, NY 11794-440 [3-cloud] http://en.wikipedia.org/wiki/Cloud_computing

Một phần của tài liệu NGHIÊN CỨU XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ CẤP PHÁT TÀI NGUYÊN CHO HỆ THỐNG VIRTUAL LAB TRÊN NỀN ĐIỆN TOÁN ĐÁM MÂY (Trang 37 - 52)

Tải bản đầy đủ (PDF)

(52 trang)