ĐỒ ÁN TỐT NGHIỆP
Đề tài:
SỬ DỤNG SALTSTACK TRIỂN KHAI HỆ THỐNG
PRIVATE CLOUD OPENSTACK
Giảng viên hướng dẫn: Th.S Nguyễn Tuấn Dũng
Sinh viên:
Nguyễn Việt Hưng
MSSV:
20081297
Lớp:
Toán tin 2 - K53
Ngày 22 tháng 5 năm 2013
Mục lục
Lời nói đầu
1
Lời cảm ơn
5
1 Điện tốn đám mây
6
1.1
Khái niệm . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2
Các đặc tính cần có của mơ hình cloud . . . . . . . . .
6
1.3
Phân loại . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.1
Phân loại theo mơ hình dịch vụ cung cấp . . . .
9
1.3.2
Phân loại theo mơ hình triển khai . . . . . . . .
15
Openstack . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.4.1
Khái niệm . . . . . . . . . . . . . . . . . . . . .
16
1.4.2
Cấu tạo . . . . . . . . . . . . . . . . . . . . . .
17
1.4.3
OpenStack Compute . . . . . . . . . . . . . . .
20
1.4.4
OpenStack Storage . . . . . . . . . . . . . . . .
20
1.4.5
OpenStack Networking . . . . . . . . . . . . . .
22
1.4.6
OpenStack Dashboard . . . . . . . . . . . . . .
23
1.4
i
1.4.7
Identity Service . . . . . . . . . . . . . . . . . .
23
1.4.8
Image Service . . . . . . . . . . . . . . . . . . .
24
1.4.9
Tính năng . . . . . . . . . . . . . . . . . . . . .
25
1.4.10 Cài đặt và hoạt động . . . . . . . . . . . . . . .
26
2 Quản lý cấu hình
28
2.1
Sơ lược về quản lý cấu hình . . . . . . . . . . . . . . .
28
2.2
Các tiêu chí đánh giá một hệ thống quản lý cấu hình .
29
2.3
Một số chương trình tiêu biểu . . . . . . . . . . . . . .
30
2.3.1
CFEngine . . . . . . . . . . . . . . . . . . . . .
30
2.3.2
Puppet . . . . . . . . . . . . . . . . . . . . . . .
30
2.3.3
Chef . . . . . . . . . . . . . . . . . . . . . . . .
31
2.3.4
Salt . . . . . . . . . . . . . . . . . . . . . . . .
31
2.4
Những khó khăn trong triển khai thủ cơng hệ thống
cloud OpenStack . . . . . . . . . . . . . . . . . . . . .
2.5
2.6
32
Lợi ích khi sử dụng trình quản lý cấu hình để triển khai
hệ thống cloud OpenStack . . . . . . . . . . . . . . . .
33
Salt
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.6.1
Khái niệm . . . . . . . . . . . . . . . . . . . . .
35
2.6.2
Mơ hình và thiết kế . . . . . . . . . . . . . . . .
36
2.6.3
Master và Minion . . . . . . . . . . . . . . . . .
37
2.6.4
State . . . . . . . . . . . . . . . . . . . . . . . .
38
2.6.5
SLS . . . . . . . . . . . . . . . . . . . . . . . .
40
2.6.6
Renderers . . . . . . . . . . . . . . . . . . . . .
44
ii
2.6.7
Pillar . . . . . . . . . . . . . . . . . . . . . . . .
44
2.6.8
Grains . . . . . . . . . . . . . . . . . . . . . . .
45
2.6.9
Quá trình chạy một SLS . . . . . . . . . . . . .
46
2.6.10 Returner . . . . . . . . . . . . . . . . . . . . . .
46
3 Cài đặt hệ thống private cloud OpenStack sử dụng trình
quản lý cấu hình Salt
48
3.1
Các cơng việc cần thực hiện khi cài đặt OpenStack . .
48
3.2
Trên một node . . . . . . . . . . . . . . . . . . . . . .
51
3.2.1
Thiết kế state cho mysql . . . . . . . . . . . . .
51
3.2.2
Thiết kế state cho rabbitmq . . . . . . . . . . .
55
3.2.3
Thiết kế state cho keystone . . . . . . . . . . .
55
3.2.4
Thiết kế state cho glance . . . . . . . . . . . . .
58
3.2.5
Thiết kế state cho nova . . . . . . . . . . . . . .
62
3.2.6
Thiết kế state cho horizon . . . . . . . . . . . .
63
Trên nhiều node . . . . . . . . . . . . . . . . . . . . . .
64
3.3
4 Kết quả và đánh giá
4.1
4.2
66
Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.1.1
Cloud OpenStack . . . . . . . . . . . . . . . . .
66
4.1.2
Salt . . . . . . . . . . . . . . . . . . . . . . . .
74
Đánh giá hiệu quả . . . . . . . . . . . . . . . . . . . .
75
Kết luận
76
iii
Tài liệu tham khảo
79
Danh sách hình vẽ
79
Phụ lục
81
Thiết kế state cho DNSimple
. . . . . . . . . . . . . . . . .
81
Cài đặt và sử dụng DNSimple . . . . . . . . . . . . . . . . .
82
iv
Lời nói đầu
Trong mơi trường doanh nghiệp, khi nhu cầu sử dụng máy chủ tăng
lên theo quy mô của doanh nghiệp cũng là lúc nảy sinh nhiều vấn đề.
Trước hết là bài toán tối ưu để sử dụng tối đa cơng suất của các máy
chủ, tránh tình trạng lãng phí tài ngun, đồng thời địi hỏi hệ thống
có khả năng co giãn linh hoạt, chịu lỗi tốt để đảm bảo dịch vụ vẫn vận
hành khi lượng tài nguyên trên một máy tăng cao hay có sự cố xảy
ra. Tiếp đó là bài toán quản lý một lượng lớn máy chủ sao cho nhanh,
hiệu quả, tốn ít nhân lực và thời gian nhất. Giải quyết hai vấn đề trên,
trong đồ án này giới thiệu hai giải pháp cho lần lượt từng vấn đề là
xây dựng đám mây OpenStack và sử dụng cơng cụ quản lý cấu hình
Salt. Hai cơng nghệ này đều là các sản phẩm mã nguồn mở, miễn phí,
có lượng người dùng đông đảo và đặc biệt là đã đạt được những thành
công nhất định.
OpenStack là một tập hợp các chương trình mã nguồn mở chạy trên
mơi trường Linux, sử dụng các công nghệ hàng đầu để xây dựng nên
một hệ thống cung cấp máy ảo theo nhu cầu của người dùng. Open-
1
Stack cho phép xây dựng hệ thống cloud trên môi trường phần cứng
tiêu chuẩn, khơng địi hỏi bất cứ phần cứng hay phần mềm chuyên biệt
nào. Với thiết kế chia thành nhiều module và tuân theo các tiêu chuẩn
có sẵn khiến cho chất lượng của các bộ phận cấu thành OpenStack
nhanh chóng được phát triển và hồn thiện, thiết kế này còn cho phép
quản trị viên tùy ý lựa chọn chương trình có cùng chức năng để thay
thế các thành phần mà họ khơng thích. Cũng bởi thiết kế module này
mà việc cài đặt OpenStack đòi hỏi nhà quản trị hệ thống phải có am
hiểu về các cơng nghệ được sử dụng và bỏ cơng sức cấu hình các thành
phần để vận hành được một hệ thống cloud.
Mơ hình cloud cho phép hệ thống có thể sử dụng sức mạnh của
hàng nghìn máy tính, nhưng khi lượng máy tăng lên, việc quản lý các
máy tính này bắt đầu gặp những khó khăn, đặc biệt là vấn đề quản
lý cấu hình các dịch vụ chạy trên các máy chủ. Các vấn đề có thể gặp
phải:
• Cấu hình các máy chủ khơng có sự nhất quán: do một người
quản lý nhiều máy chủ hoặc do nhiều người cùng quản lý một
máy chủ.
• Công việc lặp đi lặp lại gây nhàm chán, tốn thời gian, cơng sức,
dễ nhầm lẫn.
• Các file cấu hình nằm phân tán khiến việc kiểm tra, thay đổi tốn
nhiều thời gian.
2
• Tốn nhiều thời gian và công sức nếu lượng máy tăng lên đến 100
hay thậm chí 1000 máy.
• Khó đảm bảo trạng thái của dịch vụ ở từng máy.
Chương trình quản lý cấu hình đã ra đời để giải quyết các vấn đề
nói trên. Xuất hiện từ lâu (như CFEngine - năm 1993), các chương
trình quản lý cấu hình luôn được phát triển và thay đổi theo sự đổi
mới của hệ thống, có khả năng mở rộng và tự động tốt hóa hơn.
Chef, Puppet, CFEngine là ba chương trình phổ biến nhất trong
lĩnh vực này vào thời điểm hiện tại. Các chương trình đều đã đạt được
những thành cơng nhất định. Bên cạnh những thành cơng đó, chúng
vẫn cịn nhiều nhược điểm đặc biệt là vấn đề về tính phức tạp của file
cấu hình và khả năng mở rộng.
Salt là một dự án mã nguồn mở mới được bắt đầu từ năm 2011
nhưng có sự phát triển rất nhanh, ln nhắm tới sự đơn giản, tính
module của các bộ phận cấu thành, khả năng mở rộng của hệ thống
quản lý cấu hình.
Đồ án này thực hiện tìm hiểu các khái niệm về điện tốn đám mây,
đi sâu vào tìm hiểu hệ thống OpenStack. Từ đó sử dụng Salt để cài đặt
một hệ thống IaaS cloud sử dụng OpenStack - một hệ thống tương đối
phức tạp để chứng minh sự đơn giản mà linh hoạt của trình quản lý
cấu hình này. Kết quả thu được là một tập hợp các file cấu hình giúp
tiết kiệm về thời gian, cơng sức trong việc triển khai một hệ thống
cloud, đồng thời giúp nhanh chóng và dễ dàng mang lại trải nghiệm
3
về điện toán đám mây cho người dùng.
4
Lời cảm ơn
Em xin chân thành cảm ơn thầy Th.S Nguyễn Tuấn Dũng đã dành
thời gian để hướng dẫn em hoàn thành đồ án này. Em xin chân thành
cảm ơn các thầy cơ đã dạy dỗ, chỉ bảo tận tình cho em suốt 5 năm học,
giúp em có kiến thức thực hiện đồ án này, và sẵn sàng để trở thành
một kỹ sữ, đóng góp cho sự phát triển của đất nước.
5
Chương 1
Điện toán đám mây
1.1
Khái niệm
Điện toán đám mây là mơ hình cho phép dùng các tài ngun của
máy tính một cách tiện lợi, theo nhu cầu. Các tài nguyên này được
nhà cung cấp dịch vụ dự trữ và cung cấp nhanh chóng, ít tốn cơng sức,
hoặc thậm chí có thể được cấp tự động.
1.2
Các đặc tính cần có của mơ hình cloud
Một hệ thống cloud bất kỳ cần có các đặc tính sau:
• Tự phục vụ theo u cầu: người dùng có thể đơn phương dự liệu
lượng tài nguyên mình cần sử dụng. Cơng việc này cần được tự
động hóa, khơng địi hỏi người dùng phải thơng qua nhà cung
6
cấp dịch vụ.
• Truy cập rộng rãi: ln sẵn sàng, cho phép truy cập qua mạng,
thông qua các loại client (điện thoại di động, máy tính xách tay,
máy tính để bàn, máy tính bảng...)
• Tập trung tài ngun: Tài ngun điện toán được sử dụng để
phục vụ cho nhiều khách hàng. Máy vật lý và máy ảo được cấp
và thu hồi linh hoạt cho các khách hàng theo nhu cầu của họ.
Người dùng không cần biết mọi thông tin địa lý liên quan đến
nơi cung cấp tài nguyên. Các tài nguyên gồm có: khả năng lưu
trữ, xử lý, bộ nhớ, băng thơng mạng...
• Co giãn nhanh: có khả năng tăng hoặc giảm lượng tài nguyên khi
cần thiết. Với khách hàng, đặc tính này giúp lượng tài ngun có
thể trở nên khơng giới hạn nhưng có lúc lại vừa đủ với nhu cầu
sử dụng, tùy theo yêu cầu của từng thời điểm.
• Các dịch vụ có thể đo được: để cloud có thể thực hiện các tính
năng tự động quản lý, tối ưu tài ngun, tính tốn giá thành.
Ví dụ về mơ hình điện tốn đám mây của Amazon: Amazon Web
Services (AWS). AWS là tập hợp các web service kết hợp với nhau tạo
thành một nền tảng điện toán đám mây. Hai thành phần nổi bật của
AWS là Amazon EC2 và Amazon S3. Các thành phần chính của AWS:
• Compute
7
Amazon Elastic Compute Cloud (EC2): dịch vụ cung cấp các
máy ảo, có thể mở rộng dễ dàng, sử dụng Xen hypervisor
• Networking
Amazon Elastic Load Balancing (Amazon ELB): phân tán các
yêu cầu truy cập ứng dụng tới nhiều máy ảo Amazon EC2, cung
cấp khả năng chịu lỗi và mở rộng.
• Storage
Amazon Simple Storage Service (S3): cung cấp nền tảng lưu trữ
dựa trên web service
Amazon Elastic Block Store (EBS): cung cấp các volume lưu trữ
mức khối cho EC2
• Database
Amazon RDS: cung cấp các máy chủ cơ sở dữ liệu quan hệ:
MySQL, Oracle, và SQL Server.
Amazon DynamoDB: cung cấp các máy chủ cơ sở dữ liệu hỗ trợ
NoSQL
Amazon ElastiCache: cung cấp dịch vụ caching trong bộ nhớ, hỗ
trợ Memcached
• Ngồi ra AWS cịn cung cấp các dịch vụ tầng ứng dụng như: dịch
vụ thông báo, dịch vụ chuyển đổi video, ảnh, dịch vụ truyền tải
8
thông điệp giữa các máy, dịch vụ theo dõi và quản lý máy ảo,
ứng dụng, ...
1.3
1.3.1
Phân loại
Phân loại theo mô hình dịch vụ cung cấp
Infrastructure as a service (IaaS)
IaaS cung cấp các máy tính (máy vật lý hoặc máy ảo) và các tài
nguyên khác. Một hypervisor (bộ phận quản lý máy ảo) đảm nhận
chạy các máy ảo. Một tập hợp các hypervisor trong hệ thống cloud
có thể cung cấp một lượng lớn các máy ảo, có thể mở rộng hoặc thu
hẹp mơ hình theo u cầu của khác hàng. IaaS thường hỗ trợ các tài
nguyên khác như file ảnh, lưu trữ, tường lửa, cân tải, địa chỉ IP, mạng
nội bộ ảo (VLANs), và các bộ phần mềm. Nguồn tài nguyên phục vụ
cho việc cung cấp theo yêu cầu được lấy kho tài nguyên phần cứng
trong các trung tâm dữ liệu của nhà cung cấp dịch vụ.
Các nhà cung cấp IaaS trên thế giới: Amazon EC2, Windows Azure
Virtual Machines, DynDNS, Google Compute Engine, Rackspace Cloud,
HP Cloud, ...
Ví dụ về IaaS: Windows Azure Virtual Machines cho phép tạo các
máy ảo từ kho các file ảnh sẵn có hoặc sử dụng file ảnh do người dùng
cung cấp. Người sử dụng có tồn quyền điều khiển máy ảo đã tạo. Với
9
dashboard, người dùng có thể theo dõi tình trạng của máy ảo qua biểu
đồ thời gian thực.
Hình 1.1: Dashboard của Windows Azure
Platform as a service (PaaS)
PaaS đưa ra một nền tảng điện tốn bao gồm cả hệ điều hành, mơi
trường lập trình, cơ sở dữ liệu và máy chủ web. Các nhà phát triển
ứng dụng có thể phát triển, chạy các giải pháp phần mềm của họ trên
một nền tảng cloud mà khơng cần lo đến chi phí và sự phức tạp của
việc mua và quản lý hạ tầng phần cứng và phần mềm bên dưới. Một
số nhà cung cấp PaaS hỗ trợ tự động cung cấp thêm tài nguyên theo
10
nhu cầu khi cần thiết. Các tổ chức cung cấp PaaS: Heroku, Google
App Engine, Windows Azure, ...
Ví dụ về PaaS: Heroku
Heroku cung cấp nền tảng hỗ trợ môi trường lập trình các ngơn
ngữ Ruby, Java, Node.js Scala, Clojure, Python và PHP cùng với các
cơ sở dữ liệu như PostgreSQL, MongoDB, Redis, ... trên nền tảng hệ
điều hành Debian và Ubuntu. Các nhà phát triển phần mềm đưa mã
nguồn vào hệ thống của Heroku, cấu hình cách chương trình sẽ chạy.
Việc chạy phần mềm do hệ thống của heroku tự động thực hiện. Lượng
tài nguyên ứng dụng sử dụng được đo và ghi lại, nhà phát triển sẽ trả
tiền cho lượng tài ngun đó.
Hình 1.2: Giao diện dashboard của Heroku
11
Software as a service (SaaS)
SaaS là một mơ hình phân phối phần mềm, trong đó các ứng dụng
sẽ được cung cấp, quản lý, vận hành bởi một nhà cung cấp dịch vụ,
người dùng có thể truy cập qua mạng. Tồn bộ ứng dụng và dữ liệu
người dùng đều được lưu trữ bởi nhà cung cấp dịch vụ. Người dùng
thường truy cập SaaS qua trình duyệt Web. Ví dụ: Gmail, Box.net,
Mediafire, ...
Ví dụ về SaaS: Google Drive
Người dùng đăng ký sử dụng dịch vụ. Với tài khoản đã đăng ký,
Google cung cấp cho người dùng một lượng dung lượng lưu trữ và khả
năng truy cập ứng dụng Google Driver trực tuyến. Với ứng dụng web
này, người dùng có thể soạn thảo, lưu trữ, chia sẻ các file văn bản,
bảng tính tương tự như sản phẩm Word, Excel chạy trên các máy tính
của Microsoft Office. Người dùng chỉ cần có một client để truy cập và
sử dụng ứng dụng ở bất cứ nơi đâu.
12
Hình 1.3: Giao diện soạn thảo Spreadsheet của Google Drive
Ba mơ hình nói trên thực hiện cung cấp các dịch vụ ở ba tầng khác
nhau. Các dịch vụ tầng trên nên được xây dựng trên các dịch vụ tầng
thấp hơn để nâng cao khả năng mở rộng của toàn bộ hệ thống.
13
Hình 1.4: Phân tầng chức năng của từng mơ hình dịch vụ
Hình minh họa 1.4 chỉ rõ chức năng của mỗi mơ hình đảm nhận. Ở
mỗi dịch vụ, nhà cung cấp sẽ quản lý các phần có tơ màu xám, người
dùng sẽ được quản lý các phần tô màu xanh. Với IaaS, người dùng sẽ
không cần lo lắng về hạ tầng mạng, khả năng lưu trữ, máy vật lý và
công nghệ ảo hóa mà chỉ cần quản lý hệ điều hành và các ứng dụng
chạy trên đó. Với PaaS, phần quản lý của người dùng thu hẹp lại chỉ
còn dữ liệu và ứng dụng của họ, mọi thứ khác đều do nhà cung cấp
dịch vụ quản lý và vận hành. Đến mơ hình SaaS thì người dùng khơng
cịn quản lý bất cứ tài nguyên nào, tất cả những gì họ có là quyền truy
cập đến dịch vụ, ngay cả dữ liệu cá nhân của người dùng cũng do nhà
14
cung cấp nắm giữ và quản lý.
Ngồi ba mơ hình trên, cịn có các mơ hình khác như Database as
a service (DBaaS), Network as a service (NaaS)...
1.3.2
Phân loại theo mô hình triển khai
Public cloud
Public cloud là loại cloud cung cấp các tài nguyên (ứng dụng, lưu
trữ, ...v.v) bởi một nhà cung cấp. Các dịch vụ này có thể miễn phí
hoặc trả tiền theo mức sử dụng. Các nhà cung cấp public cloud như
Amazon AWS, Microsoft, Google, Heroku, ...
Private cloud
Private cloud là cloud được vận hành bởi một tổ chức. Tổ chức này
sẽ tự làm nhiệm vụ xây dựng, vận hành và quản lý cloud.
So sánh public cloud và private cloud
Tiểu chuẩn
Public cloud
Private cloud
Chi phí khởi đầu
Khơng có / thấp
Cao
Chi phí vận hành
Có thể dự trù
Khơng thể dự trù
Tùy biến
Khơng thể
Có thể
Sự riêng tư
Khơng
Có
Đăng nhập một lần
Khơng thể
Có thể
Mở rộng
Dễ dàng nhưng trong giới hạn
không giới hạn
15
Ngồi ra cịn có một số mơ hình khác kết hợp bởi hai mơ hình trên
như Community cloud, Hybrid cloud.
1.4
Openstack
1.4.1
Khái niệm
Openstack là một bộ công cụ để tạo ra môi trường điện tốn đám
mây sử dụng các cơng nghệ có sẵn trên nền tảng Linux. OpenStack
khơng địi hỏi các thiết bị phần cứng, phần mềm chuyên dụng, nó có
khả năng tương thích với các hệ thống đã tồn tại và các công nghệ
từ bên thứ ba. OpenStack được thiết kế để tự động quản lý nguồn tài
ngun tính tốn, nó có thể làm việc với các cơng nghệ ảo hóa phổ
biến cũng như hệ thống tính tốn hiệu năng cao.
OpenStack thường được 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 (PasS,
SaaS, ...)
• phịng IT hoạt động như một nhà cung cấp dịch vụ cloud cho
các đơn vị kinh doanh, các nhóm dự án.
• xử lý dữ liệu lớn (big data) với các cơng cụ như Hadoop
• thay đổi tài ngun dựa theo yêu cầu cho các website và ứng
dụng
16
• các mơi trường tính tốn hiệu năng cao địi hỏi xử lý các công
việc đa dạng và liên tục, cường độ cao.
1.4.2
Cấu tạo
OpenStack là sự kết hợp của nhiều công nghệ, giải pháp đã 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 những 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 giúp chống hiện
tượng dịch vụ đổ vỡ hàng loạt.
• Có khả năng khơi phục: dễ dàng phân tích, debug, điều chỉnh.
• Dùng các tiêu chuẩn mở: giúp loại bỏ các nguy cơ tiềm ẩn, tạo cơ
hội để kết hợp với các ngành khác như điện tốn di động, phân
tích kinh doanh.
17
Hình 1.5: Sơ đồ tương tác của các dịch vụ trong OpenStack
Sơ đồ trên biểu diễn sự tương tác giữa các dịch vụ thành phần
của OpenStack, các vòng tròn biểu diễn các dịch vụ cung cấp bởi
OpenStack, các hình chữ nhật là các thành phần bên ngồi, khơng
được bảo trì bởi dự án OpenStack.
Mọi service của OpenStack tương tác với một hàng đợi (RabbitMQ,
Qpid) và một database (MySQL, PostgreSQL). Nova-api, identity ser18
vice, và image service là các service độc lập, không dựa vào các cơng
nghệ bên ngồi.
Các thành phần của OpenStack có thể được thay thế bởi nhiều giải
pháp tương ứng. Dưới đây là bảng các công nghệ và các giải pháp đã
triển khai để phục vụ cơng nghệ đó
Cơng nghệ
Các chương trình đã hỗ trợ
Hàng đợi thơng điệp RabbitMQ, Qpid, ZeroMQ
iSCSI back-end
LVM+IET, LVM+tgt,NetApp, Xen Storage
Manager, Ceph SAN , NexentaStor, Sheepdog
Cơ sở dữ liệu
MySQL, PostgreSQL, sqlite
Web server
Apache, Nginx
Session cache
memcache, MySQL, PostgreSQL, sqlite
Openstack bao gồm các dịch vụ chuyên biệt như Compute, Dashboard,
Networking, Storage đảm nhiệm những cơng việc riêng. Ngồi ra nó có
các dịch vụ được dùng trong cả ba tầng tính tốn, lưu trữ và mạng.
Những dịch vụ này giúp việc cài đặt và vận hành cloud dễ dàng hơn,
chúng bao gồm: dịch vụ xác thực, quản lý file ảnh, và một giao diện
19
(API) giúp liên kết các thành phần của OpenStack với nhau cũng như
với các hệ thống bên ngoài để cung cấp một trải nghiệm thống nhất
cho người dùng khi họ sử dụng các tài nguyên cloud khác nhau.
1.4.3
OpenStack Compute
OpenStack compute cung cấp và quản lý các máy ảo. Nó cung cấp
tài ngun tính tốn qua các API cho lập trình viên xây dựng ứng
dụng cloud và qua giao diện web cho người dùng cũng như người quản
lý. Compute sử dụng các công nghệ hypervisor phổ biến như KVM,
XenServer, hay Linux Container (LXC) nếu cần thiết. Bên cạnh hỗ trợ
các hypervisor khác nhau, OpenStack Compute còn hỗ trợ kiến trúc
ARM và các kiến trúc phần cứng khác. Compute dựa vào 1 driver ảo
hóa để quản lý máy ảo, mặc định là libvirt, được dùng để quản lý
KVM. Compute đưa ra khái niệm về khuôn mẫu cho các máy ảo. Mỗi
khuôn mẫu định nghĩa lượng RAM và kích thước ổ cứng. Khi máy ảo
chạy với một khuôn mẫu cụ thể, Openstack Compute điều chỉnh kích
thước đĩa ảnh cho phù hợp với khn đưa ra và cấp CPU, RAM theo
yêu cầu.
1.4.4
OpenStack Storage
OpenStack đã hỗ trợ Object Storage và Block Storage, với nhiều
lựa chọn cài đặt tùy theo yêu cầu sử dụng.
20