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 LỜI CÁM ƠN Trong quá trình học tập và nghiên cứu tại khoa Khoa học và Kỹ thuật máy tính, trường đại học Bách khoa thành phố Hồ Chí Minh, chúng tôi đã nhận được rất nhiều sự hỗ trợ, giúp đỡ từ phía các thầy cô, bạn bè, người thân để có thể thực hiện hoàn tất quá trình nghiên cứu đến giai đoạn hiện nay. Xin chân thành cám ơn các thầy cô, đặc biệt là TS. Thoại Nam, TS. Phạm Trần Vũ đã dành nhiều thì giờ quý báu của mình để hỗ trợ, định hướng, truyền đạt kiến thức, kinh nghiệm cho chúng tôi hoàn thành đề tài nghiên cứu của mình. Chân thành cám ơn anh Duy đã theo sát chúng tôi trong quá trình nghiên cứu, với kinh nghiệm và kiến thức của một người đàn anh, luôn sẵn sàng góp ý và hướng dẫn cho chúng tôi tận tình. Cám ơn các thành viên trong nhóm nghiên cứu điện toán đám mây của khoa Khoa học và Kỹ thuật máy tính khóa 2008. Với mong muốn hoàn thành hệ thống Virtual Lab trên nền điện toán đám mây, các bạn đã hỗ trợ, hợ tác nhiệt tình với chúng tôi, cùng nhau xây dựng, thiết kế, sửa chữa sản phẩm để dần dần có thể đưa vào hoạt động. Sự nhiệt tình của các bạn là nguồn cổ vũ, động viên lớn cho chúng tôi hoàn thành đề tài của mình. Sau cùng, chúng tôi xin chân thành cám ơn gia đình, bạn bè, người than đã động viên, giúp đỡ về mặt vật chất lẫn tinh thần trong quãng thời gian học tập và nghiên cứu của chúng tôi. Hi vọng rằng sản phẩm chúng tôi làm ra, cùng với đề tài nghiên cứu của các nhóm khác trong khoa, có thể đóng góp vào sự nghiệp giáo dục, đào tạo và nghiên cứu của khoa Khoa học và Kỹ thuật máy tính trường đại học Bách khoa Thành phố Hồ Chí Minh ”
Trang 1ĐẠ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
Trang 2LỜI CÁM ƠN
Trong quá trình học tập và nghiên cứu tại khoa Khoa học và Kỹ thuật máy tính, trường đại học Bách khoa thành phố Hồ Chí Minh, chúng tôi đã nhận được rất nhiều sự hỗ trợ, giúp đỡ từ phía các thầy cô, bạn bè, người thân để có thể thực hiện hoàn tất quá trình nghiên cứu đến giai đoạn hiện nay
Xin chân thành cám ơn các thầy cô, đặc biệt là TS Thoại Nam, TS Phạm Trần Vũ đã dành nhiều thì giờ quý báu của mình để hỗ trợ, định hướng, truyền đạt kiến thức, kinh nghiệm cho chúng tôi hoàn thành đề tài nghiên cứu của mình
Chân thành cám ơn anh Duy đã theo sát chúng tôi trong quá trình nghiên cứu, với kinh nghiệm và kiến thức của một người đàn anh, luôn sẵn sàng góp ý và hướng dẫn cho chúng tôi tận tình
Cám ơn các thành viên trong nhóm nghiên cứu điện toán đám mây của khoa Khoa học và
Kỹ thuật máy tính khóa 2008 Với mong muốn hoàn thành hệ thống Virtual Lab trên nền điện toán đám mây, các bạn đã hỗ trợ, hợ tác nhiệt tình với chúng tôi, cùng nhau xây dựng, thiết kế, sửa chữa sản phẩm để dần dần có thể đưa vào hoạt động Sự nhiệt tình của các bạn là nguồn cổ vũ, động viên lớn cho chúng tôi hoàn thành đề tài của mình
Sau cùng, chúng tôi xin chân thành cám ơn gia đình, bạn bè, người than đã động viên, giúp đỡ về mặt vật chất lẫn tinh thần trong quãng thời gian học tập và nghiên cứu của chúng tôi
Hi vọng rằng sản phẩm chúng tôi làm ra, cùng với đề tài nghiên cứu của các nhóm khác trong khoa, có thể đóng góp vào sự nghiệp giáo dục, đào tạo và nghiên cứu của khoa Khoa học và Kỹ thuật máy tính trường đại học Bách khoa Thành phố Hồ Chí Minh
Trang 3MỤC LỤC
PHẦN I: MỞ ĐẦU 1
PHẦN II: NỘI DUNG 5
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
Trang 42.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
CHƯƠNG 4 DEMO HỆ THỐNG 37
4.1 Giao diện web tổng quan 37
PHẦN III: TỔNG KẾT 44
1 Các kết quả đạt được 44
1.1 Về mặt lý thuyết 44
1.2 Về mặt thực nghiệm 44
2 Nhận xét, đánh giá 44
3 Hướng phát triển ở giai đoạn luận văn 45
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Sơ đồ hệ thống Virtual Lab 5
Hình 1.2 Sơ đồ phân loại người dùng trong hệ thống 6
Hình 2.1 Công nghệ ảo hóa 11
Hình 2.2 Công nghệ ảo hóa 14
Hình 2.3 Full-virtualization 15
Hình 2.4 Para-virtualization 16
Hình 2.5 OS-level virtualization 17
Hình 2.6 Các thành phần khi ảo hóa với KVM 18
Hình 2.7 Tổng quan về OpenNebula 19
Hình 2.8 Các thành phần của openNebula 20
Hình 2.9 Sơ đồ tổng quan kiến trúc hệ thống sử dụng OpenNebula 21
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
Trang 6Hì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
Trang 7PHẦN I: MỞ ĐẦU
Những năm qua, nền công nghệ thông tin của thế giới phát triển như vũ bão Hàng loạt công nghệ mới ra đời đã thay đổi một phần rất lớn cách làm việc, học tập, sinh hoạt, giải trí của con người
Thay vì phải ngồi hàng giờ ở trước bàn làm việc để cập nhật tin tức, kiểm tra hộp thư điện
tử, đọc tài liệu, người ta có thể làm những việc như vậy ở mọi nơi với chiếc laptop hoặc smart phone của mình
Thay vì phải lo lắng sao lưu những dữ liệu quan trọng của mình ở nhiều nơi, tốn nhiều thời gian và tiền bạc, người ta chỉ đơn giản sử dụng một dịch vụ lưu trữ điện toán đám mây như Dropbox, Sky Drive
Thay vì phải liên lạc lại với người thân một cách khó khăn để xin lại số liên lạc khi không may mất thiết bị điện thoại di động, người dùng chỉ đơn giản đưa toàn bộ danh bạ của mình lên tài khoản Google hoặc Apple của mình Một thao tác đơn giản là đăng nhập vào tài khoản hỗ trợ đồng bộ hóa danh bạ, lịch làm việc chúng ta không còn phải lo lắng đến rủi ro mất hết danh sách liên lạc
Thay vì phải bỏ ra một khoảng tiền khổng lồ để đầu tư cũng như duy trì hệ thống server cho mình, người ta chỉ cần thuê một dịch vụ máy ảo VPS trên nền tảng điện toán đám mây, những nhu cầu cho một máy tính mạnh, hạ tầng mạng ổn định, có nhân viên bảo trì thường xuyên được đáp ứng một cách dễ dàng với chi phí hết sức phải chăng
Vâng, hàng loạt sự thay đổi của cuộc sống được mang lại từ sự phát triển của công nghệ thế kỷ 21, mà nổi bật trên hết là điện toán đám mây, đã chứng minh cho sự hiệu quả và ích lợi mà công nghệ này mang lại
Nhận thức được ích lợi và hiệu quả mà điện toán đám mây mang lại cho cuộc sống, chúng tôi quyết định tham gia vào đề tài nghiên cứu xây dựng một thành phần trong hệ thống Virtual Lab của trường đại học Bách khoa thành phố Hồ Chí Minh sử dụng các công nghệ của điện toán đám mây
Trang 8Hiệ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,
Trang 9miễn là có một chiếc máy tính cấu hình vừa phải kết nối mạng Internet Vấn đề bảo mật cũng được giải quyết rất tốt vì mỗi sinh viên chỉ có thể đăng nhập vào máy ảo của mình, tài khoản của mình mà không có quyền truy cập vào máy ảo của người khác Bên cạnh
đó, khả năng hỏng hóc xảy ra cũng ít hơn Về phần cứng, người quản trị chỉ cần quan tâm bảo trì server của mình chứ không phải lo bảo trì hàng trăm máy tính một cách thường trực như trước đây Về phần mềm, người quản trị chỉ cần cài đặt một lần lên máy ảo khi cấu hình ban đầu Khi có vấn đề về phần mềm xảy ra, sinh viên chỉ cần khôi phục về trạng thái ban đầu thông qua một vài thao tác đơn giản và tốn rất ít thời gian
Hệ thống Virtual Lab nếu được xây dựng thành công sẽ làm thay đổi một cách toàn diện cách thức dạy và học thực hành trong trường Đại học Bách khoa thành phố Hồ Chí Minh
Sử dụng nó, sinh viên có thể học thực hành ở bất cứ nơi đâu, bất cứ thời gian nào mà không phải lo lắng, quan tâm đến các vấn đề bất cập gặp phải trước đây Hệ thống chắc chắn sẽ góp phần đẩy mạnh phong trào học tập và nghiên cứu trong nhà trường, nâng cao chất lượng đào tạo, giảm thiểu chi phí vận hành
Công việc của chúng tôi là xây dựng một web portal dùng để quản lý và cấp phát tài nguyên cho hệ thống virtual lab của trường đại học bách khoa dựa trên công nghệ điện toán đám mây và phần mềm OpenNebula Có nhiều loại tài nguyên trong hệ thống Virutal lab mà quan trọng đó là các máy chủ vật lý, các máy này nên có cấu hình mạnh và có khả năng ảo hóa để các máy ảo có thể chạy trên nó Tài nguyên thứ hai cũng quan trọng đó chính là các template, một template trong openNebula có thể hiểu tương tự như là một
“bản vẽ kĩ thuật” trong xây dựng, bản vẽ kĩ thuật dùng để mô tả ngôi nhà cần xây thì template được dùng để mô tả máy ảo, ban đầu tất cả các máy ảo được khởi tạo từ một template thì sẽ giống nhau Hai tài nguyên trên đã được openNebula quản lý rất tốt nên Web portal sẽ không hiện thực lại những chức năng đó Hệ thống của chúng tôi sẽ tập trung giải quyết các vấn đề liên quan đến học vụ trong trường đại học Bách Khoa Cụ thể
là mỗi một giảng viên khi bắt đầu một học kì mới sẽ đảm nhiệm một số môn học nào đó, mỗi một môn học sẽ bao gồm nhiều bài thực hành và các sinh viên học môn đó Mỗi bài thực hành sẽ dùng một template đã được định nghĩa sẵn, template này sẽ mô tả máy ảo và các công cụ cần thiết dùng cho bài thực hành đó Giảng viên sẽ sử dụng hệ thống để quản
Trang 10lý 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
Trang 11PHẦ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 giao diện thống nhất, duy nhất, che đậy đi cấu trúc phức tạp nội tại của nó Đó những yêu cầu đặc trưng của một dịch vụ dựa trên nền tảng điện toán đám mây
Hình 1.1 Sơ đồ hệ t hống Virt ual Lab
Dịch vụ ở đây được hiểu là các máy ảo được cài đặt sẵn các phần mềm cụ thể cho từng tiết thực hành của sinh viên Mỗi một máy máy ảo được định nghĩa thông qua một
template Template này cần phải chứa thông tin về hệ điều hành, các gói phần mềm cần thiết cho tiết thực hành Các máy ảo phải đảm bảo được yêu cầu ổn định trong quá trình vận hành, nghĩa là nếu có sự cố ở máy tính thực đang chạy máy ảo này, nó phải được lưu lại trạng thái và khôi phục lại mà không mất dữ liệu của người dùng
Trang 12Hệ thống Virtual Lab hỗ trợ chức năng phân loại để phân quyền người dùng Người dùng
cơ bản trong hệ thống gồm có sinh viên, giảng viên, người quản trị chung Hệ thống phân quyền đảm bảo cho Virtual Lab hoạt động ổn định và tin cậy
Hình 1.2 Sơ đồ phân loại ngườ i dùng t rong hệ t hống
Hệ thống Virtual Lab còn phải cung cấp công cụ cho người quản trị, giảng viên quản lý các tiết thực hành Công cụ này cho phép người dùng liệt kê dạnh sách các môn học, các tiết học của một môn, tạo, sửa, xóa tiết học, cấu hình lại các máy ảo cho phù hợ với từng tiết học
Ngoài ra, hệ thống Virtual Lab cho phép tích hợp thêm các chức năng quản lý, ví dụ như
hệ thống theo dõi thông tin hoạt động, hệ thống tính phí Các chức năng này được phát triển và tích hợp vào hệ thống chung một các dễ dàng
1.2 Nội dung của đồ án
Virtual Lab là một hệ thống lớn Để xây dựng nó, cần phải tiến hành thực hiện nhiều module khác nhau Trong phạm vi của đồ án, chúng tôi cố gắng xây dựng nên module giám sát và quản lý tài nguyên của Virtual Lab
Tài nguyên ở đây không phải là các thành phần thuộc về kiến trúc của điện toán đám mây,
ví dụ như các máy host, các vnet…, đã được quản lý tốt bởi OpenNebula Tài nguyên ở đâ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
Trang 13Vì 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
Sau quá trình nghiên cứu và bàn bạc với các nhóm khác, cộng với các điều kiện khách quan của khoa, chúng tôi đi đến quyết định sử dụng OpenNebula cài đạt trên Ubuntu, sử dụng KVM làm công cụ ảo hóa Việc lựa chọn OpenNebula giúp chúng tôi có thể thừa kế lại các đề tài nghiên cứu của các anh chị sinh viên, nghiên cứu sinh khóa trước
Trang 14Ở giai đoạn đồ án môn học 1, chúng tôi thử nghiệm cài đặt hệ thống OpenNebula, cấu hình để có chạy được các máy ảo trên đó Ngoài ra, chúng tôi cũng nghiên cứu Java API
do OpenNebula hỗ trợ, thông qua giao thức XML-RPC, để hiện thực một trang web mẫu
có chức năng triển khai các máy ảo chạy trên các host
Ở giai đoạn thực tập tốt nghiệp, chúng tôi tiếp tục cài đặt một hệ thống điện toán đám mây thực trên các máy tính tại phòng lab của khoa Các nhóm nghiên cứu phân công thiết
kế, phát triển từng module Chúng tôi đảm nhận module giám sát và quản lý tài nguyên củ
hệ thống Virtual Lab
Đến giai đoạn luận văn, các module cần phải được hiện thực hoàn chỉnh, kết nối lại với nhau tạo nên một tổng thể thống nhất có khả năng chạy được trong thực tế
Trang 15CHƯƠNG 2 CƠ SỞ KỸ THUẬT – CÁC HƯỚNG THỰC HIỆN
2.1 Cloud computing
2.1.1 Giới thiệu về cloud computing (Điện toán đám mây)
Thuật ngữ “Điện toán đám mây” đã xuất hiện từ lâu, khoảng năm 2006 nhưng cho đến bây giờ nó vẫn là một thuật ngữ có nhiều cách hiểu và định nghĩa khác nhau, hầu như mỗi một công ty cung cấp các dịch vụ “ Điện toán đám mây” hoặc có liên quan đến Điện toán đám mây đều có một cách định nghĩa riêng
Theo góc nhìn của đa số người không am hiểu nhiều về kĩ thuật thì : điện toán đám mây
là một mô hình kinh tế mới, nó cho phép các doanh nghiệp giảm thiểu chi phí đáng kể vào việc vận hành và bảo trì các hệ thống thông tin của doanh nghiệp đó Trước khi có điện toán đám mây, mỗi một doanh nghiệp dù lớn hay nhỏ thường phải xây dựng riêng cho mình một hệ thống thông tin để quản lý dữ liệu hoặc thực hiện các tính toán khác Nhưng đ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
Trang 16nhữ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
Từ những điều trên có thể thấy được những lợi ích mà điện toán đám mây mang lại và rất nhiều chuyên gia đã dự đoán rằng nó chính là xu hướng điện toán trong tương lai Vậy bên trong của “đám mây” thực chất là gì và tại sao nó có thể làm được những điều đó mà những mô hình, công nghệ trước đó không làm được
2.1.2 Đặc điểm , các mô hình của điện toán đám mây
2.1.2.1 Đặc điểm
Về góc nhìn kĩ thuật, điện toán đám mây không phải là một công nghệ mới, thực chất nó
là sự kết hợp của những công nghệ đã được phát triển trước đó như công nghệ ảo hóa (Virtualization), tính toán lưới (Grid Computing), tính toán hiệu năng (Utility
Computing), SOA (Software Oriented Architecture), Web Services… Công nghệ được xem là cốt lõi của điện toán đám mây chính là công ghệ ảo hóa, nó làm cho điện toán đám mây có khả năng giải quyết được nhiều bài toán kinh tế mà các mô hình điện toán trước
đó không làm được
Công nghệ ảo hóa cho phép một máy tính vật lý có thể chạy được nhiều máy ảo, các máy
ảo này sẽ sử dụng tài nguyên của máy vật lý nhưng nó có thể được xem như những máy
Trang 17độc lập, điều này giúp cho việc một máy tính vật lý có thể phục vụ được nhiều người dùng cùng một lúc
Hình 2.1 Công nghệ ảo hóa
Theo Wikipedia,điện toán đám mây có một số đặc điểm sau :
- Agility : Cung cấp tài nguyên một cách nhanh chóng đến người sử dụng
- Application Programming Interface (API) : Cung cấp khả năng tương tác với cá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
Trang 18- 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 trình và các công cụ cần thiết để người sử dụng có thể xây dựng cũng như triển khai các ứng dụng cho riêng mình Các nhà cung cấp dịch vụ này có thể kể đến như Google App Engine, Microsoft Window Azure
2.1.2.2.3 Software as a service
Trang 19Với mô hình dịch vụ này, nhà cung cấp dịch vụ sẽ cung cấp tất cả các tài nguyên từ cơ sở
hạ tầng bên dưới cho đến các phần mềm bên trên, người sử dụng chi đơn giản là thuê phần mềm đó và sử dụng, chi phí được trả theo thời gian sử dụng phần mềm đó Ở mô hình này người sử dụng không phải quản lý bất cứ thứ gì mà toàn bộ hệ thống đều được nhà cung cấp quản lý
2.1.3 Phân loại điện toán đám mây theo phạm vi
2.1.3.1 Public cloud
Đây là dạng điện toán đám mây mà dịch vụ của nó có thể được cung cấp cho người sử dụng thông qua đường truyền mạng internet và web services, dạng này thường có rất nhiều người sử dụng bởi vì nó có thể được truy xuất ở bất kì đâu chỉ cần có một trình duyệt và kết nối internet Một số công ty lớn thường cung cấp các cloud dạng này như Google, Microsoft, Amazon
Đây là dạng kết hợp của hai dạng hệ thống private cloud và public cloud, một phần của nó
sẽ được bảo mật và không cho phép sự truy xuất từ bên ngoài còn một phần sẽ cho phép bên ngoài truy xuất
2.2 Công nghệ ảo hóa
2.2.1 Giới thiệu công nghệ ảo hóa
Ảo hóa (Virtualization) là một công nghệ phân chia tài nguyên vật lý máy tính thành nhiều môi trường thực thi khác nhau bằng cách sử dụng các khái niệm và công nghệ khác 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]
Trang 20Trong 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
Trang 21- 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 hành cùng một lúc, mỗi một hệ điều hành có thể chạy những ứng dụng rất khác nhau
- Software migration : Tăng tính linh động cho việc chuyển một phần mềm từ hệ thống này sang hệ thống khác
2.2.2 Các kỹ thuật ảo hóa
2.2.2.1 Ảo hóa hoàn toàn (full virtualization)
Hình 2.3 Full-v irt ualizat ion
Ảo hóa hoàn toàn sử dụng một lớp đặc biệt gọi là Virtual Machine Monitor ( còn gọi là hypervisor) Lớp hypervisor này sẽ tương tác trực tiếp với các tài nguyên vật lý bên dưới như CPU, RAM, harddisk và có nhiệm vụ như là một lớp nền tảng tách biệt với phần cứng bên dưới mà các máy ảo ( virtual machine) có thể chạy trên đó ( gọi là Guest OS) Mỗi một máy ảo chạy một hệ điều hành riêng của nó và tách biệt với các máy ảo khác do
đó với kiểu ảo hóa này thì một máy ảo có thể chạy Window trong khi máy ảo khác chạy
Trang 222.2.2.2 Para-virtualizaiton
Hình 2.4 Para-v irt ualizat ion
Với para-virtualization, kiến trúc tập lệnh của hypervisor không giống hoàn toàn với kiến trúc bên dưới như của full-virtualization do được chỉnh sửa một phần để hổ trợ những lệnh gọi trực tiếp từ hệ điều hành ảo xuống dưới phần cứng vật lý, để làm được điều này thì những hệ điều hành ảo (Guest OS) cần phải được chỉnh sửa vì vậy chúng không thể tách biệt như full-virtualization được mà phụ thuộc vào hệ điều hành chạy trên máy chủ vật lý
2.2.2.3 Ảo hóa ở mức hệ điều hành (OS-level virtualization)
Ở mức này sẽ không có hypervisor mà sẽ có một hệ điều hành sẽ đóng chức năng như hypervisor( shared OS), “máy ảo” ở đây không phải là một máy ảo thực sự như ở hai kỹ thuật ảo hóa trên mà như một ứng dụng của share OS Ưu điểm của phương pháp này có khả năng hổ trợ một lượng lớn các “máy ảo” chạy đồng thời
Trang 23Hình 2.5 OS-lev el v irt ualizat ion
Trang 24Hình 2.6 Các t hành phần k hi ả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 cho phép triển khai và quản lý các máy ảo theo ý muốn
Trang 252.3.1.4 Operations
OpenNebula cung cấp một tập lệnh cho phép điều khiển nhiều thành phần khác nhau trong hệ thống, ví dụ như: create, deploy, migrate… các máy ảo Các lệnh này có thể được thực hiện thông qua CLI hoặc giao diện web Sunstone
Query Bên cạnh đó, OpenNebula cung cấp các API rất mạnh để để hỗ trợ việc phát triển các thành phần mới của nền tảng này
2.3.2.2 User và Group
OpenNebula hỗ trợ quản lý các tài khoản người dùng và nhóm, kèm theo các kỹ thuật mã hóa và phân quyền Ngoài ra, hệ thống Access control list cho phép cơ chế cấp quyền cho
Trang 26các đối tượng sử dụng trong hệ thống Điều này giúp cho OpenNebula tổ chức được hệ thống người dùng và quyền hạn tốt, đáp ứng được yêu cầu phức tạp khi phát triển
2.3.2.3 Networking
Các Network subsystem dễ tùy biến, chỉnh sửa được đưa vào trong hệ thống, nhằm dễ dàng tích đáp ứng các yêu cầu về mạng của người sử dụng OpenNebula còn hỗ trợ VLAN và Open vSwitch
2.3.2.4 Host và virtualization
Nhiều Hypervisor cung cấp trình quản lý ảo hóa, cho phép điều khiển cũng như theo dõi chu trình hoạt động của các máy ảo Ngoài ra, hệ thống còn cho phép theo dõi tình trạng của các máy vật lý chạy các máy ảo
2.3.2.5 Storage và image
OpenNebula được phát triển để đáp ứng các yêu cầu phức tạp về Storage và Image Storage subsystem có thể được cấu hình để hỗ trợ shared hoặc non-shared filesystem
Hình 2.8 Các t hành phần của openNebula