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 - Pdf 22

i ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

ĐỒ ÁN THỰC TẬP TỐT NGHIỆP 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

BỘ MÔN: HỆ THỐNG & MẠNG MÁY TÍNH
GVHD : TS. PHẠM TRẦN VŨ
SVTH1 : NGUYỄN BÁ HUỲNH QUANG - 50801668
SVTH2 : PHẠM MINH LUÂN - 50801192 TP. HỒ CHÍ MINH – 06/2012
ii

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 5
1.1. Giới thiệu tổng quan về Virtual Lab 5
1.2. Nội dung của đồ án 6
1.3. Mục tiêu 6
1.1.1 Giai đoạn thực tập 6
1.1.2 Giai đoạn luận văn 7
1.4. Lịch trình triển khai, phương pháp triển khai 7
CHƯƠNG 2 CƠ SỞ KỸ THUẬT – CÁC HƯỚNG THỰC HIỆN 9
2.1 Cloud computing 9
2.1.1 Giới thiệu về cloud computing (Điện toán đám mây) 9
2.1.2 Đặc điểm , các mô hình của điện toán đám mây 10
2.1.3 Phân loại điện toán đám mây theo phạm vi 13
2.2 Công nghệ ảo hóa 13
2.2.1 Giới thiệu công nghệ ảo hóa 13
2.2.2 Các kỹ thuật ảo hóa 15
2.2.3 Giới thiệu KVM 17
2.3 Tổng quan về OpenNebula 18
2.3.1 Các chức năng 18
2.3.2 Các thành phần chính 19
2.3.3 Mô hình hệ thống OpenNebula 21
iv

2.3.4 Một vài thành phần trong OpenNebula 23
CHƯƠNG 3 GIẢI PHÁP CHI TIẾT 28
3.1 Tổng quan 28
3.2 Các tương tác chính 29
3.2.1 Giữa Resources Management System( RMS) và Monitor 29
3.2.2 Giữa Resources Management System và module Scheduling 30
3.2.3 Giữa Resources Management System và Accounting& Pricing (AP) 31
3.3 Thiết kế database 31

Hình 2.10. Mô hình Datastore trong hệ thống OpenNebula 22
Hình 2.11. Mô hình một host có 2 bridge, một gắn với card mạng eth0, một gắn với
card mạng eth1 23
Hình 2.12. OpenNebula interface 24
Hình 3.1. Sơ đồ tổng quan của hệ thống virtual lab 28
Hình 3.2. Sơ đồ tương tác giữa Resource Management System và Monitor system . 30
Hình 3.3. Sơ đồ tương tác giữa Resources Management System (RMS) và Scheduler
31
Hình 3.4. User phải được lưu trữ và quản lý hai cơ sở dữ liệu khác nhau 32
Hình 3.5. Thuộc tính vm_id của bảng res_vm_time tham chiếu đến mã máy ảo trong
hệ thống OpenNebula 33
vi

Hình 3.6. Thiết kế lớp Java để duy trì các quan hệ giữa hai cơ sở dữ liệu độc lập 34
Hình 3.7. Một số hàm đặc trưng của VM_TIME Dao 34
Hình 3.8. Ví dụ các hàm truy cập đến OpenNebula của lớp VM_TIME 35
Hình 3.9. Lược đồ EER của hệ thống Virtual Lab 36
Hình 4.1. Trang đăng nhập 37
Hình 4.2. Trang About us 37
Hình 4.3. Danh sách các môn học 38
Hình 4.4. Thêm một môn học vào cơ sở dữ liệu 38
Hình 4.5. Sau khi thêm thành công môn học 39
Hình 4.6. Danh sách các bài thực hành 39
Hình 4.7. Thêm một bài thực hành 40
Hình 4.8. Sau khi thêm bài thực hành thành công 40
Hình 4.9. Template máy ảo dành cho bài Lab1 41
Hình 4.10. Máy ảo được tạo thành công 41
Hình 4.11. Dùng VNC client để kết nối đến máy ảo 43

1

