Объектное хранилище Swift
Объектное хранилище OpenStack (Swift) – это масштабируемое распределенное объектное хранилище с резервированием, которое использует кластеры стандартизированных серверов. Под “распределением” понимается, что каждый фрагмент данных реплицируется по кластеру узлов хранения.
Основные логические сущности Swift:
-
Владелец (tenant)
-
Учетная запись (account)
-
Пользователь (users)
-
Контейнер (container)
-
Объект (object)
Связь логических сущностей:
В аккаунте может содержаться несколько пользователей (users). Принадлежит владельцу (владельцем может быть компания, субъект и т.п.). Владелец (tenant) может создавать дополнительных пользователей. Учетная запись содержит в себе контейнеры (container). Контейнеры в свою очередь содержат в себе объекты (object).
Контейнеры в пределах одной учетной записи должны иметь уникальные имена. Но могут иметь одинаковые имена, если они располагаются в разных учетных записях.
Объект – это единица хранения данных таких, как текстовый файл, изображение, снимок виртуальной машины и т.п. По умолчанию в Swift у объекта три репликации (с возможностью физического разделения по разным ЦОД). Для того чтобы обратиться к объекту необходима связка из 3 элементов: account, container и object.
Кольца. Компоненты Swift распределяют данные по дискам при помощи колец. Это такие файлы, где для каждой партиции указано, на каких дисках она должна находиться. Чтобы создать кольцо, можно воспользоваться утилитой swift-ring-builder. Кроме формирования хеш-кольца, она распределяет партиции по дискам и следит как за поддержанием уровня репликации, так и за объемами миграций, не позволяя мигрировать больше одной копии данных за раз.
Доступ к объектам в Swift осуществляется по интерфейсу REST. Эти объекты можно хранить, получать или обновлять по требованию.
Для этого используются стандартные методы HTTP:
-
PUT — создать объект,
-
POST — изменить объект,
-
GET — получить объект,
-
HEAD — получить только метаданные объекта,
-
DELETE — удалить объект.
Путь доступа к каждому объекту состоит из трех элементов:
/<disk>/<partition>/<account>/<container>/<object>
Подробнее о запросах API к объектному хранилищу Swift
Создать контейнер
Для создания нового контейнера:
- В основном меню платформы перейдите в раздел Проект -> Хранилище Объектов -> Контейнеры.
- Нажмите +Контейнер.
- Укажите параметры:
- Имя контейнера – введите название контейнера. Название не должно содержать слеша
/, так как этот символ используется для отделения одного уровня вложенности от другого. - Политика хранения – укажите политику хранения. Выбрать политику можно, если она уже ранее была создана. В ином случае используется политика хранилища по умолчанию.
- Доступ к контейнеру – выберите доступ к контейнеру:
- Публичный – доступ к контейнеру и объектам в нем будет у всех пользователей по публичному URL.
- Непубличный – доступ к контейнеру и объектам в нем будет только у пользователей конкретного проекта OpenStack.
- Имя контейнера – введите название контейнера. Название не должно содержать слеша
- Сохраните настройки и завершите создание контейнера, нажав Отправить.
После создания контейнера в нем можно создать новую папку и загрузить объекты.
Загрузить объект
- В основном меню платформы перейдите в раздел Проект -> Хранилище Объектов -> Контейнеры.
- Нажмите на название созданного контейнера. Откроется вкладка с подробностями о контейнере.
- Нажмите на значок загрузки объекта.
- Выберите файл со своего локального хранилища и загрузите его в контейнер. Также можно выбрать несколько файлов.
Управление объектами в контейнере
-
В основном меню платформы перейдите в раздел Проект -> Хранилище Объектов -> Контейнеры.
-
Выберите контейнер, в котором вы хотите сохранить свой объект.
-
Нажмите кнопку меню и в выпадающем списке выберите Редактировать . Откроется диалоговое окно Редактировать объект.
-
Найдите и выберите файл, который вы хотите загрузить.
-
Нажмите Обновить объект.
Чтобы удалить объект, нажмите кнопку меню и выберите пункт Удалить объект.

No comments to display
No comments to display