Trong bài này
Tóm tắt
- OpenStack là tập hợp các dịch vụ mã nguồn mở, mỗi dịch vụ có API riêng, cùng điều phối compute, storage và mạng của trung tâm dữ liệu để cung cấp IaaS.
- Dự án bắt đầu năm 2010 từ NASA (phần lưu trữ) và Rackspace (phần compute và mạng). Bản phát hành đầu tiên có tên mã Austin.
- Sáu thành phần hay gặp nhất là Keystone, Nova, Cinder, Neutron, Glance và Swift. Một cụm tối thiểu theo tài liệu upstream cần Keystone, Glance, Placement, Nova và Neutron.
- Ưu điểm chính là kiến trúc mô-đun, mở rộng theo chiều ngang, trung lập về nhà cung cấp và chạy trên phần cứng phổ thông. Phần tiết kiệm chi phí phụ thuộc vào đội vận hành.
OpenStack xuất hiện trong gần như mọi cuộc trao đổi về Private Cloud, và gần đây xuất hiện nhiều hơn vì nhiều doanh nghiệp đang tìm phương án thay thế VMware. Bài này là phần đầu của loạt bài về OpenStack: nó bắt đầu từ đâu, gồm những thành phần nào, và vì sao doanh nghiệp chọn nó. Bạn sẽ có đủ khung để đọc tiếp phần kiến trúc và để đặt đúng câu hỏi khi đánh giá.
OpenStack giải quyết bài toán gì
Một trung tâm dữ liệu có máy chủ, thiết bị lưu trữ và switch. Thiếu một lớp điều phối, mỗi lần cấp một máy ảo là một chuỗi thao tác tay trên từng thiết bị. OpenStack là lớp điều phối đó: một tập hợp các mô-đun phần mềm mã nguồn mở hoạt động cùng nhau để gom tài nguyên compute, storage và mạng thành các pool, rồi cấp phát và quản lý chúng qua API với một cơ chế xác thực chung.
Kết quả là hạ tầng được cung cấp như một dịch vụ (IaaS). Quản trị viên kiểm soát toàn bộ tài nguyên trong trung tâm dữ liệu; người dùng tự tạo máy ảo, ổ đĩa và mạng qua giao diện web hoặc API mà không cần ai thao tác trên phần cứng. Cùng một bộ phần mềm có thể dựng Private Cloud, Public Cloud hoặc Hybrid Cloud, nên OpenStack thường được xem là lựa chọn thay thế cho các nền tảng cloud quy mô lớn như AWS, Google Cloud và Azure khi doanh nghiệp muốn chạy trên hạ tầng của mình.
OpenStack chạy trên Linux. Tổ chức đã vận hành máy chủ Linux trong trung tâm dữ liệu không phải đổi hệ điều hành hay thay đội vận hành để dùng nó.
Nguồn gốc: NASA và Rackspace, 2010
Năm 2010, NASA cần một hạ tầng có khả năng mở rộng cho các dự án nghiên cứu khoa học. Rackspace, một nhà cung cấp dịch vụ hosting, đang xây dựng nền tảng cloud của riêng mình. Hai bên đang làm những việc tương tự nhau: Rackspace xây các thành phần compute và mạng, NASA xây các thành phần lưu trữ. Dù chưa từng làm việc cùng nhau, cả hai chọn cùng ngôn ngữ, cùng framework, cùng kiến trúc thiết kế, và thậm chí dùng cùng loại phần cứng mạng.
Hai bên quyết định gộp công sức. Vài tuần sau, OpenStack ra đời dưới dạng một dự án mã nguồn mở với mục tiêu cạnh tranh với các giải pháp độc quyền. Bản phát hành đầu tiên có tên mã Austin. Từ đó dự án phát triển qua một cộng đồng nhà phát triển, người đóng góp và người dùng trên toàn thế giới, thay vì thuộc về một công ty.
Chi tiết này quan trọng với người đánh giá: OpenStack không phải sản phẩm của một hãng. Không có một nhà cung cấp nào có thể đổi mô hình license hoặc ngừng dự án.
Sáu thành phần cốt lõi
Mỗi dịch vụ trong OpenStack phụ trách một loại tài nguyên và có API riêng. Sáu dịch vụ sau xuất hiện trong hầu hết các cụm production:
| Dịch vụ | Vai trò | Phụ trách |
|---|---|---|
| Keystone | Identity | Xác thực và phân quyền. Mọi dịch vụ khác đều kiểm tra token qua Keystone trước khi cấp tài nguyên. |
| Nova | Compute | Cấp máy ảo theo yêu cầu và quản lý tài nguyên compute của cụm. |
| Cinder | Block Storage | Ổ đĩa block bền vững gắn vào máy ảo, tồn tại độc lập với vòng đời máy ảo. |
| Neutron | Networking | Tạo và quản lý mạng ảo, kết nối giữa các máy ảo và ra mạng bên ngoài. |
| Glance | Image | Lưu và quản lý image hệ điều hành để tạo máy ảo. Người dùng tạo, chia sẻ và triển khai nhiều phiên bản hệ điều hành từ cùng một kho. |
| Swift | Object Storage | Lưu dữ liệu phi cấu trúc dưới dạng object, có khả năng mở rộng và dự phòng cao. |
Tài liệu cài đặt của OpenStack mô tả một cụm tối thiểu gồm Keystone, Glance, Placement, Nova và Neutron, sau đó mới thêm Horizon (dashboard) và Cinder. Hai cái tên chưa có trong bảng trên:
- Placement theo dõi tài nguyên còn trống trên từng node để Nova chọn chỗ đặt máy ảo. Dịch vụ này được tách ra từ Nova và là bắt buộc trong các bản gần đây.
- Horizon là giao diện web. Quản trị viên và người dùng làm phần lớn thao tác hằng ngày ở đây, nhưng mọi thứ Horizon làm được đều làm được qua API.
Lưu ý Không cụm nào cài tất cả dịch vụ. Tài liệu upstream nói rõ bạn có thể cài một vài hay toàn bộ dịch vụ tùy nhu cầu. Ví dụ, Ceph thường được dùng làm backend cho Cinder (ổ đĩa RBD) và lưu image của Glance, còn RADOS Gateway của Ceph cung cấp giao diện object storage tương thích Swift và S3 thay cho Swift. Danh sách dịch vụ cần cài là một quyết định thiết kế, không phải mặc định.
Vì sao doanh nghiệp chọn OpenStack
Bài gốc nêu bốn lợi ích. Dưới đây là cùng bốn điểm đó, viết lại kèm điều kiện để chúng đúng.
Kiến trúc mô-đun. Mỗi dịch vụ độc lập và nói chuyện với nhau qua API, nên bạn chọn thành phần theo nhu cầu và thay backend bên dưới (ví dụ storage, mạng) mà không đụng vào các dịch vụ còn lại. Đổi lại, bạn phải hiểu từng thành phần để chọn đúng.
Mở rộng theo chiều ngang. Kiến trúc phân tán cho phép thêm node để tăng năng lực. Một cụm OpenStack nhỏ nhất có thể chỉ vài node; các cụm lớn nhất hiện nay quản lý hàng nghìn đến hàng chục nghìn hypervisor. Cùng một bộ phần mềm phục vụ cả hai đầu dải quy mô, nhưng cách thiết kế control plane ở hai đầu rất khác nhau.
Trung lập về nhà cung cấp. OpenStack tích hợp với nhiều công nghệ và công cụ bên thứ ba, từ hypervisor, storage đến thiết bị mạng. Doanh nghiệp tự chọn phần cứng và không bị gắn với một hãng.
Chi phí. OpenStack chạy trên phần cứng phổ thông và không có phí license phần mềm. So với giải pháp cloud độc quyền, phần tiết kiệm nằm ở license và ở việc không phụ thuộc một nhà cung cấp.
Giới hạn Không có phí license không có nghĩa là không có chi phí. Phần chi phí chuyển sang đội vận hành: người hiểu Linux, mạng, storage và chính OpenStack. Doanh nghiệp chưa có đội này cần tính chi phí đào tạo hoặc đối tác vận hành vào bài toán trước khi so sánh với VMware hay public cloud.
Điều cần nhớ khi đánh giá
Ba câu hỏi nên trả lời được sau bài này, trước khi đi vào kiến trúc:
- Bạn cần dịch vụ nào? Bắt đầu từ cụm tối thiểu (Keystone, Glance, Placement, Nova, Neutron), thêm Cinder nếu máy ảo cần ổ đĩa bền vững, thêm Horizon nếu người dùng cần giao diện web. Mỗi dịch vụ thêm vào là thêm một thứ để vận hành.
- Backend bên dưới là gì? OpenStack điều phối, không tự lưu dữ liệu hay chuyển gói tin. Storage và mạng vật lý là quyết định riêng và ảnh hưởng trực tiếp đến hiệu năng.
- Ai vận hành? Mã nguồn mở cho bạn toàn quyền, và cũng đặt toàn bộ trách nhiệm lên đội của bạn hoặc đối tác bạn chọn.
Đọc tiếp: kiến trúc microservice
Bài này mới trả lời OpenStack là gì và gồm những gì. Phần 2 đi vào cách các dịch vụ được chia nhỏ thành process, nói chuyện với nhau qua message queue và API, và vì sao thiết kế đó cho phép mở rộng từng thành phần riêng lẻ. Đọc tại Kiến trúc microservice của OpenStack.
Nếu đang cân nhắc OpenStack cho Private Cloud hay để thay VMware, bạn có thể đặt lịch đánh giá với kỹ sư CloudMaster. Chúng tôi xem tải thật và hạ tầng đang có, rồi nói rõ phần nào phù hợp và phần nào chưa.