Hiện nay, để phục vụ nhu cầu thực hành các môn học trong chương trình đào tạo của nhà
trường, mỗi sinh viên trong giờ học cần phải có một máy tính với cấu hình đủ mạnh, đã
cài đặt sẵn các phần mềm cần thiết. Thực tế công tác quản lý thiết bị của nhà trường đã
cho thấy nhiều khó khăn và bất cập.
Thứ nhất, một sinh viên muốn thực hành môn học của mình phải đợi đến giờ lên lớp, vào
đến phòng lab của mình. Điều đó gây khó khăn cho nhu cầu tự học, tự tìm hiểu của sinh
viên. Để khắc phục tình trạng này, nhiều sinh viên đã chủ động laptop của mình đến
phòng lab để chép tài liệu, cài đặt phần mềm, thực hành. Dĩ nhiên không phải sinh viên
nào cũng có đủ điều kiện để tự trang bị laptop cho mình. Đó là chưa kể đến nguy cơ mất
cắp thường xuyên xảy ra trong nhà trường, làm ảnh hưởng đến tâm lý và đời sống của
sinh viên.
Thứ hai, vấn đề bảo mật thông tin của sinh viên chưa được đảm bảo tốt. Do nhiều người
cùng có quyền truy cập vào một tài toản trên cùng một máy tính, nguy cơ lây nhiễm virus
vào hệ thống là hoàn toàn có thể xày ra. Thông tin cá nhân, mã nguồn của sinh viên cũng
có thể dễ dàng bị đánh cắp. Hiện nay rất nhiều môn học có quy định bài làm của các sinh
viên không được sao chép lẫn nhau, nếu có bất kỳ sự trùng hợp bất thường nào về mã
nguồn cũng có thể dẫn đến một án kỹ luật nặng cho sinh viên.
Thứ ba, chi phí để bảo trì, tu sửa hệ thống máy tính từ phần cứng đến hệ điều hành, phần
mềm là rất lớn. Thời gian để sửa chữa một hỏng hóc nhỏ cũng chiếm khá nhiều thì giờ.
Do đó, tại các phòng lab, thường xuyên xảy ra tình trạng sinh viên không thể sử dụng
máy tính của mình vào bài thực hành. Điều đó làm giảm chất lượng của tiết thực hành đi
đáng kể.
Từ những bất cập kể trên, hệ thống Virtual Lab cần phải nhanh chóng đươc xây dựng và
triển khai để khắc phục những khuyết điểm hiện tại của mô hình truyền thống. Hệ thống
Virtual Lab dựa trên nền tảng điện toán đám mây, nghĩa là cung cấp dịch vụ máy ảo cho
nhu cầu thực hành của sinh viên. Mỗi tiết thực hành của sinh viên sẽ được cấu hình sẵn tại
server của hệ thống. Khi có nhu cầu thực hành, sinh viên chỉ cần đăng nhập vào tài khoản
của mình, chọn môn học, tiết thực hành và bật máy ảo đã được cấu hình sẵn lên. Như vậy,
sinh viên có thể thực hành ở bất cứ nơi đâu, bất cứ thời gian nào, bất cứ điều kiện nào,
3

4

lý môn học, các sinh viên tham gia vào môn học đó và các bài thực hành cũng như là các
template được dùng với bài thực hành đó. Các bài thực hành sẽ có thời gian bắt đầu và kết
thúc dựa vào thời khóa biểu của các lớp học ở đầu mỗi học kì, khi đến thời điểm đó, một
số lượng máy ảo sẽ được khởi động tùy theo số lượng sinh viên tham gia vào bài thực
hành đó. Mỗi một máy ảo trong danh sách sẽ được cấp cho một sinh viên sử dụng. Hệ
thống sẽ xây dựng các cơ chế dùng để cấp phát và quản lý tài nguyên máy ảo.
Đồ án chúng tôi làm còn gặp phải nhiều vấn đề chưa thể giải quyết được. Hy vọng trong
giai đoạn luận văn đại học, chúng tôi sẽ có nhiều thời giờ hơn để giản quyết các vấn đề
đang gặp phải của Virtual Lab web portal. Giai đoạn phân tích yêu cầu và thiết kế chắc
chắn sẽ không thể nào tạo nên một kiến trúc tổng quát hoàn chỉnh mà sẽ gặp khá nhiều sai
sót. Chỉ khi qua quá trình hiện thực, tìm lỗi sai, chỉnh sửa, chạy thử nghiệm… hệ thống
Virtual Lab mới thực sự có được một thiết kế tổng thể linh động, chặt chẽ, dễ mở rộng và
ổn định. Có điều gì sai sót trong đổ án này, xin quý độc giả chân tình góp ý để chúng tôi
có thể thực hiện được tốt hơn công việc của mình.
5

PHẦN II: NỘI DUNG
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1. Giới thiệu tổng quan về Virtual Lab
Virtual Lab là hệ thống hỗ trợ công tác giảng dạy thực hành cho trường đại học Bách
khoa thành phố Hồ Chí Minh dựa trên nền tảng điện toán đám mây. Hệ thống gồm có một
tổ hợp các máy server đã cài đặt và cấu hình sẵn nhằm cung cấp các dịch vụ cho người
dùng. Trong mô hình này, không phải là một máy server, mà là một tổ hợp máy kết nối
với nhau. Tổ hợp này phải đảm bảo được yêu cầu chạy ổn định kể cả khi một máy nào đó
trong tổ hợp không hoạt động. Bên cạnh đó, hệ thống phải cung cấp cho người dùng một

đâu bao gồm danh sách các người dùng của hệ thống kèm theo danh sách các quyền đi
kèm, danh sách các môn học, tiết học thực hành, các máy ảo và phần mềm…
1.3. Mục tiêu
1.1.1 Giai đoạn thực tập
7

Vì thời gian không cho phép, chúng tôi chỉ dừng lại ở việc xây dựng trang web phục vụ
cho việc quản trị, chuẩn bị nội dung từng tiết học. Đối tượng mà trang web hướng đến là
người quản trị hệ thống tài nguyên của Virtual Lab (phân biệt với các tài nguyên của điện
toán đám mây), các giảng viên.
Để có được phiên bản hiện thực hoàn chỉnh của trang web, cần có sự giao tiếp với các
thành phần khác của hệ thống. Các thành phần đó là monitor, pricing, software
management, user management. Vì còn nhiều vấn đề phải giải quyết, chúng tôi chưa thể
hoàn thiện hoàn toàn trang web của mình mà chỉ có thể dừng lại ở một bản prototype.
1.1.2 Giai đoạn luận văn
Trong giai đoạn này, chúng tôi sẽ tiếp tục hoàn thiện hệ thống giám sát và quản lý tài
nguyên cho Virtual Lab. Phiên bản hoàn thiện của trang web cho người quản trị và giảng
viên sẽ được hoàn thành.
Ngoài ra, còn một thành phần không thể thiếu là giao diện dành cho sinh viên sử dụng.
Như một yêu cầu bắt buộc, giao diện dành cho sinh viên phải được tích hợp lên hệ thống
Sakai của khoa. Chúng tôi sẽ cố gắng nghiên cứu để hiện thực chức năng này.
1.4. Lịch trình triển khai, phương pháp triển khai
Thời điểm bắt đầu đề tài nghiên cứu điện toán đám mây tại khoa, chúng tôi tìm hiểu các
khái niệm liên quan đến điện toán đám mây. Thế nào là điện toán đám mây? Thế nào là
sự ảo hóa? Điện toán lưới là gì? Có những công cụ mã nguồn mở nào hỗ trợ triển khai
một hết thống điện toán đám mây? Hệ thống này được cài đặt trên hệ điều hành nào?
Sau quá trình tìm hiểu, chúng tôi đã dành thời gian thử nghiệm cài đặt hai công cụ mã
nguồn mở rất phổ biến hiện nay là OpenNebula và Eucalyptus. Hệ điều hành được thử
nghiệm gồm có Ubuntu và Cent OS. Về vấn đề ảo hóa, chúng tôi thử nghiệm Xen và
KVM.

điểm hạn chế ở đây là một khi hệ thống thông tin của doanh nghiệp đó bị sự cố, doanh
nghiệp phải tốn rất nhiều chi phí để sửa chữa cũng như bảo trì, nào là chi phí về máy móc,
chi phí về nhân sự - điều mà không phải một doanh nghiệp nào cũng có thể làm tốt được.
Vì vậy nhu cầu được thuê một hệ thống thông tin với các máy tính và phần mềm cần thiết
xuất hiện, lúc này cũng là lúc mà mô hình điện toán đám mây xuất hiện, nó đưa ra một
cách thức để giải quyết bài toán chi phí cho các doanh nghiệp : thay vì mỗi doanh nghiệp
phải từ mình xây dựng một hệ thống riêng thì sẽ có một nhà cung cấp dịch vụ đứng ra
đảm nhận công việc này, nhà cung cấp này sẽ chuẩn bị tất cả từ tài nguyên từ máy móc
cho đến nhân lực. Doanh nghiệp chỉ cần thuê một hệ thống máy tính từ nhà cung cấp để
phục vụ cho nhu cầu của mình mà không cần quan tâm đến việc cấu hình bên dưới như
thế nào hay việc hỏng hóc xảy ra, tất cả những vấn đề này đều được nhà cung cấp xử lý,
doanh nghiệp chỉ đơn giản là trả tiền cho nhà cung cấp. Vậy một câu hỏi được đặt ra nữa
là liệu chi phí thuê một hệ thống từ bên ngoài có nhiều hơn so với chi phí cho việc tự xây
dựng một hệ thống của riêng mình không ? Câu trả lời là còn tùy vào quy mô của doanh
nghiệp đó và loại hệ thống thông tin mà doanh nghiệp đó đang muốn sử dụng. Đối với
10

