Многие пользователи уже знакомы с такими решениями, как Ceph, которое используется для развертывания OpenStack. Аналитики прогнозируют, что очень скоро 70 распределенных систем хранения данных будут выполнены в качестве сетевых программных массивов. Такие программные продукты называются Software-Defined Storage или SDS. Сейчас к разработке таких файловых систем для хранения данных подключаются такие известные компании, как Dell, Fujitsu, Hitachi Data Systems, Huawei и Vodafone.
Фонд свободного программного обеспечения недавно выпустил отчет про тенденции развития облачных хранилищ с открытым исходным кодом. Из него можно сделать вывод, что сетевые хранилища SDS набирают все большую популярность. В этой статье мы рассмотрим основные сетевые хранилища Linux и файловые системы, популярные на данный момент.
1. Apache Cassandra
Apache Cassandra — это не совсем файловая система, а масштабируемая и высоко доступная база данных для критически важных приложений. Она способна разворачиваться в нескольких центрах обработки данных или на нескольких серверах для увеличения надежности хранения данных, уменьшения нагрузки и увеличения отказоустойчивости.
2. Ceph
Ceph — это расширяемая, масштабируемая сетевая файловая система и платформа для хранения данных от Red Hat. Она может использоваться на частных или государственных предприятиях, которые внедряют свои облака. Обычно применяется вместе с OpenStack. Файловая система может легко масштабироваться до размера в несколько пентабайт путем добавления новых устройств. Узлы поддерживают репликацию для увеличения надежности хранения данных.
Если один из узлов выйдет из строя, то все данные будут восстановлены и эта потеря не скажется на всей системе.
3. CouchDB
CouchDB — это проект Apache Software Foundation. Он представляет из себя кластерную документно ориентированную систему управления базами данных. Для работы с базой данных используется HTTP Restful API. Она поддерживает репликацию между несколькими узлами. Каждый набор данных — это отдельный файл в формате JSON.
4. Плагины Docker Volume
Расширения Docker Volume позволяют интегрировать Docker с внешними системами хранения данных и сохранять необходимые данные на нескольких сетевых устройствах. Здесь поддерживается множество сетевых хранилищ, среди которых Azure Files, NetApp, Vmware, VSphere и многие другие. Можно загрузить отдельные расширения на GitHub.
5. GlusterFS
GlusterFS — это масштабируемая сетевая файловая система и платформа для управления данными от компании Red Hat. Она относится к категории распределенные файловые системы и может быть развернута на нескольких узлах сети, создавая частные, общедоступные или гибридные облака. Ее можно использовать для потоковой передачи файлов, медиа, видео, работы контейнеров, анализа данных и многого другого. Файловая система может иметь очень большую пропускную способность, в зависимости от количества используемых узлов. Здесь вы можете реализовать даже сетевой raid массив.
6. MongoDB
MongoDB — это документно ориентированная база данных, специально разработана для высокой производительности, упрощения разработки и масштабирования до больших объемов. Здесь, также как и в CouchDB, данные хранятся в формате JSON, также поддерживается репликация между несколькими узлами.
7. Nexenta
Nexenta — это масштабируемое, унифицированное программное сетевое хранилище linux, которое имеет возможности управления размещением данных. Платформа способна интегрироваться с VMWare, Docker и OpenStack.
8. Redis
Redis — это программное обеспечение, реализующее структуру для хранения данных в оперативной памяти. Может использоваться в качестве базы данных, кэша или буфера сообщений. Поддерживается несколько структур данных и имеет внутреннюю реализацию Lua и различных операций над данными.
9. Riak CS
Riak CS — это программное облачное хранилище для хранения объектов в распределенной базе данных Riak KV. Она позволяет масштабировать облако между необходимым количеством машин и может использоваться для создания государственных или частных облачных архитектур для поддержания работы тяжелых приложений и услуг.
10. Swift
Swift — это система хранения объектов для OpenStack специально спроектированная для хранения и быстрого получения неструктурированных объектов. Он оптимизирован для масштабирования и многопоточной работы с большим количеством данных.