stanislavvv: (Default)
stanislavvv ([personal profile] stanislavvv) wrote2016-02-10 05:53 pm

Краткое сравнение ceph, sx и riak/riak-cs

Расставил по ранжиру в разных категориях.

Urls:
ceph - http://ceph.com
sx/libres3 - http://www.skylable.com/
riak/riak-cs - http://basho.com/ (они переименовали riak в riak kv, а riak-cs в riak s2, но софт от этого не поменялся), доки - http://docs.basho.com/

Сложность архитектуры (для случая использования протокола S3):

I. ceph - три вида узлов (или четыре, если выделить админский узел в отдельный) - хранилище, монитор, шлюз, общение между собой по ключам
II-III. riak/riak-cs и sx - по два вида узлов - бекенд (riak - БД, sx - файлохранилище) и фронтенд (riak-cs - умный фронтенд, который и реализует хранение файлов, libres3 - более-менее тупой конвертер протокола s3 в протокол хранилища)

Сложность установки:

I. ceph - связано со сложностью архитектуры и некоторой запутанностью документации, которая не столько документация, сколько справочник. Плюс не всегда очевидные расчёты параметров.
II. riak/riak-cs - можно всё сделать по документации, но без расчёта некоторых параметров можно получить либо кластер, который либо не сможет полностью использовать текущее железо, либо будет расчитан на бОльшее количество узлов и будет жрать память больше, чем требуется.
III. sx - тупо apt-get install и немного ответов на вопросы в sxsetup

Возможность донастройки:

I. ceph - практически всё, что может понадобиться настроить - можно настроить.
II. riak/riak-cs - часть настроек неочевидна, часть недокументирована, мне для некоторых приходилось лазить по спискам рассылки и по эрланговским исходникам. Часть настроек, которые вообще говоря, предназначены для riak, пишутся в настройки riak-cs.
III. sx - тупо нечего настраивать в конфиге. От слова вообще. Можно перераспределить место в кластере или ещё что-нибудь такое. Но сказать "дай открыть больше соединений, будет афигительная нагрузка" - нельзя.

Требования к железу (на тестовом кластере с репликацией 2x):

I. sx - пойдёт практически на чём угодно
II. ceph - в узлах osd хочет 1Гб памяти на каждый терабайт места, остальным - просто по гигабайту достаточно (вероятно, radosgw под нагрузкой захочет большего, но не факт)
III. riak/riak-cs - жрёт память. Процессора хочет немного - не больше пары-тройки ядер на узел даже в продакшне.

Достоинства:
sx/libres3 - простота установки и конфигурации
riak/riak-cs - работает практически сразу после установки, если нет особых требований - довольно удобен.
ceph - можно настроить всё, обладает довольно-таки приличным быстродействием

Недостатки:
sx/libres3 - практически не тюнится, имеет базы sqlite в качестве бекенда, виснет на несколько минут при срабатывании gc на любом из узлов.
riak/riak-cs - жрёт память на фронтенде непонятно куда, жрёт память на бекенде, жрёт место на диске в процессе нормальной работы (потом отдаёт обратно, но если места не хватило - падает), не может посчитать статистику объёма бакета, если в бакете несколько сот тысяч файлов (у меня для рабочего кластера проблемы начинались где-то на 600-800 тысячах файлов в зависимости от нагрузки), иногда riak-cs ни с того ни с сего говорит "all workers busy" и это до его рестарта.
ceph - хранит каждый чанк/объект в отдельном файле, что на рекомендуемом ими xfs чревато проблемами, и если там всё можно настроить, то вы таки будете всё настраивать.

Post a comment in response:

(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org