Программно-определяемые системы хранения в Linux

Что такое программно-определяемые хранилища?

SDS (Software-Defined Storage) имеет еще более размытые границы определения, чем модный с некоторого времени термин Big Data. В общем случае, понять суть SDS можно из названия — хранилище данных, не зависимое от аппаратной реализации. По сути,  SDS может быть как облачным хранилищем с одним или несколькими интерфейсными протоколами доступа, так и документно-ориентированной БД. Из этого определения следует основное свойство — масштабируемость системы, когда количество доступных ресурсов (объем хранилища) либо качество доступа (скорость работы) наращиваются без изменений архитектуры, которые как-то может обнаружить клиент.

Рассмотрим самые «знаковые» из существующих решений  SDS.

Apache Cassandra

Apache Cassandra — NoSQL СУБД, написанная на Java и обрабатывающая огромные массивы данных. Ключевая изюминка Apache Cassandra — работа с хэш-таблицами типа «ключ-значение». Apache Cassandra попадает под определение SDS за счет своей кластерной архитектуры — так, одно из крупнейших решений на этой системе включало более 400 серверов и обслуживало БД размером более 300 ТБ.

CouchDB

Следующий продукт — также система управления базами данных NoSQL-формата. CouchDB разработана на Erlang-е и построена на древовидной архитектуре из JSON-документов. Интерфейсную часть системы исполняет встроенный веб-сервер с  JavaScript-интерфейсом для работы с приложениями.

Система поддерживает механизмы репликаций, кластерную архитектуру и прочий необходимый функционал.

MongoDB

Пожалуй, самая популярная NoSQL-СУБД, MongoDB написана на благородных C++ и C, ну и JavaScript-е еще. Система работает с JSON-документами (хранятся в бинарном формате BSON).

Помимо высокой производительности и масштабируемости, эта СУБД интересна своим «интерфейсом файловой системы» — GridFS, обладающим функциями репликации и распределения нагрузки.

Также MongoDB интересна отсутствием механизма транзакций — документ как минимальная сущность данных, обновляется только целиком.

Redis

Следующая по популярности NoSQL-система — Redis. Этот продукт известен, прежде всего, своей высокой производительностью — база данных изначально хранится в оперативной памяти, и оттуда регулярно реплицируется на дисковые накопители. Доступ к данным происходит в формате «ключ — значение».

Swift

Swift — по сути, распределенная файловая система с объектными интерфейсом REST. Доступ к определенным данным происходит посредством трех-уровневого пути вида  /account/container/object, где object — конечное имя данных, а account и  container выступают в качестве имен группировок.

Swift является частью облачного OpenSource-комплекта OpenStack и поддерживает кластерную архитектуру.

Структурно Swift-архитектура включает в себя Прокси-сервер (обрабатывает клиентские запросы вида /account/container/object и выполняет маршрутизацию данных к каждому серверу кластера), Сервер обработки объектов (хранилище двоичных данных), Сервер обработки аккаунтов и Сервер обработки контейнеров (оба последних обрабатывают списки объектов соответствующих групп).

Ceph

Система Ceph также предоставляет доступ к данным как распределенное хранилище. POSIX-интерфейс доступа к данным системы реализован через штатную утилиту cmdline, имеются также клиенты FUSE и Amazon S3.

Ceph построен по модульной архитектуре — отдельные компоненты системы выполняют отдельные группы задач. Для базового функционала достаточно трех базовых модулей — сервера обработки объектов, сервера мониторинга и шлюза RADOS.

Nexenta OS

Решение все-в-одном, Nexenta OS представляет собой операционную систему на базе Ubuntu с использованием ядра OpenSolaris.

Система поддерживает интеграцию с ПО VMWare и Docker, а также облачными пакетами OpenStack.

 

В этой статье мы рассмотрели самые популярные из программно-определяемых систем для хранения данных в различных дистрибутивах Linux.

Чтобы узнать о них намного больше, а также научиться применять знания на практике — приходите на курсы IT Education Center!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *