Feb. 10th, 2016

stanislavvv: (Default)
Поскольку Sx проиграл (во время срабатывания gc ВЕСЬ кластер стоит колом) - решили присмотреться к ceph.
Ставится оно при помощи ключей и какой-то матери, если не пользоваться ceph-deploy (делал по http://docs.ceph.com/docs/master/install/manual-deployment/#long-form - поставилось). Если пользоваться ceph-deploy - не всегда можно получить то, что хочется, судя по содержимому этого самого ceph-deploy.

Кратенько о том, на чём тестил: кластер в составе mon (монитор кластера, которых в продакшне должно быть не менее трёх), 2*osd (хранилища), radosgw (интерфейс s3/swift/etc, сделал для его объектов двукратную репликацию в хранилище, как и в риаке).
Тестил - так же, как и sx, путём копирования каталога, содержащего тыщу файлов в тыщу подкаталогов + относительно большой файл и всё это в бакет по имени s3://test

Результаты тестов:

s3cmd ls s3://test - 20 секунд (против 7 минут riak)
s3cmd du s3://test - 8 минут (riak я тут не дождался)
Запись большого файла - порядка 7Мб/сек, чтение - упёрлось в 100Мбит виртуалки radosgw.

При этом riak-cs/riak содержал три узла под riak.

После добавления третьего osd и начала перебалансировки кластера s3cmd ls s3://test стал работать 1:15-1:20, что является вполне подходящим результатом для сильно нагруженного кластера даже по сравнению с ненагруженым риак.
Скорость чтения больших файлов не изменилась (от слова вообще). Менялась скорость перебалансировки и всё.

Пожалуй, ceph как хранилище с s3 мне нравится больше, чем riak, у которого есть NN граблей, которые нельзя обойти настройками.
stanislavvv: (Default)
Расставил по ранжиру в разных категориях.

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 чревато проблемами, и если там всё можно настроить, то вы таки будете всё настраивать.
Page generated Jul. 5th, 2025 01:40 pm
Powered by Dreamwidth Studios