Tải bản đầy đủ (.docx) (38 trang)

Phát triển điện toán đám mây trên cơ sở mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (805.09 KB, 38 trang )

1

LỜI CAM ĐOAN

Em xin cam đoan đồ án tốt nghiệp này là do tự bản thân thực hiện và
không sao chép các công trình nghiên cứu của người khác để làm sản phẩm
của riêng mình. Các thông tin sử dụng trong đồ án là có nguồn gốc và được
trích dẫn rõ ràng. Em xin hoàn toàn chịu trách nhiệm về tính xác thực và
nguyên bản của đồ án.

Sinh viên thực hiện
Bùi Ngọc Diệp

LỜI CẢM ƠN
Em xin cảm ơn chân thành tới TS. Nguyễn Việt Anh đã dành thời gian
hướng dẫn tận tình giúp đỡ và củng cố kiến thức cho em, giúp em hoàn thiện
báo cáo này.


2

Em xin chân thành cảm ơn tới thầy giáo Nguyễn Văn Hách đã dành thời
gian củng cố kiến thức còn thiếu cho em trong qua trình làm đồ án.
Em xin chân thành cảm ởn các thầy cô trong khoa đã giúp đỡ củng cố
kiến thức cho em suốt mấy năm học vừa, giúp em có kiến thức hoàn thành đồ
án này.

MỤC LỤC
MỞ ĐẦU………………………………………………………………..
CHƯƠNG 1. TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY………..
1.1. Tổng quan về điện toán đám mây……….……….………………….


1.1.1. Tính chất điện toán đám mây…….………….…………………….

5
7
7
11


3

1.1.2. Các thành phần của đám mây………………….…………………
1.1.3. Các dịch vụ điện toán đám mây…………………….……………..
1.1.4. Các mô hình phát triển điện toán đám mây……………………….
1.1.5. Một số ứng dụng điện toán đám mây hiện nay………….…………
1.2 Tổng kết chương 1…...………………………………………………
CHƯƠNG 2. NGHIÊN CỨU MÃ NGUỒN MỞ ĐỂ PHÁT TRIỂN
TRONG MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY…………………
2.1 Ứng dụng mã nguồn mở hiện nay…………………………..……….
2.2 Một số mã nguồn mở trong phát triển điện toán đám mây…..………
2.3. Tổng quan Openstack………………………………..………………
2.3.1 Giới thiệu Openstack……………………………………………….
2.3.2 Kiến trúc Openstack………………………………………………..
2.3.3 Ưu nhược điểm của Openstack……………………………………..
2.3.4 Ứng dụng Openstack……………………………………………….
2.4. Tổng kết chương 2………………………………………………….
CHƯƠNG 3. PHÁT TRIỂN ĐIỆN TOÁN ĐÁM MÂY TRÊN
OPENSTACK……………………………………………………………..
3.1 Bài toán……………………………………………………………….
3.2 Các bước triển khai Openstack……………………………………….
3.2.1 Các bước cài đặt……………………………………………………

3.2.2 Mô hình triển khai…………………………………………………
3.2.3 Xây dựng ứng dụng thực nghiệm………………………………….
3.3. Tổng kết chương 3…………………..……………………………….
ĐÁNH GIÁ VÀ KIẾN NGHỊ. ………………………………………….
TÀI LIỆU THAM KHẢO……………………………………………….

11
13
15
16
18
19
19
22
24
24
26
29
30
31
33
33
33
33
34
35
37
39
39


DANH MỤC HÌNH ẢNH
Hình 1.1. Mô hình tổng quan của cloud computing……………………......

8

Hình 1.2 các thành phần của đám mây…………………………………...

11

Hình 1.3 Chức năng nhiệm vụ từng mô hình……………………………..

13

Hình 2.1 sơ đồ tương tác các thành phần của openstack………………….

26

Hình 2.2 hình minh họa vị trí openstack…………………………...……..

30

Hình 3.1 sơ đồ thứ tự cài đặt openstack…...……………...………………

33

Hình 3.2. ví dụ mô hình chuẩn triển khai openstack…………….……...…

34



4

Hình 3.3 giao diện bắt đầu của openstack………………………………

36

Hình 3.4 hình ảnh đã đăng nhập và sử dụng dashboard với project là
admin…………………………………………………………………….

37

Hình 3.5 hình ảnh hypervisor quản lý các VCPU, Ram và disk máy ảo
được tạo lên trong đám mây………..…………………………………...... 37
Hình 3.6 hình ảnh đã tạo các mạng và máy ảo………………….…………

38

MỞ ĐẦU
1. Lý do chọn chuyên đồ án

Ngày nay, đối với các công ty, doanh nghiệp, việc quản lý tốt, hiệu quả
dịch vụ và dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là
một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây
khó khăn cho họ. Để có thể quản lý được nguồn dữ liệu đó, ban đầu các
doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho
phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa
chữa,… Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị,
phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu.



5

