Skip to the content.

Kiến trúc hệ thống của Cinder

Cinder thường được cài trên một hoặc nhiều node.

Cinder sử dụng một SQL database tập chung mà được chia sẻ cho tất cả các thành phần của Cinder.

Các thành phần của Cinder

Sơ đồ dưới đây mô tả qua về các thành phần của Cinder và giao tiếp giữa chúng:

Instance và disk

Boot source

Ephemeral disk

Volume disk

Luồng hoạt động của các thành phần trong Cinder khi tạo Volume

Các bước khi tạo máy ảo:

  1. Client gửi yêu cầu tạo volume thông qua REST API hoặc CLI openstack-client
  2. cinder-api xử lý việc xác nhận yêu câu, khi được xác nhận, nó gửi tin nhắn vào hàng đợi AMQP.
  3. cinder-volume lấy tin nhắn từ hàng đợi, gửi tin nhắn cho cinder-scheduler để quyết định backend storage driver nào sẽ được sử dụng để tạo volume.
  4. cinder-scheduler lấy tin nhắn từ hàng đợi, tạo ra danh mục các backend theo các tiêu chí phù hợp như dung lượng còn lại, kích thước volume, loại volume,….
  5. cinder-volume nhận tin nhắn phản hồi từ cinder-scheduler trong hàng đợi; tạo lần lượt volume trên các backend trong danh sách vừa nhận cho đến khi tạo volume thành công.
  6. Cinder backend driver giao tiếp với backend để tạo volume.
  7. cinder-volume thu thập metadata và thông tin về kết nối của volume và gửi đến hàng đợi
  8. cinder-api nhận phản hồi từ hàng đợi và trả về thông tin về volume được tạo
  9. Client nhận thông tin bao gồm trạng thái của yêu cầu tạo, volume UUID(nếu thành công), và nhiều thông tin khác.

Luồng hoạt động các thành phần trong Cinder khi gán volume cho máy ảo.

  1. CLient gửi yêu cầu gán máy ảo thông qua Nova REST API.
  2. nova-api xác thực yêu cầu, người dùng, khi xác thực xong, thực hiện yêu cầu đến cinder-api để lấy thông tin kết nối cho volume được chỉ định.
  3. cinder-api xác thực yêu cầu và người dùng, khi xác thực xong, gửi một tin nhắn đến hàng đợi.
  4. cinder-volume đọc tin nhắn từ hàng đợi và gửi đến driver phụ trách volume đó.
  5. Driver chuẩn bị volume cho quá trình gán cho máy ảo.
  6. cinder-volume gửi thông tin phản hồi đến cinder-api thông qua hàng đợi.
  7. cinder-api đọc thông tin phản hồi từ cinder-volume, gửi thông tin kết nối đến Nova.
  8. Nova tạo kết nối đến lưu trữ với thông tin mà cinder trả về.
  9. Nova chuyển volume đến hypervisor, để gán vào máy ảo như một block device ảo hoặc thật.

Nguồn tài liệu: