Как работают объектные хранилища

С развитием компьютерных технологий вопрос хранения данных становился все более актуальным. От перфокарт и магнитных лент, через жесткие диски мы пришли к твердотельным накопителям и облачному хранению данных. Постепенно возникала необходимость в более гибкой и эффективной системе хранения различных типов данных: неструктурированных медиафайлов, архивов, бэкапов и т.д.

Чтобы хранить данные в различных форматах без необходимости их преобразования или изменения структуры используют облачное объектное хранилище — это тип хранения информации, который позволяет работать с данными в виде независимых объектов.

В этом тексте мы подробно разберем технологию работы облачного объектного хранилища, а также сравним ее с другими типами хранения данных.

Типы хранения данных

Для хранения огромного количества по-разному организованных и структурированных данных существует несколько соответствующих типов хранения данных, которые подходят под разные цели и задачи.

Файловые хранилища. По принципу работы напоминают обычную файловую систему, только расположенную в облаке. Чаще всего их используют для хранения документов, изображений, видео и т.д. Подходят для работы с небольшим объемом данных. Главное преимущество такого типа хранилищ — понятная иерархическая структура.

Блочные хранилища. Данные разбиваются на блоки фиксированного размера, которые могут быть записаны и прочитаны независимо друг от друга. Доступ к каждому блоку осуществляется через подключенный том, который со стороны пользователя выглядит как отдельный диск. Подключение к блочным хранилищам происходит через сеть хранения данных (SAN) по протоколам iSCSI и Fibre Channel.

Базы данных (БД). Набор данных, организованных в строгой иерархии. Управление базой данных происходит через СУБД — систему управления базами данных. Есть множество разных видов баз данных, а также разные подходы к их классификации. Наиболее популярный вид — реляционные. В таких БД данные организованы в таблицы, которые связаны между собой. Доступ к данным осуществляется через простые или сложные запросы. Они формируются с помощью определенного языка. Фактическим стандартом такого рода языка стал SQL.

Объектные хранилища. Неиерархический тип хранилищ, который еще называют S3 — сокращение от названия Simple Storage Service. В таком хранилище информация (файлы, блоки, записи и т.д.) разбивается на отдельные объекты. Каждый сохраняется отдельно в специальном хранилище, имеет свой идентификатор и метаданные. Облачное объектное хранилище используют в случаях быстрого роста количества неструктурированных данных, которые невозможно (или не требуется) упорядочить.

Рассмотрим подробнее принцип работы объектного хранилища.

Как работает объектное хранилище

В структуре каждого объекта можно выделить три части: уникальный индентификатор, метаданные и непосредственно само содержимое. 

Уникальный идентификатор. Любой объект в S3 имеет уникальный ключ, который состоит из имени объекта и пути к нему. Он используется для обращения к объекту во время загрузки, выгрузки или удаления данных. Идентификатор можно сравнить с URL-адресом. Например, если у вас есть объект с ключом «myobject», то его полный адрес будет выглядеть следующим образом:

https://example.com/bucket-name/myobject

Как видите, кроме имени объекта еще указывается имя бакета. Бакет — это контейнер для хранения данных. У него тоже есть уникальный идентификатор, который входит в URL каждого объекта, находящегося в этом бакете.

Метаданные. Разные атрибуты объекта — любые пользовательские данные для сортировки. Это может быть информация о названии файла, его размере, дате создания и изменения и т.д. Метаданные используются для управления файлами и папками, а также для обеспечения доступа к ним и работы с однотипными объектами. 

Содержимое. Сами данные, которые размещаются в объектной системе хранения. Это могут быть файлы, папки, изображения, видео, аудио и другие типы данных. Содержимое может быть любого размера и типа, но оно должно соответствовать ограничениям, установленным сервисом S3.

Как правило, с объектным хранилищем работает не пользователь, а приложение, которое подключается по API, используя протокол HTTP для передачи запросов и ответов. Благодаря отсутствию иерархии в хранении данных, для управления объектным хранилищем используется совсем небольшой набор операций. Вот основные: 

  • PUT — создает объект хранения, в который помещаются данные GET — чтение данных из объекта на основании его уникального идентификатора
  • HEAD — получение метаданных объекта без загрузки самого содержимого
  • POST — загрузка объектов в бакет
  • DELETE — удаление объекта из бакета

