[ English | Deutsch | русский | English (United Kingdom) ]

Архитектура хранения данных

OpenStack имеет несколько областей хранения, которые следует учитывать:

  • Блочное хранилище (cinder)

  • Объектное хранилище (swift)

  • Хранение образов (glance)

  • Временное хранение (nova)

  • Shared Filesystems storage (manila)

Блочное хранилище (cinder)

Служба блочного хранилища (cinder) управляет дисками на устройствах хранения в среде. В рабочем окружении устройство представляет хранилище через протокол хранения (например, NFS, iSCSI или Ceph RBD) в сети хранения (br-storage) и API управления хранилищем в сети управления (br-mgmt). Инстансы подключаются к дискам через сеть хранения гипервизором на вычислительном хосте.

На следующей схеме показано, как блочное хранилище подключается к инстансам.

../../_images/production-storage-cinder.png

На схеме показаны следующие шаги.

Диск создается службой cinder-volume с использованием соответствующего cinder driver. Диск создается с использованием API, который предоставляется в сети управления.

После создания диска служба nova-compute подключает гипервизор вычислительного узла к диску через сеть хранения данных.

После подключения гипервизора к диску он представляет диск как локальное аппаратное устройство для инстанса.

Важно

LVMVolumeDriver разработан как реализация стандартного драйвера, которую мы не рекомендуем для использования в рабочем окружении. Серверная часть хранилища LVM представляет собой решение с одним сервером, которое не обеспечивает возможности высокой доступности. Если сервер становится недоступным, то все диски, управляемые службой cinder-volume, работающей на этом сервере, становятся недоступными. Обновление пакетов операционной системы (например, ядра или iSCSI) на сервере приводит к сбоям в подключении к хранилищу, поскольку служба iSCSI (или хост) перезапускается.

Из-за ограничения с подключением контейнера iSCSI, необходимо развернуть службу cinder-volume непосредственно на физическом хосте (не в контейнере) при использовании бекэндов хранения, подключаемых через iSCSI. Сюда входит LVMVolumeDriver и многие драйверы для коммерческих устройств хранения.

Примечание

Служба cinder-volume не работает в конфигурации высокой доступности. Когда служба cinder-volume настроена на управление дисками на одном и том же бекэнде с нескольких хостов или контейнеров, одна служба планируется для управления жизненным циклом диска, пока для этого не будет назначена альтернативная служба. Это назначение можно выполнить с помощью cinder-manage CLI tool. Эта конфигурация может измениться, если будет реализована cinder volume active-active support spec.

Объектное хранилище (swift)

Служба Object Storage (Swift) реализует высокодоступное, распределенное и в конечном итоге согласованное хранилище объектов/BLOB-объектов, доступное по протоколу HTTP/HTTPS.

Следующая схема иллюстрирует, как осуществляется доступ к данным и их репликация.

../../_images/production-storage-swift.png

Клиенты получают доступ к сервису swift-proxy через балансировщик нагрузки в сети управления (br-mgmt). Сервис swift-proxy взаимодействует со сервисами Account, Container и Object на хостах Object Storage через сеть хранения (br-storage). Репликация между хостами Object Storage выполняется через сеть репликации (br-repl).

Хранение образов (glance)

Службу образов (glance) можно настроить для хранения образов на различных внутренних хранилищах, поддерживаемых драйверами glance_store.

Важно

При использовании файлового хранилища служба образов не имеет собственного механизма для репликации образа между хостами службы образов. Мы рекомендуем использовать общий бекэнд хранилища (через монтирование файловой системы), чтобы гарантировать, что все службы glance-api имеют доступ ко всем образам. Это предотвращает потерю доступа к образам при потере хоста инфраструктуры (управляющей плоскости).

На следующей схеме показано взаимодействие между службой образов, устройством хранения и службой nova-compute при создании инстансов.

../../_images/production-storage-glance.png

На схеме показаны следующие шаги.

1

Когда клиент запрашивает образ, служба glance-api обращается к соответствующему хранилищу на устройстве хранения через сеть хранения (br-storage) и загружает его в свой кэш. Когда то же образ запрашивается снова, оно предоставляется клиенту напрямую из кэша.

2

Когда на вычислительном хосте запланировано создание инстанса, служба nova-compute запрашивает образ у службы glance-api по сети управления (br-mgmt).

3

После извлечения образа служба nova-compute сохраняет образ в своем собственном кэше образов. Когда создается другой инстанс с тем же образом, образ извлекается из локального базового кэша образов.

Временное хранение (nova)

Когда типы инстансов в вычислительной службе настроены на предоставление инстансам корневых или временных дисков, служба nova-compute управляет этими распределениями, используя свое местоположение хранилища временных дисков.

Во многих средах временные диски хранятся на локальных дисках вычислительного хоста, но для рабочих окружений мы рекомендуем настроить вычислительные хосты на использование общей подсистемы хранения. Общая подсистема хранения позволяет быстро выполнять динамическую миграцию инстансов между вычислительными хостами, что полезно, когда администратору необходимо выполнить обслуживание вычислительного хоста и он хочет его эвакуировать. Использование общей подсистемы хранения также позволяет восстанавливать инстансы, когда вычислительный хост отключается. Администратор может эвакуировать инстанс на другой вычислительный хост и снова загрузить его. На следующей схеме показано взаимодействие между устройством хранения, вычислительным хостом, гипервизором и инстансом.

../../_images/production-storage-nova.png

На схеме показаны следующие шаги.

1

Вычислительный хост настроен с доступом к устройству хранения. Вычислительный хост получает доступ к пространству хранения через сеть хранения (br-storage) с использованием протокола хранения (например, NFS, iSCSI или Ceph RBD).

2

Служба nova-compute настраивает гипервизор для представления выделенного инстансу диска в качестве устройства для инстанса.

3

Гипервизор представляет диск как устройство для инстанса.

Shared Filesystems storage (manila)

Службу общей файловой системы (manila) можно настроить для предоставления файловых систем на различных внутренних хранилищах, поддерживаемых manila_store drivers.

../../_images/manila-overview.png

The diagram shows a basic overview of the manila service (Shared Filesystems service).