những doanh nghiệp lớn cần một hệ thống lớn và các dữ liệu của doanh nghiệp đó mang
tính bí mật cao thì việc thuê một hệ thống bên ngoài là điều đáng cân nhắc, nhưng đối với
những doanh nghiệp nhỏ hoặc những doanh nghiệp vừa mới thành lập thì việc thuê một
hệ thống từ nhà cung cấp dịch vụ là điều đáng làm bởi vì nó vừa tiết kiệm thời gian vừa
tiết kiệm chi phí – đó là những lợi thế khởi điểm rất lớn cho những doanh nghiệp kiểu
như vậy.
Vậy vì sao lại tiết kiệm được chi phí ? Ngoài những vấn đề đã phân tích ở trên thì còn một
điều đáng lưu ý đó là khi thuê một dịch vụ điện toán đám mây, người dùng chỉ cần trả cho
những gì mình sử dụng, điều này có nghĩa là nếu bạn muốn sử dụng phần mềm Microsoft
Office Word trong vòng một giờ thì bạn chỉ chỉ cần trả tiền cho thời gian một giờ đó –
khoảng tiền này rất nhỏ so với việc bạn phải mua nguyên phần mềm Microsoft Office
Word đó và cài đặt lên máy tính cá nhân của bạn mà thực tế bạn lại chỉ có nhu cầu sử
dụng nó trong một giờ - điều này gây ra việc lãng phí tài nguyên và tiền bạc rất lớn.

nguyên vật lý và các ứng dụng có thể dễ dàng di chuyển từ máy này sang máy
khác.
- Multi-tenancy : cho phép chia sẽ tài nguyên cũng như tiết kiệm chi phí khi có một
lượng lớn người sử dụng vì tất cả đều được tập trung tại một chỗ và được quản lý
bởi nhà cung cấp.
12

- Reliability : Có khả năng vận hành liên tục và khả năng phục hồi khi có lỗi xảy ra,
đảm bảo độ tin cậy cao.
- Security : Do dữ liệu được tập trung một chỗ nên dễ dàng áp dụng các chính sách
bảo mật hơn, khi đó mức độ bảo mật sẽ còn phụ thuộc vào độ tin cậy của nhà cung
cấp dịch vụ.
2.1.2.2 Các mô hình của điệm toán đám mây
Hiện tại điện toán đám mây cung cấp 3 dịch vụ cơ bản cho người sử dụng, đó là dịch vụ
cung cấp cơ sở hạ tầng IaaS (Infrastructure as a service), dịch vụ cung cấp nền tảng PaaS
(Platform as a service), dịch vụ cung cấp ứng dụng SaaS (Software as a service).
2.1.2.2.1 Infrastructure as a service
Đây là mô hình dịch vụ cơ bản nhất của điện toán đám mây, cung cấp các tài nguyên liên
quan đến cơ sở hạ tầng cho người sử dụng như máy ảo, kho lưu trữ dữ liệu, hệ thống
mạng. Người dùng sẽ trực tiếp quản lý hệ thống này và cài đặt bất cứ phần mềm hay hệ
điều hành nào dùng để phục vụ cho mục đich của mình. Một ví dụ cho mô hình dịch vụ
này đó là Amazon Elastis Compute Cloud (Amazon EC2) – đây là một dịch vụ của
Amazon cho phép người sử dụng thông qua trình duyệt có thể thuê được máy ảo, yêu cầu
hệ điều hành nào cũng như là các phần mềm cần thiết để chạy trên máy ảo đó, từ hệ thống
của Amazon. Đối với mô hình này thì nhà cung cấp sẽ chỉ quản lý cơ sở hạ tầng vật lý
bên dưới, còn người sử dụng sẽ chịu trách nhiệm quản lý các tài nguyên ở tầng trên, từ hệ
điều hành, phần mềm, cơ sở dữ liệu…
2.1.2.2.2 Platform as a service
Đối với mô hình dịch vụ này, nhà cung cấp dịch vụ sẽ cung cấp các tài nguyên từ cơ sở hạ
tầng bên dưới, cho đến hệ điều hành , hệ thống mạng, hệ cơ sở dữ liệu, môi trường lập

