Site icon 8HOST.COM

Сервисы хранения объектов и блочные сервисы хранения: краткий обзор

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

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

Что такое блочное хранилище?

Блочные хранилища – относительно простой и знакомый тип. Такие сервисы предлагают традиционные блочные устройства хранения (например, жесткие диски) по сети. Облачные провайдеры часто предоставляют инструменты и продукты для оркестровки блочных устройств хранения любого размера и подключения их к вашей виртуальной машине.

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

Такое гибкое решение подходит почти всем типам приложений.

Преимущества блочных хранилищ данных:

  1. Блочное хранилище – привычная и понятная технология. Пользователи и программы легко работают с файлами и файловыми системами.
  2. Блочные устройства легко поддерживать. Читать и изменять файлы умеет любой язык программирования.
  3. Права доступа к файлам и файловым системам можно быстро изменить, эта процедура известна всем пользователям.
  4. Блочные устройства хранения обеспечивают низкую задержку ввода-вывода, поэтому они подходят для использования базами данных.

Недостатки блочных хранилищ данных:

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

Если ваш облачный провайдер не предоставляет сервиса блочных хранилищ, вы можете обратиться к OpenStack CinderCeph или использовать встроенный сервис iSCSI, доступный на многих устройствах NAS.

Что такое хранилище объектов?

В современном мире облачных вычислений хранилище объектов – это средство для хранения и извлечения неструктурированных объектов данных и метаданных с помощью HTTP API. Вместо того чтобы разбивать файлы на блоки и хранить их на диске с помощью файловой системы, такой сервис работает с целыми объектами, хранящимися по сети. Эти объекты могут быть файлами изображений, логами, HTML-файлами или любыми автономными блоками байтов. Они неструктурированы, потому что конкретной схемы или формата, которым они должны отвечать, не существует.

Поскольку API состоит из стандартных HTTP-запросов, быстро появилось много библиотек для большинства языков программирования. Чтобы сохранить объект данных, нужно просто отправить HTTP PUT запрос в хранилище объектов. Извлечь файлы и метаданные можно с помощью обычного запроса GET. Большинство сервисов хранения объектов также могут публиковать файлы для ваших пользователей, устраняя необходимость поддерживать веб-сервер для размещения статических активов.

Более того, сервисы хранения объектов взимают плату только за используемое пространство (у некоторых также платными являются HTTP-запросы и пропускная способность). Это отличный вариант для небольших приложений, которые могут получить высококачественное хранилище, размещать активы, не переплачивая, и масштабировать хранилище по мере необходимости.

Преимущества хранилищ объектов:

Недостатки хранилищ объектов:

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

Существуют управляемые хранилища объектов, где у вас будет доступ к параметрам жестких дисков и масштабирования. Но если вы не хотите заниматься настройкой и поддержкой хранилища, всю поддержку может осуществлять провайдер. Попробуйте Minio (популярное хранилище объектов, написанное на Go), Ceph или OpenStack Swift.

Заключение

Поиск хранилища данных – непростая задача для разработчиков. Теперь вы знакомы с особенностями базовых типов хранилищ. Принимая это сложное решение, учитывайте требования вашего приложения.