Архитектура

Содержание

Техническая архитектура

На рисунке выше показаны примерные приложения для трёх поддерживаемых типов хранилищ:

  • Блочное хранилище представлено синим приложением, к которому подключён том с режимом ReadWriteOnce (RWO). Приложение может читать и записывать данные в том RWO, при этом Ceph управляет вводом-выводом.
  • Общая файловая система представлена двумя фиолетовыми приложениями, которые совместно используют том с режимом ReadWriteMany (RWX). Оба приложения могут одновременно активно читать и записывать данные в том. Ceph обеспечивает безопасную защиту данных для нескольких писателей с помощью демона MDS.
  • Объектное хранилище представлено оранжевым приложением, которое может читать и записывать данные в бакет с помощью стандартного S3 клиента.

Ниже пунктирной линии на диаграмме компоненты разделены на три категории:

  • Rook operator (синий слой): оператор автоматизирует конфигурацию Ceph
  • CSI plugins and provisioners (оранжевый слой): драйвер Ceph-CSI обеспечивает создание и монтирование томов
  • Ceph daemons (красный слой): демоны Ceph запускают основную архитектуру хранилища. Подробнее о каждом демоне см. в Глоссарии.

Блочное хранилище
На диаграмме выше процесс создания приложения с томом RWO следующий:

  • (Синее) приложение создаёт PVC для запроса хранилища.
  • PVC определяет класс хранения Ceph RBD (sc) для создания хранилища.
  • K8s вызывает provisioner Ceph-CSI RBD для создания образа Ceph RBD.
  • kubelet вызывает CSI плагин RBD для монтирования тома в приложении.
  • Том становится доступен для чтения и записи.
  • Том ReadWriteOnce может быть смонтирован только на одном узле одновременно.

Общая файловая система
На диаграмме выше процесс создания приложений с томом RWX следующий:

  • (Фиолетовое) приложение создаёт PVC для запроса хранилища.
  • PVC определяет класс хранения CephFS (sc) для создания хранилища.
  • K8s вызывает provisioner Ceph-CSI CephFS для создания подтома CephFS.
  • kubelet вызывает CSI плагин CephFS для монтирования тома в приложении.
  • Том становится доступен для чтения и записи.
  • Том ReadWriteMany может быть смонтирован на нескольких узлах для использования приложением.

Объектное хранилище S3
На диаграмме выше процесс создания приложения с доступом к бакету S3 следующий:

  • (Оранжевое) приложение создаёт BucketClaim для запроса бакета.
  • Драйвер Ceph COSI создаёт бакет Ceph RGW.
  • Драйвер Ceph COSI создаёт секрет с учётными данными для доступа к бакету.
  • Приложение получает учётные данные из секрета.
  • Приложение теперь может читать и записывать данные в бакет с помощью S3 клиента.