Từ một bài toán điển hình như vậy, chúng ta thấy đựợc rằng nếu có một
nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh
nghiệp sẽ không cần quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung
chính vào công việc kinh doanh của họ th́ì sẽ mang lại cho họ hiệu quả và lợi
nhuận ngày càng cao hơn.
Thuật ngữ “cloud computing” ra đời bắt nguồn từ một trong những hoàn
cảnh như vậy.
Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả
mọi thứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet. Chúng
ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp
để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập
trung ở trên mạng. Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh
nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử
dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng
như quan tâm nhiều đến công nghệ. Xu hướng này sẽ giúp nhiều cho các công
ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để
lưu trữ, quản lý dữ liệu tốt.
Để nghiên cứu sâu hơn điện toán đám mây tôi quyết định chọn đề tài
“Phát triển điện toán đám mây trên cơ sở mã nguồn mở”.
2. Đối tượng, phạm vi và phương pháp thực hiện đồ án
a) Đối tượng nghiên cứu: Điện toán đám mây, các công cụ hỗ trợ và phần mền
mã nguồn mở, quản lý cấu hình.
b) Phạm vi nghiên cứu: đề tài được nghiên cứu để áp dụng cho việc xây dựng
phát triển điện toán đám mây trên cơ sở mã nguồn mở.
c) Phương pháp thực hiện:
- Nghiên cứu các vấn đề liên quan đến điện toán đám mây.
- Tìm hiểu các phần mềm mã nguồn mở phổ biến và triển khai cài đặt
Openstack trên ubuntu 14.04

3. Mục tiêu và nhiệm vụ của đồ án
a) Mục tiêu của đề tài


6

Nghiên cứu về phần mềm mã nguồn mở, các công cụ, phần mềm hỗ trợ

b)
-

để cài đặt Openstack.
Tìm hiểu và chọn những công cụ để phát triển một cách hiệu quả nhất
Nhiệm vụ
Đề tài tập chung nghiên cứu những vấn đề cơ bản:
Thực trạng của công nghệ điện toán hiện nay
Sự cần thiết xây dựng và phát triển đám mây
Tìm hiểu quy trình cài đặt và xây dựng một đám mây


7

CHƯƠNG 1. TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
1.1.

Tổng quan về điện toán đám mây (cloud computing).
Điện toán đám mây (Cloud computing) còn gọi là điện toán máy chủ ảo,
là mô hình tính toán sử dụng các công nghệ máy tính và phát triển dựa vào
mạng Internet. Ở mô hình điện toán này, mọi khả năng liên quan đến công
nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người

sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong
đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó,
cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
Hiện nay, các nhà cung cấp đưa ra nhiều dịch vụ của cloud computing
theo nhiều hướng khác nhau, đưa ra các chuẩn riêng cũng như cách thức hoạt
động khác nhau. Do đó, việc tích hợp các cloud để giải quyết một bài toán lớn
của khách hàng vẫn còn là một vấn đề khó khăn. Chính vì vậy, các nhà cung
cấp dịch vụ đang có xu hướng tích hợp các cloud lại với nhau thành “sky
computing”, đưa ra các chuẩn chung để giải quyết các bài toán lớn của khách
hàng.


8

Hình 1.1. Mô hình tổng quan của cloud computing
Cloud Computing ra đời để giải quyết các vấn đề sau:
Vấn đề về lưu trữ dữ liệu:
Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ. Các
công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm
rải rác khắp nơi trên thế giới. Các công ty lớn này sẽ cung cấp các dịch vụ cho
phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các kho lưu
trữ trung tâm.
Vấn đề về sức mạnh tính toán: có 2 giải pháp chính:
-Sử dụng các siêu máy tính (super-computer) để xử lý tính toán.
-Sử dụng các hệ thống tính toán song song, phân tán, tính toán lưới
(grid computing).
Vấn đề về cung cấp tài nguyên, phần mềm:


9


Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS
(platform as a service), SaaS (software as a service).
Ưu điểm của điện toán đám mây:
Nhanh chóng cải thiện với người dùng có khả năng cung cấp sẵn các tài
nguyên cơ sở hạ tầng công nghệ một cách nhanh chóng và ít tốn kém.
Chi phí được giảm đáng kể và chi phí vốn đầu tư được chuyển sang hoạt
động chi tiêu. Điều này làm giảm rào cản cho việc tiếp nhận, chẳng hạn như
cơ sở hạ tầng được cung cấp bởi đối tác thứ 3 và không cần phải mua để dùng
cho các tác vụ tính toán thực hiện một lần hay chuyên sâu mà không thường
xuyên. Việc định giá dựa trên cơ sở tính toán theo nhu cầu th́ì tốt đối với
những tùy chọn dựa trên việc sử dụng và các kỹ năng IT được đòi hỏi tối
thiểu (hay không được đòi hỏi) cho việc thực thi.
Sự độc lập giữa thiết bị và vị trí làm cho người dùng có thể truy cập hệ
thống bằng cách sử dụng trình duyệt web mà không quan tâm đến vị trí của
họ hay thiết bị nào mà họ đang dùng, ví dụ như PC, mobile. Vì cơ sở hạ tầng
off-site (được cung cấp bởi đối tác thứ 3) và được truy cập thông qua Internet,
do đó người dùng có thể kết nối từ bất kỳ nơi nào.
Việc cho thuê nhiều để có thể chia sẻ tài nguyên và chi phí giữa một
phạm vi lớn người dùng, cho phép:


Tập trung hóa cơ sở hạ tầng trong các lĩnh vực với chi phí thấp hơn (chẳng
hạn như bất động sản, điện, v.v.)



Khả năng chịu tải nâng cao (người dùng không cần kỹ sư cho các mức tải cao
nhất có thể).




Cải thiện việc sử dụng và hiệu quả cho các hệ thống mà thường chỉ 10-20%
được sử dụng.


10

Độ tin cậy cải thiện thông qua việc sử dụng các site có nhiều dư thừa,
làm nó thích hợp cho tính liên tục trong kinh doanh và khôi phục thất bại. Tuy
nhiên, phần lớn các dịch vụ của cloud computing có những lúc thiếu hụt,
người giám đốc kinh doanh, IT phải làm cho nó ít đi.
Tính co giãn linh động (“theo nhu cầu”) cung cấp tài nguyên trên một cơ
sở mịn, tự bản thân dịch vụ và gần thời gian thực, không cần người dùng phải
có kỹ sư cho chịu tải. Hiệu suất hoạt động được quan sát và các kiến trúc nhất
quán, kết nối lỏng lẽo được cấu trúc dùng web service như giao tiếp hệ thống.
Việc bảo mật cải thiện nhờ vào tập trung hóa dữ liệu, các tài nguyên chú
trọng bảo mật, v.v… nhưng cũng nâng cao mối quan tâm về việc mất quyền
điều khiển dữ liệu nhạy cảm. Bảo mật thường th́ì tốt hay tốt hơn các hệ thống
truyền thống, một phần bởi các nhà cung cấp có thể dành nhiều nguồn lực cho
việc giải quyết các vấn đề bảo mật mà nhiều khách hàng không có đủ chi phí
để thực hiện. Các nhà cung cấp sẽ ghi nhớ (log) các truy cập, nhưng việc truy
cập vào chính bản thân các audit log có thể khó khăn hay không thể.
Khả năng chịu đựng xảy ra thông qua việc tận dụng tài nguyên đă được
cải thiện, các hệ thống hiệu quả hơn. Tuy nhiên, các máy tính và cơ sở hạ tầng
kết hợp là những thứ tiêu thụ năng lượng chủ yếu.
Xu hướng phát triển:Thuật ngữ “cloud computing” ra đời từ giữa năm
2007, cho đến nay đă không ngừng phát triển mạnh mẽ và được hiện thực bởi
nhiều công ty lớn trên thế giới như IBM, Sun, Amazon, Google, Microsoft,
Yahoo, SalesForce, …


1.1.1

Tính chất điện toán đám mây.
5 tính chất của Cloud Computing


11

- Tự phục vụ (On-demand self-service): Khả năng tự phục vụ của người

dùng, chủ động khởi tạo, tạm dừng dịch vụ ...
- Truy cập rộng rãi (Broad network access): Khả năng truy cập trên mọi
nền tảng thiết bị, mọi loại hạ tầng về mạng, khu vực địa lý.
- Tập trung tài nguyên (Resource pooling): Khả năng gộp - gom tài
nguyên vật lý sau đó phân bổ một cách tự động cho người sử dụng - dựa
vào nhu cầu.
- Tính đàn hồi (Rapid elasticity): Khả năng "co giãn & đàn hồi" tài nguyên
một cách nhanh chóng và thuận tiện. Có thể cấp phát và thu hồi một cách
nhanh chóng.
- Tính đo được (Measured service): Khả năng đo lường dịch vụ để kiểm
soát thời gian sử dụng - từ đó tính toán chi phí theo mức độ sử dụng dịch
vụ.
1.1.2 Các thành phần cơ bản của đám mây

Hình 1.2 các thành phần của đám mây
Server (lớp server - máy chủ): Bao gồm các sản phẩm phần cứng và
phần mềm máy tính, được thiết kế và xây dựng đặc biệt để cung cấp các dịch
vụ của đám mây. Các server phải được xây dựng và có cấu hình đủ mạnh để



12

đám ứng nhu cầu sử dụng của số lượng động đảo các người dùng và các nhu
cầu ngày càng cao của họ.
Infrastructure (lớp cơ sở hạ tầng): Cung cấp hạ tầng máy tính, tiêu biểu
là môi trường nền ảo hóa. Thay vì khách hàng phải bỏ tiền ra mua các server,
phần mềm, trung tâm dữ liệu hoặc thiết bị kết nối… giờ đây, họ vẫn có thể có
đầy đủ tài nguyên để sử dụng mà chi phí được giảm thiểu, hoặc thậm chí là
miễn phí. Đây là một bước tiến hóa của mô hình máy chủ ảo (Virtual Private
Server).
Platform (lớp nền tảng): Cung cấp nền tảng cho điện toán và các giải
pháp của dịch vụ, chi phối đến cấu trúc hạ tầng của “đám mây” và là điểm tựa
cho lớp ứng dụng, cho phép các ứng dụng hoạt động trên nền tảng đó. Nó
giảm nhẹ sự tốn kém khi triển khai các ứng dụng khi người dùng không phải
trang bị cơ sở hạ tầng (phần cứng và phần mềm) của riêng mình.
Application (lớp ứng dụng): Lớp ứng dụng của điện toán đám mây làm
nhiệm vụ phân phối phần mềm như một dịch vụ thông quan Internet, người
dùng không cần phải cài đặt và chạy các ứng dụng đó trên máy tính của mình,
các ứng dụng dễ dàng được chỉnh sữa và người dùng dễ dàng nhận được sự
hỗ trợ.
Client (lớp khách hàng): Lớp Client của điện toán đám mây bao gồm
phần cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và sử
dụng các ứng dụng dịch vụ được cung cấp từ điện toán đám mây. Chẳng hạn
máy tính và đường dây kết nối Internet (thiết bị phần cứng) và các trình duyệt
web (phần mềm).
1.1.3 Các dịch vụ điện toán đám mây.


13


Hình 1.3 Chức năng nhiệm vụ từng mô hình
IaaS - Infrastructure as a Services.
-

Cung cấp dịch vụ về hạ tầng, các máy chủ, tài nguyên là: RAM,

CPU,Storage ...
Cung cấp phần "xác" của VM, người dùng chủ động cài đặt ứng dụng.
Ví dụ như: EC2 của Amazon, RackSpace ...
Những đặc trưng tiêu biểu của IaaS:
Cung cấp hạ tầng như một dịch vụ: bao gồm cả máy chủ (ảo), thiết bị
mạng, bộ nhớ, CPU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu.
Khả năng mở rộng linh hoạt.
Chi phí thay đổi tùy theo thực tế.
Nhiều người thuê có thể cùng dùng chung trên một tài nguyên (nhiều
máy ảo trên cùng một máy thật).
Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài
nguyên tính toán tổng hợp.


14

Nhà cung cấp IaaS thương mại nổi tiếng nhất là Amazon với Amazon
Elastic Compute Cloud (EC2). Trong EC2, người dùng có thể chỉ định máy ảo
(VM – Virtual Machine) có sẵn và triển khai các ứng dụng trên đó hay tự
cung cấp VM image của chính họ và đưa nó lên chạy trên hệ thống của
Amazon. Người dùng chỉ phải trả tiền cho thời gian tính toán, dung lượng lưu
trữ và băng thông mạng. Ngoài Amazon còn một số hãng lớn khác như
Rackspace, GoGrid,… cũng cung cấp IaaS theo mô hình tương tự.

PaaS - Platform as a Services.
- Cung cấp dịch vụ về nền tảng (platfrom) như: Database, môi trường để
phát triển chương trình.
- Máy chủ có sẵn các môi trường để phát triển ứng dụng.
- Ví dụ: Google’s AppEngine, Microsoft Azure.
Những đặc trưng tiêu biểu của PaaS:
- Phục vụ cho việc phát triển, kiêm thử, triển khai và vận hành ứng dụng
-

giống như là môi trường phát triển tích hợp.
Các công cụ khởi tạo với giao diện trên nền web.
Kiến trúc đồng nhất.
Tích hợp dịch vụ web với cơ sở dữ liệu.
Hỗ trợ cộng tác nhóm phát triển.
Công cụ hỗ trợ tiện ích.
Microsoft Azure hay Google App Engine là một trong những dịch vụ

PaaS tiêu biểu. App Enginge là một dịch vụ cho phép người dùng triển khai
ứng dụng web của mình trên kiến trúc rất khả mở của Google. App Engine
cung cấp một sandbox cho ứng dụng Python của người dùng (các ngôn ngữ
khác sẽ hỗ trợ sau) như là các API Python để lưu trữ và quản lý dữ liệu (dùng
Google Query Language) bên cạnh các hỗ trợ về xác thực người dùng, thao
tác hình ảnh và gửi email.
SaaS - Software as a Services.


15

- Cung cấp các dịch vụ về phần mềm, bán hoặc cho thuê lâu dài.
- Nhà cung cấp dịch vụ triển khai gần như toàn bộ. Các phần mềm về


ERP, Email, Collaboration ...
- Ví dụ như: SalesForce.Com, Webex, Gmail, Dropbo
Những đặc trưng của SaaS:
- Phần mềm sẵn có đòi hỏi việc truy xuất, quản lý qua mạng.
- Quản lý các hoạt dộng từ một vị trí tập trung hơn là tại mỗi nơi của

khách hàng, cho phép khác hàng truy xuất từ xa thông qua web.
- Cung cấp ứng dụng thông thường gần gũi với mô hình ánh xạ từ một đến
nhiều.
- Những tính năng tập trung nâng cấp, giải phóng người dùng khỏi việc tải
các bản vá lỗi và cập nhật.
- Thường xuyên tích hợp những phần mềm giao tiếp trên mạng diện rộng.
- Dịch vụ email hay Google App của Google là một ví dụ tiêu biểu cho
hình thức cung cấp dịch vụ SaaS.
1.1.4 Mô hình phát triển điện toán đám mây.
Private Cloud( đám mây riêng).Triển khai dành cho 1 tổ chức duy
nhất. Có thể đc lập ra hoặc được quản lý bởi 1 bên thứ 3. Khi một tổ chức
chọn lựa để xây dựng private cloud của riêng họ, họ sẽ có chính sách sử dụng
phù hợp với từng bộ phận khác nhau trong tổ chức

Public Cloud (đám mây công cộng).
Được xây dựng cho đa mục đích sử dụng, do 1 công ty lập ra để bán các
dịch vụ trên nền tảng Cloud Computing . Người dùng của một public cloud sẽ
đăng ký với nhà cung cấp cloud và trả phí sử dụng dựa theo chính sách giá
của nhà cung cấp. Public cloud là mô hình triển khai phổ biến nhất của cloud
computing.
Bảng 1.1. bảng so sánh đám mây public cloud và private cloud



16

Hybrid Cloud (đám mây lai).
Kết hợp của 2 hay nhiều mô hình trên.
Community Cloud( đám mây cộng đồng).
Cloud Computing được xây dựng để phục vụ cho 1 cộng đồng nào đó sử
dụng (VD: 1 cộng đồng doanh nghiệp chung ngành nghề, 1 nhóm các trường
đại học,…).
1.1.5. Một số ứng dụng điện toán đám mây hiện nay
Điện toán đám mây ra đời để giải quyết các vấn đề về lưu trữ, tính toán
nên hiện nay một số nhà cung cấp hay một số quốc gia đã sử dụng điện toán
đám mây để giải giải quyết vấn để về lưu trữ như các dịch vụ:

Google Drive
Google Drive là dịch vụ lưu trữ và chỉnh sửa dữ liệu trực tuyến với
15GB dung lượng miễn phí, cho phép người dùng lưu trữ nhiều dạng dữ liệu
như văn bản, video, âm thanh, PDF… trên nền tảng “đám mây”. Google
Drive với khả năng hỗ trợ Google Docs và Google+ cao cấp giúp người dùng
dễ dàng truy cập và chỉnh sửa tài liệu ở bất cứ đâu hay chia sẻ làm việc chung


17

với bạn bè.Tập tin của bạn trong Drive có thể truy cập được từ mọi điện thoại
thông minh, máy tính bảng hoặc máy tính. Nhờ đó, tập tin của bạn luôn đồng
hành bạn. Ngoài ra, bạn còn có thể nhanh chóng mời người khác xem, tải
xuống và cộng tác trên tất cả những tập tin bạn muốn, mà không cần đến tập
tin đính kèm qua email.
Dropbox
Dropbox là dịch vụ lưu trữ dữ liệu trực tuyến miễn phí cho phép bạn

mang theo tất cả tài liệu, ảnh và video tới bất cứ nơi nào. Điều này có nghĩa là
tập tin bạn đã lưu vào Dropbox sẽ tự động lưu vào máy tính, điện thoại của
bạn và cả trên website Dropbox. Ứng dụng này cũng giúp bạn dễ dàng chia sẻ
tài liệu cho nhiều người. Thậm chí trong trường hợp ổ cứng máy tính bị hỏng,
dữ liệu trên điện thoại mất hoàn toàn thì bạn vẫn có thể yên tâm vì đã có một
bản sao lưu nội dung trên Dropbox.
Box
Box là ứng dụng lưu trữ dữ liệu trực tuyến khá nổi tiếng và quan trọng
nhất hiện nay. Nó tăng cường không gian lưu trữ dữ liệu rất nhiều trên mạng
và được bảo mật bằng tài khoản của riêng mình, ở đâu cũng có thể xem, chia
sẻ và tải về được miễn là có kết nối internet, phòng tránh khi ổ cứng (bộ nhớ
máy) bị hư hỏng do nhiều nguyên nhân như cháy nổ, tác động vật lý,... sẽ
không bị mất dữ liệu và được bảo vệ an toàn không lo sợ virus phá hại. Ngoài
ra, Box còn là một công cụ văn phòng trực tuyến kết hợp lưu trữ trực tuyến.
1.2.
-

Tổng kết chương 1
Khái niệm điện toán đám mây: Điện toán đám mây (Cloud computing) còn
gọi là điện toán máy chủ ảo, là mô hình tính toán sử dụng các công nghệ máy

-

tính và phát triển dựa vào mạng Internet.
5 tính chất của điện toán đám mây:
+ Tự phục vụ (On-demand self-service)


18


-

-

+ Truy cập rộng rãi (Broad network access)
+ Tập trung tài nguyên (Resource pooling)
+ Tính đàn hồi (Rapid elasticity)
+ Tính đo được (Measured service)
Các dịch vụ điện toán đám mây.
+ IaaS: Cung cấp cơ sở hạ tầng.
+ PaaS: Cung cấp nền tảng dịch vụ.
+ SaaS: Cung cấp dịch vụ phần mền
Các mô hình điện toán đám mây
+ Private Cloud( đám mây riêng)
+ Public Cloud (đám mây công cộng)
+ Hybrid Cloud (đám mây lai)
+ Community Cloud( đám mây cộng đồng)

CHƯƠNG 2. NGHIÊN CỨU MÃ NGUỒN MỞ ĐỂ PHÁT TRIỂN
TRONG MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY
2.1 Ứng dụng mã nguồn mở hiện nay.

Lý do sử dụng mã nguồn mở hiện nay vì mã nguồn mở có một số đặc
tính nổi bật sau:
- Kinh tế:

Ưu điểm đầu tiên của mã nguồn mở là chi phí thấp. Chu kỳ sống của một
open source thường bắt đầu là phần mềm nhỏ, miễn phí. Phần mềm này
thường sẽ phát triển tới bản beta, version 1.0, 2.0,... cho tới khi nhận được sự
ủng hộ và tài trợ rộng rãi của cộng đồng. Những phần mềm như vậy sẽ nhanh

chóng có được thương hiệu riêng và nhóm phát triển bắt đầu đưa ra các dịch
vụ hỗ trợ người dùng có chi phí.
- Đa dạng:


19

Một phần mềm tốt trên môi trường này sẽ nhanh chóng được một nhóm
phát triển khác triển khai trên môi trường khác. Các tính năng cũng sẽ được
cộng đồng open source bổ sung vào. Để làm như vậy, các phần mềm đều có
kiến trúc mở, theo dạng module để có thể sẵn sàng cấu hình các tính năng
mới.
- An toàn:

Ba lý do sau thường được nêu để giải thích vì sao phần mềm nguồn mở
ưu việt hơn về độ an toàn:
Mã nguồn được phổ biến rộng rãi: việc mã nguồn được phổ biến rộng rãi
khiến người lập trình và người sử dụng dễ phát hiện và khắc phục các lỗ hổng
an toàn trước khi chúng bị lợi dụng. Đa phần những lỗi hệ thống của phần
mềm nguồn mở nêu trong Bugtraq là những lỗi được phát hiện trong quá trình
rà soát định kỳ và được sửa trước khi gây ra bất kỳ thiệt hại nào. Các hệ thống
phần mềm nguồn mở thường có quy trình rà soát chủ động chứ không phải rà
soát đối phó.
Ưu tiên về tính an toàn đặt trên tiêu chí tiện dụng: có thể nói phần mềm
nguồn mở được dùng để điều hành một phần lớn mạng Internet và do đó nhấn
mạnh nhiều đến tính bền vững và chức năng vận hành thay vì tính dễ sử dụng.
Trước khi thêm bất cứ tính năng nào vào một ứng dụng phần mềm nguồn mở,
bao giờ người ta cũng cân nhắc đến khía cạnh an toàn và tính năng đó sẽ chỉ
được đưa vào nếu không làm yếu đi tính an toàn của hệ thống.
Gốc: các hệ thống phần mềm nguồn mở chủ yếu dựa trên mô hình của

Unix: nhiều người sử dụng, thuận tiện cho kết nối mạng. Do đó, chúng được
thiết kế với một cấu trúc an toàn bảo mật cao. Điều này là đặc biệt quan trọng
khi có nhiều người cùng chia sẻ quyền sử dụng một máy chủ cấu hình mạnh,
bởi vì nếu hệ thống có độ an toàn thấp, một người sử dụng bất kỳ có thể đột


20

nhập vào máy chủ, ăn trộm dữ liệu cá nhân của người khác hoặc làm cho mọi
người không tiếp cận được với các dịch vụ do hệ thống cung cấp. Kết quả của
mô hình thiết kế này là chỉ có rất ít vụ tấn công được thực hiện thành công với
các phần mềm nguồn mở.
- Ổn định, đáng tin cậy:

Một khi đã chọn giải pháp open source, doanh nghiệp luôn có thể biết rõ
hiện còn tồn tại bao nhiêu bug, các bug sẽ sửa lúc nào, phiên bản nào,... Điểm
này khác hẳn những phần mềm "closed" source ở chỗ chúng vẫn có bug
nhưng không biết lúc nào mới được sửa. Bản chất của open source là phát
triển bởi nhóm nhỏ nhưng dùng và test bởi nhiều người, có thể hàng trăm,
hàng ngàn người. Nhóm phát triển, để phần mềm của mình đạt được tiêu
chuẩn open source thường phải đưa ra đầy đủ các tài liệu thiết kế, hướng dẫn
cài đặt, các forum thảo luận, yêu cầu tính năng, các hệ thống kiểm sóat mã
nguồn, bug,...
Phát triển một hệ thống open source hoàn toàn không dễ dàng bởi nó cần
được thiết kế, tổ chức đúng đắn và chuyên nghiệp ngay từ đầu. Nếu không, sẽ
không thể tiếp nhận hay đủ "mở" để được cộng đồng open source hỗ trợ và
tiếp nhận. Chính vì lý do này mà hầu hết các open source đều được phát triển
bởi các lập trình viên chuyên nghiệp, giàu kinh nghiệm, giữ vị trí quan trọng
tại các công ty IT hay các phòng IT lớn. Những yếu tố này cho thấy chất
lượng của các open source hòan tòan không thua kém các phần mềm sản xuất

và bán bởi các hãng phần mềm nổi tiếng.
Hiện nay, với trào lưu phát triển mạnh mẽ của các nền tảng hệ điều hành
mở dựa trên Linux (Fedora, Ubuntu, SuSE, OpenSolaris…) Các ứng dụng mã
nguồn mở (Open source software) cũng phát triển mạnh để đáp ứng nhu cầu
sử dụng phần mềm trên các hệ điều hành mới này. Song song với các ứng


21

dụng cho các hệ điều hành họ *nix, các nhà lập trình ứng dụng mã nguồn mở
cũng phát triển các ứng dụng này cho các dòng hệ điều hành khác như dòng
hệ điều hành thương mại Windows, Mac và các ứng dụng này cũng hoàn toàn
miễn phí.
Điểm mạnh của các ứng dụng mã nguồn mở là đều miễn phí đối với
người sử dụng. Ngoài ra, một số ứng dụng trong nhóm phần mềm này cũng
khá ổn định nếu không nói là vượt trội các ứng dụng thương mại cùng loại và
chúng khá phổ biến. Ngoài việc cho không các phần mềm, mã nguồn của một
phần mềm này cũng được cho không nhằm tạo điều kiện cho cộng đồng đóng
góp và phát triển thêm theo tiêu chí người dùng cũng có thể cùng phát triển
phần mềm. Ngoài ra, với đặc điểm là miễn phí, phần mềm mã nguồn mở còn
giúp cho các quốc gia, công ty giảm thiểu chi phí mua các phần mềm thương
mại với giá trên trời, tạo điều khiện giảm tỷ lệ vi phạm bản quyền phần mềm.
Điều này tạo cho phần mềm mã nguồn mở một ưu thế cạnh tranh trong bối
cảnh nền kinh tế hiện nay.
2.2 Một số mã nguồn mở trong phát triển điện toán đám mây.

Eucalyptus:
Là 1 dự án điện toán đám mây mã nguồn mở được phát triển bởi Rich
Wolski và Woody Rollins và được công bố lần đầu tiên vào 14/5/2008.
Là một công cụ mã nguồn mở để xây dựng cloud computing IaaS sử

dụng hạ tầng Linux có sẵn trong các data center hiện đại. Nó có một giao diện
tương thích với Amazon” AWS nên có thể di chuyển workload giữa AWS và
data center mà không phải sửa đổi code đã triển khai.
Là một trong những công cụ mã nguồn mở để xây dựng hạ tầng cloud
computing phổ biến nhất hiện nay.


22

OpenNebula:
Được phát triển tại Đại học Complutense de Madrid. Ngoài việc hỗ trợ
xây dựng đám mây riêng, OpenNebula ủng hộ ý tưởng về các các đám mây
lai. Đám mây lai cho phép kết hợp một cơ sở hạ tầng đám mây riêng tư với
một cơ sở hạ tầng đám mây công cộng (như Amazon) để cho phép các mức
độ mở rộng cao hơn.
Nimbus:
Nimbus là một giải pháp IaaS khác tập trung vào các tính toán khoa học.
Với Nimbus, bạn có thể thuê tài nguyên ở xa (chẳng hạn như tài nguyên do
Amazon EC2 cung cấp) và quản lý chúng cục bộ.

Open Stack
OpenStack là một dự án hình thành ban đầu với sự hợp tác của NASA và
RackSpace được công bố vào tháng 7/2010. Trong đó, NASA đóng góp mã
nguồn của OpenNebula, Rackspace đóng góp mã nguồn hệ thống lưu trữ
CloudFile. Hiện nay đã có ba phiên bản của OpenStack, phiên bản mới đây
nhất có tên là “cactus” công bố ngày 15/4/2011.OpenStack đưa ra phần mềm
mã nguồn mở để xây dựng public và private cloud. Nó là một tập hợp các
phần mềm mã nguồn mở để giúp các tổ chức chạy các đám mây bao gồm tính
toán và lưu trữ ảo. OpenStack cung cấp một nền tảng hệ điều hành, một công
cụ dành cho cloud

