HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TỒN THƠNG TIN
Đề tài: Openstack
Giảng viên hướng dẫn: Nguyễn Mạnh Thắng
HỌC VIỆN KỸ THUẬT MẬT MÃ
Khóa: AT14
KHOA AN TỒN THƠNG TIN
Hà Nội 10/2021
Đề tài: Openstack Swift
MỤC LỤC
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG
2
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
CC
IaaS
PaaS
SaaS
AWS
Cloud Computing
Infastructure as a Service
Platform as a Service
Software as a Service
Amazon Web Services
LỜI MỞ ĐẦU
Cloud Computing đang là chủ đề được bàn luận sôi nổi nhất hiện nay, các công
nghệ liên quan đến 'cloud' nhận được rất nhiều quan tâm từ người dùng và doanh nghiệp.
Đã có khá nhiều sản phẩm thương mại cũng như nguồn mở miễn phí được giới thiệu
cung cấp cho người dùng khả năng xây dựng các thành phần của Cloud Computing, từ hạ
tầng IaaS đến PaaS và SaaS. Tuy nhiên tất cả vẫn đang trong quá trình phát triển, sẽ rất
3
sai lầm nếu chỉ nghe theo quảng cáo từ các nhà cung cấp đó. Để có nhận xét chính xác và
chi tiết hơn về hiện trạng của các sản phẩm này, cách tốt nhất là hãy thử nghiệm chúng.
Một trong những ưu điểm của Cloud Computing là nó sử dụng hiệu quả hơn các tài
nguyên từ hệ thống vật lý và hiệu suất sử dụng năng lượng cao hơn. IaaS chính là thành
phần quan trọng nhất giúp cho Cloud Computing thực hiện được điều này. Là thành phần
quản lý hạ tầng về phần cứng, mạng và phân phối lại các tài nguyên này, IaaS chính là
phần cung cấp cho người dùng khả năng xây dựng hạ tầng cơ sở cho đám mây riêng của
họ (Private Cloud).
Trong báo cáo này nhóm xin trình bày một số thử nghiệm bước đầu về một trong
những IaaS đang được quan tâm nhất hiện nay: Openstack. Là một dự án nguồn mở được
tham gia bởi hơn 160 công ty lớn trên thế giới, Openstack mang đến cho các doanh
nghiệp khả năng xây dựng các đám mây riêng phục vụ cho công việc nội bộ hoặc lớn hơn
là đám mây để cung cấp dịch vụ liên quan tới Cloud Computing.
4
CHƯƠNG 1. CLOUD COMPUTING
1.1. Giới thiệu về “Điện toán đám mây”
Từ những năm 1950, việc xuất hiện của các máy chủ tính tốn quy mơ lớn
được triển khai tại một số cơ sở giáo dục và tập đoàn lớn đã dẫn đến bài toán về
nhu cầu “chia sẻ thời gian” và chia sẻ tài ngun tính tốn chung của các hệ thống
máy chủ. Đây là tiền đề đầu tiên của các hệ thống điện toán đám mây sau này.
Đến năm 1960, nhu cầu này được John McCarthy tổng quát hóa bằng tiên
đốn rằng “một ngày nào đó tính tốn được tổ chức như một tiện ích cơng cộng”.
Từ đó, tính chất này được sử dụng như một đặc điểm quan trọng của điện toán đám
mây. Các tài nguyên trong điện tốn đám mây như tài ngun tính tốn, lưu trữ,
ứng dụng,...được sử dụng như một dịch vụ và tạo cảm giác cho người dùng về một
nguồn cung ứng có khả năng co giãn, trực tuyến, và xem như là vô tận. Đặc tính
này có thể so sánh với các đặc tính của ngành cơng nghiệp tiêu dùng dịch vụ cơng
cộng như điện và nước. Khi sử dụng điện hay nước, người dùng không cần quan
tâm tới tài nguyên đến từ đâu, được xử lý, phân phối như thế nào, họ chỉ việc sử
dụng dịch vụ và trả tiền cho nhà cung cấp theo lượng tiêu dùng của mình.
Thuật ngữ "điện toán đám mây" xuất hiện lần đầu tiên năm 1997 trong một
bài giảng của Ramnath Chellappa. Trong đó từ "đám mây" được lấy từ lĩnh vực kỹ
thuật điện thoại tại các công ty viễn thông. Thuật ngữ này mô tả khái niệm chia sẻ
băng thông mạng thông qua dịch vụ mạng riêng ảo với giá thấp thay cho kỹ thuật
truyền tải điểm điểm vẫn được sử dụng trong quá khứ. Kỹ thuật này giúp cho các
công ty viễn thông sử dụng hạ tầng băng thông mạng hiệu quả hơn. Điện toán đám
mây mở rộng khái niệm này qua việc cho phép chia sẻ cả tài nguyên máy chủ vật
lý bằng việc cung cấp các máy chủ ảo.
Amazon bắt đầu phát triển sản phẩm để cung cấp điện toán đám mây cho
khách hàng và tung ra dịch vụ Web Amazon (AWS) như một tiện ích máy tính
trong năm 2006 đánh dấu việc thương mại hóa điện tốn đám mây. Kiến trúc điện
tốn đám mây đã giúp Amazon tối ưu hóa chi phí đầu tư máy chủ với việc cho
phép hệ thống được sử dụng ít nhất 10% năng lực tài nguyên tại mọi thời điểm.
Trong năm 2007, Google, IBM và một số trường đại học bắt tay vào nghiên
cứu dự án điện tốn đám mây với quy mơ lớn. Vào đầu năm 2008, Eucalyptus
5
được giới thiệu là nền tảng điện toán đám mây mã nguồn mở đầu tiên, tương thích
với API của AWS, cho phép triển khai các đám mây riêng tư. Cũng vào đầu năm
2008, OpenNebula tài trợ dự án kho lưu trữ và trở thành phần mềm mã nguồn mở
đầu tiên triển khai đám mây riêng, đám mây lai và liên đồn các đám mây. Tính
tới thời điểm hiện tại, có rất nhiều các sản phẩm điện toán đám mây được đưa ra
như Google App Engine, Microsoft Azure, Nimbus,...
Điện toán đám mây (cloud computing) là một vấn đề đang rất được quan
tâm nghiên cứu. Tuy nhiên, nó khơng phải là một sự phát triển mới mang tính cách
mạng. Thực ra nó là một sự tiến hóa đã diễn ra trong suốt một vài thập kỷ trước khi
phát triển bùng nổ và đạt thành tựu như hiện nay. Xu thế hướng tới điện toán đám
mây bắt đầu vào cuối những năm 80 với những khái niệm về điện toán lưới (grid
computing). Điện toán lưới, phổ biến với Globus Aliance vào năm 2003, giúp cho
việc phối hợp hoạt động của các hệ thống tính tốn nằm phân tán với nhau về mặt
địa lý trở nên dễ dàng hơn. So với công nghệ ra đời trước là máy tính cụm (cluster
computing), điện tốn lưới có phạm vi phân tán và hoạt động rộng hơn, mỗi một
cluster có thể trở thành một thành phần tính tốn (node) trong hệ thống lưới. Cơng
nghệ lưới khơng địi hỏi các thành phần phải có sự tương đồng với nhau về cấu
trúc, năng lực xử lý. Có thể xem môi trường lưới là một tập hợp rộng lớn các tài
ngun tính tốn và có cấu trúc phân tán, khơng đồng nhất, mỗi nguồn tài nguyên
có thể do một tổ chức riêng biệt quản lý. Người dùng sẽ thấy môi trường lưới như
6
một máy chủ ảo khổng lồ với hệ thông phần cứng và hệ điều hành bên dưới được
ảo hóa bởi một hệ thống trung gian (middleware). Tuy nhiên, chính từ việc có một
hạ tầng hỗn tạp nên hệ thống trung gian của một lưới tính tốn thường rất phức tạp
và điều này khiến cho các thao tác tạo lập, triển khai và quản lý một dịch vụ trên
môi trường lưới gặp nhiều khó khăn.
Vào những năm 90, khái niệm ảo hóa được mở rộng, vượt khỏi phạm vi các
máy chủ ảo sang những cấp độ cao hơn của sự trừu tượng hóa, đầu tiên đó là nền
tảng ảo (virtual platform), và tiếp đó là ứng dụng ảo (virtual application). Điện toán
theo nhu cầu (utility computing) cung cấp các máy cụm (cluster) theo yêu cầu để
làm nền tảng ảo cho các ứng dụng.
Và tiếp ngay sau đó là dịch vụ ứng dụng (software as a service – SaaS) ra
đời và phổ biến trong năm 2001, cung cấp cho người sử dụng các dịch vụ phần
mềm trực tuyến. Điểm chung của điện tốn theo nhu cầu và SaaS là người dùng có
thể dễ dàng tùy chọn định mức sử dụng của mình và cũng chỉ phải trả phí cho định
mức này mà thơi.
Khái niệm điện tốn đám mây (cloud computing) được phát triển từ điện
toán lưới, điện toán theo nhu cầu và SaaS. Trong mơi trường đám mây, các tài
ngun điện tốn như máy chủ, có thể được định hình động hoặc được cắt nhỏ từ
cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng tiếp nhận tải công việc. Thế mạnh
của hệ thống đám mây nằm ở khả năng quản lý cơ sở hạ tầng cùng với sự trưởng
thành và tiến bộ của cơng nghệ ảo hóa để quản lý và sử dụng tốt hơn các tài
nguyên vật lý thơng qua sự tự động hóa việc cung cấp, tạo bản sao, cân bằng tải
công việc, giám sát và xử lý yêu cầu thay đổi hệ thống.
Các ứng dụng chạy trên môi trường đám mây sẽ nằm tại các trung tâm dữ
liệu có tính mở rộng rất lớn, trong đó các tài ngun điện tốn có thể được cung
cấp động và được chia sẽ để đạt được hiệu quả về kinh tế, và có thể được truy cập
từ bất cứ đâu thông qua các thiết bị được kết nối mạng. Sự phổ biến của các thiết bị
di động thông minh, kết nối không dây tốc độ cao và các giao diện Web 2.0 phong
phú đã biến mơ hình điện tốn đám mây qua mạng không chỉ trở thành hiện thực
mà còn là một cách để giảm mức độ phức tạp của hạ tầng công nghệ thông tin.
Theo Viện Tiêu Chuẩn và Cơng Nghệ (NIST): “Điện tốn đám mây tên
tiếng anh là Cloud Computing (CC) là mơ hình cho phép truy cập mạng thuận
7
tiện, theo nhu cầu đến một kho tài nguyên điện tốn dùng chung, có thể định cấu
hình: mạng, máy chủ, lưu trữ, ứng dụng,… có thể được cung cấp và thu hồi một
cách nhanh chóng với yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung
cấp dịch vụ.”
Theo Ian Foster “Điện tốn đám mây là một mơ hình điện tốn phân tán có
tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh
tính tốn, kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa và co
giãn linh động, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngồi
thơng qua Internet”.
Mơ hình điện tốn đám mây thúc đẩy tính sẵn sàng và bao gồm 5 đặc tính cơ
bản, 4 mơ hình triển khai và 3 mơ hình dịch vụ:
Hình 1 Điện tốn đám mây
8
1.1.1. Tính năng trong Cloud Computing
Các tính năng trong Cloud Computing (CC) tùy thuộc vào mơ hình triển
khai thực tế có thể khác nhau. Ví dụ trong mơ hình private cloud, tài nguyên được
sử dụng bởi một doanh nghiệp thì tính năng “On-demand service” hay “Resource
pool” sẽ khác so với các mơ hình khác.
a)
Tự phục vụ theo nhu cầu (On-demand self-service)
Khi có nhu cầu, người dùng chỉ cần gửi yêu cầu thông qua trang web cung
cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng yêu cầu của người dùng.
Người dùng có thể tự phục vụ yêu cầu của mình như tăng thời gian sử dụng server,
tăng dung lượng lưu trữ… mà không cần phải tương tác trực tiếp với nhà cung cấp
dịch vụ, mọi nhu cầu về dịch vụ đều được xử lý trên môi trường web.
b)
Truy xuất diện rộng (Broad network access)
Điện toán đám mây cung cấp các dịch vụ thông qua môi trường Internet.
Người dùng có kết nối Internet là có thể sử dụng dịch vụ. Điện tốn đám mây ở
dạng dịch vụ nên khơng địi hỏi khả năng xử lý cao ở phía client. Vì vậy, người
dùng có thể truy xuất bằng các thiết bị di động như điện thoại, PDA, lap top,…
Với điện tốn đám mây người dùng khơng bị phụ thuộc vào vị trí, có thể
truy xuất từ bất kỳ nơi nào, bất kỳ lúc nào có kết nối Internet.
c) Dùng chung tài nguyên (Resource pooling)
Nhà cung cấp dịch vụ cho phép người dùng dùng chung tài nguyên do họ
cung cấp dựa trên mơ hình “multi-tenant”. Tài ngun được phân phát rất linh hoạt
tùy theo nhu cầu của người dùng. Khi nhu cầu của một người dùng nào đó giảm
xuống, lập tức phần tài nguyên dư thừa sẽ được phục vụ cho người dùng khác. Nếu
một người dùng 4 CPU từ 7 giờ đến 11 giờ hàng ngày, một người dùng khác thuê 4
CPU tương tự 13 giờ đến 17 giờ hàng ngày thì họ có thể dùng chung 4 CPU đó.
Điện tốn đám mây dựa trên cơng nghệ ảo hóa, nên các tài nguyên đa phần
là tài nguyên ảo. Các tài nguyên ảo này sẽ được cấp phát động theo sự thay đổi nhu
cầu của từng khác hàng khác nhau. Nhờ đó mà nhà cung cấp dịch vụ có thể phục
vụ nhiều khách hàng hơn so với cách cấp phát tài nguyên tĩnh truyền thống.
9
Hình 2 Mơ hình sử dụng chung tài ngun trong điện toán đám mây
d)
Khả năng co giãn (Rapid elasticity)
Một đặc tính nổi bật của Cloud Computing là khả năng tự động mở rộng
hoặc thu nhỏ hệ thống theo yêu cầu người dùng (hệ thống sẽ tự mở rộng hoặc thu
hẹp bằng cách thêm hoặc giảm bớt tài nguyên).
Một người dùng ký hợp đồng thuê một Server gồm 4 CPU. Nếu lượng truy
cập thấp chỉ cần 1 CPU là đủ, khi đó hệ thống quản lý của nhà cung cấp dịch vụ
sẽ tự ngắt bớt 3 CPU, người dùng không phải trả phí cho 3 CPU nói trên và chúng
được đưa sang phục vụ người dùng khác. Đến khi nhu cầu tăng tức là lượng truy
cập tăng, hệ thống ngay lạp tức sẽ tự động thêm CPU vào, nếu nhu cầu vượt q 4
CPU thì người dùng trả phí theo hợp đồng đã ký với nhà cung cấp cloud
computing service.
Khả năng co giãn nhanh và linh hoạt giúp cho nhà cung cấp dịch vụ cloud
computing service tận dụng tài nguyên dư thừa phục vụ được nhiều khách hang,
người dùng giảm chi phí vì họ chỉ phải trả tiền cho những tài nguyên thực sự dùng.
e)
Điều tiết dịch vụ (Measured service)
Hệ thống điện toán đám mây tự động kiểm soát và tối ưu hóa việc sử dụng
tài nguyên. Lượng tài nguyên sử dụng có thể được theo dõi, kiểm sốt và báo cáo
một cách minh bạch cho cả hai phía nhà cung cấp dịch vụ và người sử dụng.
1.1.2. Mơ hình triển khai
Đám mây riêng
Các đám mây riêng tư tồn tại bên trong tường lửa của đơn vị và do mỗi tổ
chức tự quản lý. Chúng là các dịch vụ đám mây do chính tổ chức tạo ra và kiểm
a)
10
sốt trong nội bộ tổ chức của mình. Các đám mây riêng tư cũng cung cấp nhiều lợi
ích tương tự như các đám mây công cộng. Sự khác biệt chủ yếu là mỗi tổ chức chịu
trách nhiệm thiết lập và duy trì đám mây đó.
b)
Đám mây cơng cộng
Các đám mây cơng cộng có sẵn cho cơng chúng hoặc nhóm ngành nghề lớn
và do một tổ chức bán các dịch vụ đám mây sở hữu và cung cấp. Các tài nguyên
được cung cấp trên Internet bằng cách sử dụng các ứng dụng web từ một nhà cung
cấp bên thứ ba bên ngoài cung cấp các tài nguyên chia sẻ và gửi hóa đơn tính cước
trên cơ sở tính tốn việc sử dụng.
c)
Đám mây lai
Các đám mây lai là một sự kết hợp của đám mây công cộng và riêng tư khi
sử dụng các dịch vụ có trong cả hai vùng cơng cộng và riêng tư. Các trách nhiệm
quản lý được phân chia giữa các nhà cung cấp dịch vụ đám mây cơng cộng và
chính doanh nghiệp. Khi sử dụng một đám mây lai, các tổ chức có thể xác định các
mục tiêu và các yêu cầu của dịch vụ được tạo ra và có được chúng dựa vào sự lựa
chọn thích hợp nhất.
d)
Đám mây cộng đồng
Các đám mây cộng đồng là mơ hình trong đó hạ tầng đám mây được sử
dụng và quản lý bởi một số tổ chức cộng đồng người dùng. Các tổ chức này có đặc
thù khơng tiếp cận với các dịch vụ đám mây công cộng và chia sẻ chung một hạ
tầng điện toán đám mây để nâng cao hiệu quả đầu tư và sử dụng.
1.1.3. Mô hình dịch vụ
a)
Dịch vụ cơ sở hạ tầng IaaS (Infrastructure as a Service)
Dịch vụ IaaS cung cấp dịch vụ cơ bản bao gồm năng lực tính tốn, khơng
gian lưu trữ, kết nối mạng tới khách hàng. Khách hàng (cá nhân hoặc tổ chức) có
thể sử dụng tài nguyên hạ tầng này để đáp ứng nhu cầu tính tốn hoặc cài đặt ứng
dụng riêng cho người sử dụng. Với dịch vụ này khách hàng làm chủ hệ điều hành,
lưu trữ và các ứng dụng do khách hàng cài đặt. Khách hàng điển hình của dịch vụ
IaaS có thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng
của mình.
11
Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon. Khách hàng có
thể đăng ký sử dụng một máy tính ảo trê dịch vụ của Amazon và lựa chọn một hệ
thống điều hành (ví dụ, Windows hoặc Linux) và tự cài đặt ứng dụng của mình.
Dịch vụ nền tảng PaaS (Platform as a Service)
Dịch vụ PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển
các phần mềm, phục vụ nhu cầu tính tốn hoặc xây dựng thành dịch vụ trên nền
tảng Cloud.
Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa
(middleware), các ứng dụng chủ (application server) cùng các cơng cụ lập trình với
ngơn ngữ lập trình nhất định để xây dựng ứng dụng.
Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho khách hàng
thông qua một API riêng. Khách hàng xây dựng ứng dụng và tương tác với hạ tầng
CC thông qua API đó.
Ở mức PaaS, khách hàng khơng quản lý nền tảng Cloud hay các tài nguyên
lớp như hệ điều hành, lưu giữ ở lớp dưới. Khách hàng điển hình của dịch vụ PaaS
chính là các nhà phát triển ứng dụng (ISV).
Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép
khách hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát
triển dựa trên ngơn ngữ lập trình Java hoặc Python.
b)
Dịch vụ phần mềm SaaS (Software as a Service)
Dịch vụ SaaS cung cấp các ưng dụng hoàn chỉnh như một dịch vụ theo yêu
cầu cho nhiều khách hàng với chỉ một phiên bản cài đặt. Khách hàng lựa chọn ứng
dụng phù hợp với nhu cầu và sử dụng mà khơng quan tâm tói hay bỏ cơng sức
quản lý tài ngun tính tốn bên dưới.
Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho
doanh nghiệp mà nổi bật nhất là CRM. Các ứng dụng SaaS cho người dùng cuối
phổ biến là các ứng dụng office Online của Microsoft hay Google Docs của
Google.
c)
1.2. Các giải pháp mã nguồn mở cho mơ hình điện toán đám mây
12
1.2.1. Eucalyptus
Eucalyptus là một phần mềm nguồn mở Linux-based để triển khai “điện tốn
đám mây” với cả 2 loại hình private hay hybrid (private and public).
Eucalyptus cung cấp IaaS (Infrastructure as a Service) thuận tiện cho việc chỉ
định tài nguyên (phần cứng, dung lượng lưu trữ, và hạ tầng mạng) dựa trên yêu cầu
sử dụng.
Điểm mạnh của Eucalyptus là triển khai enterprise data centers mà không cần
quá nhiều yêu cầu về cấu hình phần cứng. Hơn nữa, Eucalyptus hỗ trợ kết nối với
dịch vụ đám mây nổi tiếng của Amazon – AWS (Amazone Web ServicesTM)
thông qua một giao diện lập trình chung.
Kiến trúc của Eucalyptus đơn giản, linh hoạt (flexible), được module hóa
(Modular) và đạt được nhiều ưu điểm như chức năng snapshot, self-service, …
1.2.2. OpenNebula
OpenNebula là bộ công cụ nguồn mở sử dụng cho private, public, và hybrid
cloud. OpenNebula hoạt động tương thích với các giải pháp của Xen, KVM,
VMWare, và mới đây là Virtual Box.
1.2.3. Nimbus
Nimbus là một dự án “điện toán đám mây” của Culumbus để cung cấp dịch vụ
IaaS (Infrastructure as a Service). Nimbus hỗ trợ triển khai 2 loại ảo hóa là Xen và
KVM.
1.2.4. Xen Cloud Platform (XCP)
XCP là một platform nguồn mở cho việc triển khai ảo hóa máy chủ và điện
tốn đám mây trên nền tảng của Xen Hypervisor.
XCP hỗ trợ nhiều Guest OS bao gồm windows và linux, hệ thống mạng và
lưu trữ cũng như các công cụ quản trị nằm trong XCP appliance.
XCP có nguồn gốc từ Citrix XenServer và được chứng nhận bản quyền bởi
GNU General Public License (GPL2).
1.2.5. AbiCloud
AbiCloud là giải pháp “điện toán đám mây” private được phát triển bởi
Abiquo cho phép người dùng có thể xây dựng mơi trường IaaS. AbiCloud hỗ trợ
các kỹ thuật ảo hóa Virtual Box, VMWare, XEN, và KVM.
13
1.2.6. OpenStack
OpenStack là 1 dự án mở cộng đồng cho việc phát triển “điện toán đám mây”
phù hợp với các nhà cung cấp (Cloud Providers) cũng như người dùng (Cloud
Customers) được phát triển bởi Rackspace hosting và Nasa.
OpenStack bao gồm 3 dự án chính: OpenStack Compute (để triển khai việc
quản lý và chỉ định tài nguyên cho các instances ảo), OpenStack Object Storage
(thực thi việc lưu trữ, backup), và OpenStack Image Service (đảm nhận việc phát
hiện, đăng ký, truyền tải dịch vụ cho các images disk ảo).
Hiện nay OpenStack đang được đánh giá là phần mềm nguồn mở xây dựng
CC mạnh nhất hiện nay với sự hỗ trợ của các hãng mãy tính lớn trên thế giới như
HP, Canonical, IBM, Cisco, Microsoft,… Đây cũng là bộ công cụ quan trọng đang
được triển khai và sẽ được trình bày chi tiết trong các phần tiếp theo.
14
CHƯƠNG 2. GIỚI THIỆU OPENSTACK & CÁC THÀNH PHẦN
2.1. Tổng quan về Openstack:
Openstack là một nền tảng phần mềm mã nguồn mở Cloud Computing, được
phát triển theo mơ hình Infrastructure as a Service (IaaS) quản lý tài nguyên hệ
thống máy tính và cung cấp tài nguyên (các server ảo và các tài nguyên khác) cho
người dùng. Nền tảng phần mềm bao gồm một nhóm các chức năng liên quan đến
nhau điều khiển xử lý các nhóm phần cứng, lưu trữ và hệ thống mạng trong data
center. Người sử dụng quản lý thông qua một dashboard dựa trên nền web, các
công cụ dịng lệnh hoặc thơng qua các API RESTful. [1]
Openstack.org là đơn vị phát hành Openstack dựa theo các điều khoản của
Giấy phép Apache.
OpenStack là một dự án chung của Rackspace Hosting và của NASA vào
năm 2010. Kể từ năm 2016, OpenStack được quản lý bởi OpenStack Foundation
(một tổ chức phi lợi nhuận) được thành lập vào tháng 9 năm 2012 để quảng bá
phần mềm OpenStack và cộng đồng người dùng và hơn 500 công ty đã tham gia
dự án.
2.1.1. Lịch
sử hình thành và phát triển
Bảng 2 - 1 Lịch sử hình thành và phát triển Openstack
Năm Thời gian cụ thể
2009
Sự kiện
Bộ mã nguồn đầu tiên được
phát triển từ nền tảng Nebula
của NASA cũng như nền
tảng Cloud Files của
Rackspace (mô hình Cloud
gốc được thiết kế bởi quản trị
viên website NASA Ames là
Megan A. Eskey, là một kiến
trúc nguồn mở có tên
OpenNASA v2.0).
Các module Cloudstack và
15
Mục tiêu
Openstack được kết hợp và
phát hành dưới dạng nguồn
mở bởi nhóm NASA Nebula
phối hợp
với Rackspace.
Rackspace Hosting và NASA
đã cùng nhau đưa ra một
sáng kiến phần mềm Cloud
nguồn mở được gọi là
OpenStack.
2010 Tháng 7
Tháng 10
SUSE công bố công khai bản
thương mại hóa đầu tiên dánh
cho các thiết bị hỗ trợ
OpenStack được cấu hình đầy
đủ dựa trên bản phát hành
OpenStack Diablo. Vào ngày
21/10, bản phát hành chính
thức đầu tiên, có tên gọi
Austin, được phát hành.
16
Nhiệm vụ của
OpenStack là "nền tảng
Cloud Computing
nguồn mở phổ biến, đáp
ứng nhu cầu của public
cloud và
private cloud bất kể quy
mơ,bằng cách đơn giản
để thực hiện và có thể
mở rộng quy mô".
Dự án Openstack nhằm
giúp các tổ chức cung cấp
dịch vụ Cloud Computing
chạy trên phần cứng tiêu
chuẩn, với kế hoạch cập
nhật phàn mềm thường
xuyên sau vài tháng
Các nhà phát triển bản UbuntuLinux đã sử dụng OpenStack
với phiên bản không được hỗ
trợ của Openstack Bexar được
phát hành cho Ubuntu 11.04
(Natty Narwhal).
Tổ chức tài trợ Ubuntu là
Canonical ngay sau đó đã giới
thiệu hỗ trợ đầy đủ cho các
OpenStack Cloud, bắt đầu với
việc phát hành Cactus của
OpenStack. OpenStack đã có
sẵn trong Debian Sid từ bản
phát hành Openstack Cactus và
bản phát hành đầu tiên của
Debian chứa phiên bản
OpenStack 2012.1 (Openstack
Essex) là Debian 7.0 (Debian
Wheezy).
2011
Tháng 8
2012
NASA đã rút khỏi OpenStack
với tư cách là thành viên đóng
góp tích cực và thay vào đó đã
đưa ra quyết định chiến lược
sử dụng Amazon web service
cho các dịch vụ cloud-based.
Redhat ra mắt bản OpenStack
phân tán của họ cũng bắt đầu
với phiên bản Openstack
Essex.
HP bắt đầu triển khai HP
Helion Public Cloud trên
17
OpenStack SUSE đã ra mắt
bản OpenStack phân tán dành
cho doanh nghiệp được hỗ trợ
thương mại dựa trên bản phát
hành Openstack Essex.
Tháng 11
Tháng 7
2013
Tháng 12
Dịch vụ kỹ thuật số của Chính
phủ
Vương
quốc
Anh
(Government Digital Service GDS) đã phát triển dựa trên
phiên bản OpenNASA v2.0 là
phiên bản Government as a
Platform
(GaaP).
NASA đã tiến hành một cuộc
kiểm toán nội bộ với lý do
thiếu tiến bộ kỹ thuật và các
yếu tố khác là lý do chính
khiến cơ quan từ bỏ tư cách là
nhà phát triển tích cực của dự
án và thay vào đó tập trung vào
việc sử dụng các Public
Cloud.
Oracle tuyên bố đã tham gia
OpenStack với tư cách là Nhà
phát triển và dự định mang
OpenStack vào trong Oracle
Solaris, Oracle Linux và nhiều
18
sản phẩm của mình.
2014
Tháng 5
Tháng 9
2015
Tháng 3
Tại Ngày hội Interop and Tech
Field,
softwaredefined networking (SDN) đã
được Avaya trình bày bằng
cách sử dụng shortest-pathbridging và OpenStack như
một mơ hình tự động, tự động
mở rộng từ data center đến
thiết bị, loại bỏ thao tác thủ
công trong việc cung cấp
dịch vụ.
HP đã công bố HP Helion và
phát hành bản OpenStack HP
Helion, bắt đầu với phiên bản
IceHouse.
Vào ngày 24/9, Oracle cũng
phát hành các phiên bản Oracle
OpenStack là sự kết hợp
Oracle Solaris và Oracle Linux
tạo ra
Openstack Icehouse
Tính đến thịi điểm này, NASA
vẫn sử dụng OpenStack Private
Cloud và có RFPs để hỗ trợ
OpenStack Public Cloud.
19
2016
2.1.2.
OpenStack Foundation là tổ
chức quản lý OpenStack.
Các phiên bản của Openstack
Bảng 2 - 2 Các phiên bản của Openstack
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Phiên bản
Openstack
Austin
Bexar
Cactus
Diablo
Essex
Folsom
Grizzly
Havana
Icehouse
Juno
Kilo
Liberty
Mitaka
Newton
15
Ocata
Hỗ trợ
16
Pike
Hỗ trợ
17
Queens
Duy trì
18
Rocky
Duy trì
19
Stein
Duy trì
20
Train
Duy trì
21
Ussuri
Phát triển
STT
Tình trạng
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Chấm dứt
Thời gian Giai đoạn tiếp
phát hành
theo
21/10/2010
03/02/2011
15/04/2011
22/09/2011
05/04/2012
27/09/2012
04/04/2013
17/10/2013
17/04/2014
16/10/2014
30/04/2015
15/10/2015
07/04/2016
06/10/2016
Ước tính khơng
22/02/2017
xác định
Ước tính khơng
30/08/2017
xác định
Hỗ trợ đến
28/02/2018
25/10/2019
Hỗ trợ đến
30/08/2018
24/02/2020
Hỗ trợ đến
10/04/2019
10/10/2020
Hỗ trợ đến
16/10/2019
16/04/2021
ước tính Duy trì ước tính
13/05/2020
13/05/2020
20
Ngày
chấm dứt
06/05/2013
06/05/2013
19/11/2013
29/03/2014
30/09/2014
02/07/2015
07/12/2015
02/05/2016
17/11/2016
10/04/2017
25/10/2017
2.2. Cấu trúc dịch vụ:
Kiến trúc các module của Openstack ứng với các tên gọi của từng dịch vụ
được cung cấp: [5]
Bảng 2 - 3 Các dịch vụ của Openstack
STT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Tên dịch vụ
Block storage (Cinder)
Compute (Nova)
Dashboard (Horizon)
Identity (Keystone)
Image (Glance)
Networking (Neutron)
Object storage (Swift)
Application Catalog (Murano)
Backup, Restore and Disaster Recovery
(Freezer)
Bare Metal (Ironic)
Clustering (Senlin)
Container Infrastructure Management
(Magnum)
Containers (Zun)
Data Processing (Sahara)
Data Protection Orchestration (Karbor)
Database (Trove)
DNS (Designate)
EC2 API compatibility
Governance (Congress)
Infrastructure Optimization (Watcher)
Key Manager (Barbican)
Load-balancer (Octavia)
Messaging (Zaqar)
Networking automation across Neutron
(Tricircle)
NFV Orchestration (Tacker)
Orchestration (Heat)
Placement (Placement)
RCA (Root Cause Analysis) (Vitrage)
21
Phân loại dịch vụ
Chính
Chính
Chính
Chính
Chính
Chính
Chính
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Mở rộng
Resource reservation (Blazar)
Search (Searchlight)
Shared File Systems (Manila)
Software Development Lifecycle
Automation (Solum)
Mở rộng
Mở rộng
Mở rộng
33
Telemetry Alarming (Aodh)
Mở rộng
34
Telemetry Data Collection (Ceilometer)
Mở rộng
35
Telemetry Event (Panko)
Mở rộng
36
Workflow (Mistral)
Mở rộng
29
30
31
32
22
Mở rộng
2.3. Các module chính được cung cấp trong Openstack:
2.3.1.
Openstack identity module
OpenStack Identity (Keystone) cung cấp một danh mục các user được ánh
xạ tới các dịch vụ Openstack để người dùng có thể truy nhập. OpenStack Identity
hoạt động như một hệ thống xác thực chung trên toàn bộ hệ thống và có thể tích
hợp với các dịch vụ có danh mục phụ trợ hiện có như Lightweight Directory
Access Protocol (LDAP) hay Pluggable authentication module (PAM). OpenStack
Identity hỗ trợ nhiều hình thức xác thực bao gồm thông tin đăng nhập tên người
dùng và mật khẩu tiêu chuẩn, hệ thống token và phương thức truy nhập của AWS
(tức là Amazon Web Services). Ngoài ra, OpenStack Identity cịn cung cấp một
danh sách có thể truy vấn của tất cả các dịch vụ được triển khai trên OpenStack
trong một khởi tạo bình thường. Người dùng và các cơng cụ của bên thứ ba có thể
xác lập tài nguyên được cấp quyền có thể truy cập thông qua OpenStack Identity.
2.3.2.
Openstack compute module
OpenStack Compute (Nova) là một module điều khiển Cloud computing, là
phần chính của hệ thống Openstack được phát triển theo mơ hình dịch vụ
Infrastructure as a Service (IaaS). OpenStack Compute được thiết kế để quản lý
và tự động tối ưu các tài nguyên máy tính cũng như có thể hoạt động với sự mở
rộng các cơng nghệ ảo hóa có sẵn bao gồm các cấu hình của bare-metal server hay
cấu hình của siêu máy tính. KVM, VMware và Xen là những lựa chọn có sẵn sử
dụng cơng nghệ hypanneror (màn hình máy ảo), cùng với công nghệ Hyper-V và
Linux container là LXC .
23
OpenStack Compute phân tán các tác vụ hoạt động độc lập và riêng biệt như sau:
Bảng 2 - 4 Các API trong Openstack Compute (Nova)
STT
1
API
nova-api
Chức năng
Tương tác giữa các API của hệ thống với người dùng
2
nova-compute
3
nova-network
Cho phép người dùng có thể tạo và thực thi các VM
instance với các API hypervisor (Libvirt KVM,
Vmware API của Vmware)
Cho phép người dùng quản lý các tác vụ liên quan đế
mạng
4
5
2.3.3.
novascheduler
novaconductor
Cho phép tối ưu các hoạt động của VM instance
Cho phép người dùng truy nhập vào các node thông qua
database
Openstack network module
OpenStack Networking (Neutron) có chức năng quản lý mạng và địa chỉ IP.
OpenStack Networking đảm bảo mạng không bị tắc nghẽn hoặc thắt cổ chai trong
khi triển khai Cloud và cung cấp cho người dùng khả năng cấu hình nội bộ và cấu
hình qua mạng Internet.
OpenStack Networking cung cấp các mơ hình mạng cho các ứng dụng hoặc
nhóm người dùng khác nhau. Các mơ hình tiêu chuẩn bao gồm các flat network
hoặc VLAN để phân tách các server với nhau và lưu lượng truyền dẫn.
OpenStack Networking quản lý địa chỉ IP, hỗ trợ cả địa chỉ IP tĩnh hoặc địa
chỉ IP động. Địa chỉ Floating IP cho phép lưu lượng truy cập được định tuyến lại
một cách linh hoạt bất kỳ tài nguyên nào trong cơ sở hạ tầng, do đó người dùng có
thể chuyển hướng lưu lượng trong q trình bảo trì hoặc trong trường hợp xảy ra
lỗi.
Người dùng có thể tạo các mạng nội bộ, điều khiển lưu lượng, thiết lập kết
nối tới các server và các thiết bị trong một hoặc nhiều mạng. Quản trị viên có thể
sử dụng các công nghệ software-defined networking (SDN) như OpenFlow để hỗ
trợ tối đa multi-tenancy và triển khai quy mô rộng. OpenStack Networking cung
cấp một framework mở rộng có thể triển khai và quản lý các dịch vụ mạng thêm
24
vào như hệ thống phát hiện xâm nhập (IDS), cân bằng tải, tường lửa và mạng riêng
ảo (VPN).
2.3.4.
Openstack storage module
Openstack storage có 2 loại lưu trữ là Block storage (Cinder) và Object
storage (Swift)
a) OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder) là một hệ thống lưu trữ block-level để sử
dụng với các OpenStack compute instance. Hệ thống block storage quản lý việc
tạo, gắn và tách các khối thiết bị trên các server. Các phân vùng block storage được
tích hợp hồn tồn vào OpenStack Compute và Dashboard cho phép người dùng
cloud quản lý lưu trữ cần thiết của người dùng. Ngoài lưu trữ trên server Linux cục
bộ, block storage có thể sử dụng các nền tảng lưu trữ bao gồm Ceph, CloudByte,
Coraid, EMC (ScaleIO, VMAX, VNX and XtremIO), GlusterFS, Hitachi Data
Systems, IBM Storage (IBM DS8000, Storwize family, SAN Volume Controller,
XIV Storage System, and GPFS), Linux LIO, NetApp, Nexenta, Nimble Storage,
Scality, SolidFire, HP (StoreVirtual, 3PAR StoreServ families) và Pure Storage.
Block storage cũng được sử dụng cho các trường hợp phức tạp liên quan tới hiệu
suất như lưu trữ cơ sở dữ liệu, hệ thống file mở rộng hoặc cung cấp cho server
quyền truy cập vào block-level storage. Sự quản lý snapshot cung cấp hiệu quả
chức năng để sao lưu dữ liệu được lưu trữ trên phân vùng block storage. Snapshot
có thể được khơi phục hoặc tạo mới một phân vùng block storage.
b) OpenStack Object Storage (Swift)
OpenStack Object Storage (Swift) là một hệ thống lưu trữ dự phịng có thể
mở rộng. Các object và file được ghi trên nhiều ổ đĩa trải đều các server trong data
center với phần mềm OpenStack chịu trách nhiệm đảm bảo sao chép và tồn vẹn
dữ liệu thơng qua cluster. Các cluster lưu trữ phân bố đều khi thêm các server mới.
Nếu server hoặc ổ cứng bị lỗi, OpenStack sẽ sao chép nội dung của nó từ các node
hoạt động khác sang các vị trí mới trong cluster. Vì OpenStack sử dụng tính logic
25