ĐỒ Á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 toá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
1.4 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
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 . . . . . . . . . . . . . . . . . . . . . 32
2.5 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
2.6 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
3.3 Trên nhiều node . . . . . . . . . . . . . . . . . . . . . . 64
4 Kết quả và đánh giá 66
4.1 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Cloud OpenStack . . . . . . . . . . . . . . . . . 66
4.1.2 Salt . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Đá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 nguyên, đồ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à hoà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, luôn 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 toá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 nguyên 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 yê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: luôn 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 nguyên: Tài nguyên đ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 nguyên 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 nguyên, tính toán giá thành.
Ví dụ về mô hình điện toá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
• Ngoà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 Phân loại
1.3.1 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 yê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ó toà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 toá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 nguyên đó.
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. Toà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ý.
Ngoà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
Ngoà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 toá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
nguyên tính toá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 toá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 nguyên dựa theo yêu cầu cho các website và ứng
dụng
16
• 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 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 toá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 ngoà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 ser-
18
vice, và image service là các service độc lập, không dựa vào các công
nghệ bên ngoà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. Ngoài ra nó có
các dịch vụ được dùng trong cả ba tầng tính toá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 nguyên tính toá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 khuôn đư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