OpenStack được đưa ra với tham vọng sẽ trở thành tiêu chuẩn cho các
phần mềm xây dựng cloud mã nguồn mở. OpenStack làm cho khái niệm
CloudComputing trở nên rõ ràng, nhiệm vụ của nó là cung cấp điện toán đám


23

mây với khả năng mở rộng, mềm dẻo cho cả private và public cloud, cả lớn
và nhỏ, với hai yêu cầu chính là: Thực hiện đơn giản và có khả năng mở rộng.
Bảng 2.1. Bảng so sánh các mã nguồn mở trong điện toán đám mây
Open

Giải pháp

Eucalyptu
s

Open
Stack

Nimbus

Năm ra đời

2006

2010

2008


2005

Linux

Linux

Hơi phức
tạp

Hơi phức
tạp

Hỗ trợ
Xen, KVM

Hỗ trợ
Xen,
KVM,
Virtual
Box

Command
line

Command
line

Hệ điều hành

Linux (tích Linux (tích

hợp sẵn
hợp sẵn
trong
trong
Ubuntu
Ubuntu
server từ
Server
phiên bản
phiên bản
9.10)
11.04)

Cài đặt, triển
khai

Khá dễ
dàng

Khá dễ
dàng

Ảo hóa

Hỗ trợ
Xen, KVM

Hỗ trợ
Xen,
KVM,

Hyper-V,
VMware

Giao diện quản
trị

Command
line, Web

Command
line

Cộng đồng
nguồn mở

Forum

Mailing
list,

Hô trợ Amazon
EC2



2.3 Tổng quan Openstack.

Nebula

Mailing list Mailing list


Email







24

2.3.1 Giới thiệu Openstack
Openstack là một phần mền mã nguồn mở được thiết kế để chạy trên các
sản phẩm phần cứng như x86, ARM. Nó không có yêu cầu gì về đặc tính phần
mềm hay phần cứng, nó tích hợp với các hệ thống kế thừa và các sản phẩm
bên thứ ba. Nói cách khác, nó có thể thích nghi với hạ tầng kỹ thuật sẵn có mà
không gây ngắt quãng.
Là một dự án hình thành ban đầu với sự hợp tác của NASA và
RackSpace được công bố vào tháng 7/2010. Trong đó, NASA đóng góp mã
nguồn của openNubula, Rackspave đóng góp mã nguồn hệ thống lưu trữ
Cloudfile.
OpenStack đưa ra phần mềm mã nguồn mở để xây dựng public và
private cloud. Nó là một tập hợp các phần mềm mã nguồn mở để giúp các tổ
chức chạy các đám mây bao gồm tính toán và lưu trữ ảo. OpenStack cung cấp
một nền tảng hệ điều hành, một công cụ dành cho cloud nhiệm vụ của nó là
cung cấp điện toán đám mây với khả năng mở rộng, mềm dẻo cho cả private
và public cloud, cả lớn và nhỏ, với hai yêu cầu chính là: Thực hiện đơn giản
và có khả năng mở rộng. Openstack thường dùng để cung cấp:
- IaaS hoặc nền tảng để cung cấp các dịch vụ ở lớp cao hơn: PaaS, SaaS
- Xử lý dữ liệu lớn (bigdata) với các công cụ như hadoop.

- Thay đổi tài nguyên dựa theo yêu cầu các website và ứng dụng.
- Các môi trường tính toán hiệu năng cao đòi hỏi xử lý các công việc đa
dạng, liên tục, cường độ cao.
Openstack là sự kết hợp của nhiều công nghệ, giải phát tồn tại với những
dự án do chính openstack phát triển. Các dịch vụ của Openstack được thiết kế
với các tiêu chí:
- Có kiến trúc module: giúp nhanh chóng thêm các tính năng mới.
- Tính sẵn sàng cao: đẳm nhiệm các công việc quan trọng.
- Có khả năng chịu lỗi: tách rời các tiến trình chống hiện tượng hỏng hàng
loạt.
- Khả năng khôi phục: dễ dàng phân tích điều chỉnh.


25

- Dùng các tiêu chuẩn mở: giúp loại bỏ các nguy cơ tiềm ẩn, dễ kết hợp

với các ngành khác điện toán di động….

2.3.2. Kiến trúc Openstack

Hình 2.1 Sơ đồ tương tác các thành phần của openstack
Sơ đồ trên biểu thị sự tương tác các thành phần trong openstack. Các
dịch vòng trong là các dịch vụ được cung cấp bởi openstack. Các hình chữ
nhật là các thành phần bên ngoài không được bảo trì bởi openstack. Mọi dịch
vụ đều tương tác với hàng đợi và database.


×