Как уже стало понятно, у каждого пользователя может быть множество бакетов с большим количеством объектов в каждом из них. Но работать с объектами могут и разные пользователи — для совместной работы используется система управления доступом к контейнерам и объектам. Кроме этого, при необходимости, содержимое объекта можно зашифровать.

Преимущества использования объектных хранилищ

Как мы уже говорили выше, нет самого лучшего типа хранения данных. Все зависит от задач и особенностей конкретного типа. Соответственно, у объектной системы хранения есть ряд преимуществ, которые выделяют ее среди других, и на основе которых компании и даже единичные пользователи принимают решение об использовании объектных хранилищ.

Масштабируемость и адаптивность к нагрузкам. Объектные хранилища масштабируются по мере увеличения объема данных. Это делает их идеальным решением для работы с большими данными, интернетом вещей и разными приложениями, требующими большого объема данных. Если произойдет резкий скачок трафика, то ресурсы будут мгновенно увеличены.

Надежность и безопасность. Объектные хранилища обеспечивают высокий уровень безопасности благодаря шифрованию, аутентификации и авторизации данных. Кроме этого, данные в S3 автоматически реплицируются на несколько дата-центров, что снижает вероятность их потери в случае аварии.

Связь по протоколам HTTP. Возможность размещать любые файлы и отдавать их через HTTP наделяет облачное объектное хранилище большой гибкостью. Получить доступ можно из любой точки, а связать с другим ресурсом за несколько минут.

Производительность. Благодаря своей архитектуре и оптимизации, хранилище S3 обеспечивает высокую скорость обработки данных. Неограниченное количество метаданных и идентификационных номеров позволяет быстрее получать нужные данные.

Подключение к объектному хранилищу

Для подключения и дальнейшего использования объектного хранилища существуют разные способы. Ниже мы опишем два популярных способа, которые помогут подключиться к вашему хранилищу S3 от 1cloud.

Swift API

Для подключения к S3 по Swift API используется программа Cyberduck. Скачать ее можно с официального сайта разработчиков, а установка не занимает много времени.

Для подключения вам понадобятся данные вашего хранилища. В Панели управления 1cloud перейдите во вкладку «Облачное хранилище S3» и выберите раздел «Доступы».

В самом приложении достаточно сделать несколько простых действий:

  • Нажмите «Новое подключение» в верхнем левом углу
  • Далее откроется окно, в выпадающем списке которого нужно выбрать OpenStack Swift (Keystone 2.0)
  • В поле «Сервер» укажите 1cloud.store
  • Далее введите ваши Tenant ID и Access Key через двоеточие
  • В поле «Secret Key» укажите ваш пароль
  • Обязательно снимите галочку с пункта «Сохранить пароль»
  • Нажмите «Подключиться»

После этого вы подключитесь к своему хранилищу и увидите все созданные вами бакеты.

Подключение по протоколу S3

Для подключения подобным образом понадобится программа S3Browser, скачать которую можно здесь.

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

  • Display name — произвольное и понятное вам имя для идентификации аккаунта в программе

  • Account type — в этом меню нужно выбрать S3 Compatible Storage

  • REST Endpoint — укажите адрес EndPoint, который можно найти в Панели 1cloud

  • Access Key ID — введите значение, которое указано в разделе «Доступы»

  • Secret Access Key — ваш персональный пароль, указанный в разделе «Доступы»

  • Важно — нужно активировать пункт Use secure transfer (SSL/TLS)

Выполнив все шаги, нажмите кнопку Add new account и установится соединение по протоколу S3 с вашим хранилищем.

***

Итак, мы разложили по полочкам принцип работы объектных хранилищ, а также выделили их главные преимущества по сравнению с другими типами хранения данных. Попробовать на практике работу с объектным хранилищем вы можете в Панели 1cloud. Кроме этого, там же вы можете создать виртуальный сервер с гибкой конфигурацией под любые задачи, зарегистрировать домен, приобрести SSL-сертификат и не только.

Создавайте свою виртуальную инфраструктуру вместе с 1cloud.