nhau như phân chia tài nguyên phần cứng và phần mềm, chia sẽ thời gian, mô phỏng và
nhiều khái niệm khác [1-Vir].
14

Trong môi trường Virtual lab, công nghệ ảo hóa được sử dụng chủ yếu là tạo máy ảo
(Virtual machine) từ những máy vật lý, một máy vật lý có khả năng chạy nhiều máy ảo có
môi trường thực thi hoàn toàn khác với môi trường của máy hiện tại - có nghĩa là máy ảo
đó sẽ chạy hệ điều hành riêng biệt, các phần mềm riêng biệt so với các máy ảo khác và
máy vật lý chứa những máy ảo đó. Công nghệ thứ hai là ảo hóa mạng (Network
virtualization) dùng để tạo một cầu nối ảo (virtual bridge) - đây là một giải pháp để cung
cấp cơ sở kết nối mạng cho các máy ảo.

Hình 2.2. Công nghệ ảo hóa
Một số ưu điểm của công nghệ ảo hóa [2-Vir] :
- Server consolidation : tải trọng của một số lượng máy chủ vật lý có thể được và
hợp nhất vào một số ít hơn các máy chủ vật lý hơn do đó tiết kiệm được tài
nguyên, chi phí để quản lý hạ tầng.
- Application consolidation : Mỗi một phần mềm mới có thể yêu cầu máy tính hoặc
hệ điều hành mới để chạy, nếu sử dụng công nghệ ảo hóa thì có thể tránh được việc
phải đầu tư thêm máy tính hoặc hệ điều hành mới này.
- Sandboxing : Ảo hóa có thể cho phép nhiều chương trình có độ bảo mật kém chạy
tách biệt với hệ thống hiện tại cho mục đích kiểm tra để làm giảm nguy cơ rủi ro vì
vậy công nghệ ảo hóa có thể hổ trợ cho việc xây dựng những hệ thống có độ bảo
mật cao.
15

- Multiple execution environments: Ảo hóa cho phép tạo nhiều môi trường thực thi
tách biệt nhau để sử dụng cho nhiều mục đích khác nhau do đó nâng cao chất
lượng dịch vụ bằng cách giới hạn tài nguyên ở một mức nào đó.
- Multiple simultaneous OS : Cung cấp cách thức để có thể chạy được nhiều hệ điều

khả năng hổ trợ một lượng lớn các “máy ảo” chạy đồng thời.
17 Hình 2.5. OS-level virtualization
2.2.3 Giới thiệu KVM
KVM (Kernel-based Virtual Machine) là một phần mềm ảo hóa mã nguồn mở cho hệ điều
hành Linux và openSolaris và có thể hổ trợ các bộ vi xử lý x86 và x86_64.
KVM có thể hổ trợ chạy nhiều hệ điều hành cả Linux và Window mà không cần chỉnh
sửa, mỗi một máy ảo sẽ có một phần tài nguyên phần cứng riêng và độc lập với những
máy ảo khác .

18

Hình 2.6. Các thành phần khi ảo hóa với KVM
- KVM thực ra sẽ không thực hiện thao tác mô phỏng nào, khi nhận yêu cầu từ
chương trình của người sử dụng, thành phần /dev/kvm sẽ được chạy để thiết lập
vùng địa chỉ bộ nhớ. Việc mô phỏng các tác vụ của phần cứng sẽ do QEMU thực
hiện.
- Điểm mạnh của KVM là tốc độ nhanh khi chạy trên các máy tính có hỗ trợ ảo hóa,
hổ trợ được nhiều nền tảng hệ điều hành do đó chúng tôi chọn KVM để cung cấp
các công cụ ảo hóa cho đồ án này.
2.3 Tổng quan về OpenNebula
OpenNebula là mã nguồn mở tiêu chuẩn công nghiệp cho việc ảo hóa trung tâm dữ liệu,
cung cấp nhiều tính năng, giải pháp linh hoạt cho việc quản lý toàn diện các trung tâm dữ
liệu ảo hóa, cung cấp các dịch vụ điện toán đám mây dựa trên hạ tầng hiện có.
2.3.1 Các chức năng
Về phía người xây dựng và quản trị hệ thống, OpenNebula cung cấp một nền tảng mạnh
mẽ, linh động và bảo mật bao gồm nhiều chức năng. Trong đó, nổi bật lên nhất bao gồm
Image Repository, Template Repository, Virtual Networking và một tập hợp các thao tác

Trích đoạn Một vài thành phần trong OpenNebula Thiết kế database
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status