Giới thiệu về dịch vụ Openstack Block Storage - Cinder
Openstack Block Storage - Cinder là gì?
Cinder là code name của dịch vụ Openstack Block Storage, cung cấp thiết bị block storage theo dạng volume cho các máy ảo, cho ironic bare metal host, các container,… Cách mà lưu trữ được phân phối và sử dụng phụ thuộc vào một hoặc nhiều Block Storage driver(ví dụ như LVM, NFS, SAN,…)
Cinder cung cấp API đáp ứng nhu cầu tự phục vụ của người dùng, do đó có thể sử dụng Cinder dễ dàng mà không cần quá nhiều kiến thức về lưu trữ.
Các chức năng chính
- Cung cấp tài nguyên dạng persistent block storage(volume) cho các máy ảo, do đó có thể gỡ volume từ máy ảo này và gán vào một máy ảo khác mà không mất dữ liệu.
- Các volume có thể tồn tại độc lập với các máy ảo, tức là khi máy ảo bị xóa, volume vẫn có thể tồn tại.
- Phân chia tài nguyên lưu trữ thành các khối gọi là Cinder volume.
- Cung cấp các API như là tạo, xóa, backup, restore, tạo snapshot, clone volume và nhiều hơn nữa. Những API này thực hiện bởi các backend lưu trữ mà được cinder hỗ trợ.
- Các kiến trúc plugin drive cho phép nhiều lựa chọn làm backend storage hoặc multiple backend.
Một số mục tiêu của dự án.
- Kiến trúc dựa theo các thành phần: dễ dàng thêm thành phần, chức năng mới.
- Highly Available: tỉ lệ % công việc được chia nhỏ
- Fault-Tolerant: Cô lập các tiến trình để tránh lỗi một tiến trình làm lỗi các tiến trình khác.
- Recoverable: dễ dàng chuẩn đoán, sửa khi có lỗi.
- Open Standards: Cộng đồng API mở.
Các thành phần trong Cinder
Dịch vụ Openstack Block Storage có các thành phần sau:
- cinder-api: Nhận các API request và gửi chúng về cinder-volume để thực hiện.
- cinder-volume: Tương tác trực tiếp với dịch vụ Openstack Block Storage, và các tiến trình như cinder-scheduler. Nó cũng tương tác với các tiến trình này qua message queue. cinder-volume sử lý các yêu cầu đọc và ghi được gửi đến dịch vụ Block Storage. Nó có thể tương tác với nhiều loại lưu trữ thông qua kiến trúc driver.
- cinder-scheduler daemon: Chọn node cung cấp lưu trữ để tạo volume. Khá giống với nova-scheduler.
- cinder-backup daemon: dịch vụ này cung cấp sao lưu bất kì loại volume nào đến một nhà cung cấp lưu trữ sao lưu. Nó cũng có thể tương tác với nhiều nhà cung cấp lưu trữ khác nhau.
- Message queue: Định tuyến thông tin giữa các dịch vụ của Block Storage.
Nguồn tài liệu:
- https://github.com/hungnt1/Openstack_Research/blob/master/Cinder/1.%20Introduction-cinder.md
- https://docs.openstack.org/cinder/train/install/get-started-block-storage.html