Распределенное хранилище ключей-значений для общего объема данных 80 ТБ

TL;DR:

Я хотел бы получить рекомендации для распределенного хранилища значения ключа, для avg. размер записи до 50 КБ для установки в среде Linux (выделенные серверы).
Решение файловой системы подойдет.
Я нашел несколько решений: Ceph, Cassandra, Riak и еще несколько.

подробности

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

сценарий

Шаблоны чтения / записи очень просты:

После того, как ключ-значение записано, в течение следующих часов происходит несколько чтений.

После этого ничто не касается заданного значения ключа. Мы хотели бы сохранить данные для будущих целей, "Режим хранения".

Другие аспекты использования

  • ОС: Linux
  • Python клиент / коннектор
  • Общий размер: до 80 ТБ (это значение также отражает будущие потребности).
  • Средний размер записи (для одного значения в паре кв): от 10 до 50 КБ, несжатые, в основном текстовые данные
  • Сжатие: встроенное или внешнее.
  • Шифрование: не требуется
  • Пропускная способность сети: 1 Гб, одна локальная сеть
  • Серверы: выделенные (не в облаке)

Самые важные требования

"Базовые" требования:

  • ОС: Linux
  • Клиент / соединитель Python или API RESTful через HTTP
  • Может легко хранить до 80 ТБ (это значение также отражает будущие потребности).
  • Максимальная задержка чтения: несколько секунд для первого чтения, 30 секунд для "режима хранения" (объяснение см. Выше)
  • Встроенная репликация (так что данные хранятся более чем на одном узле)

Хорошо бы иметь

  • RESTful шлюз
  • Фоновое резервное копирование данных в другое хранилище (для восстановления данных в случае аварии).
  • Прост в настройке

Что я нашел до сих пор

  • Ceph
  • HDFS
  • HBase поверх HDFS
  • Блеск
  • GlusterFS
  • Монго GridFS - но я могу доверять инфраструктуре Монго?
  • Кассандра - не вариант, так как процесс слияния потребляет двойной размер диска
  • Риак - похоже, у него та же проблема, что и у Кассандры, нужно больше исследований
  • Swift + OpenStack (фактическое хранилище может быть на Amazon S3)
  • Волдеморт
  • Существуют десятки дополнительных инструментов, но я не буду писать их здесь, поскольку некоторые из них имеют проприетарную лицензию, а другие кажутся незрелыми.

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

1 ответ

Просто используйте Ceph (я имею в виду прямое использование librados). Не используйте GlusterFS - это зависает.

Другие вопросы по тегам