LINUX.ORG.RU

Целостность бинарных данных при использовании Ceph

 


0

2

Всем привет!

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

Использование бинарных данных такое: mmap'ится файл и в него последовательно пишутся данные, при этом в начале файла тоже небольшие изменения вносятся(конец данных, статистика). Есть один писатель и несколько читателей.

Правильно ли я понимаю, что Ceph не гарантирует порядок выполнения операций? Т.е. из двух последовательных операций записи читатель сначала может «увидеть» вторую, что для меня плохо, т.к. данные будут неконсистентны. Также не понятно: будет ли rename атомарный?

Если для моей задачи Ceph не подходит, то какие есть варианты? Раз это у меня что-то вроде nosql БД, то логично написать своего демона репликации, но не хочется изобретать велосипед.

★★
Ответ на: комментарий от post-factum

Объем - гигабайты файлов, каждый из которых по 50-100 мегабайт. Структура каждого файла: заголовок + данные; данные пишутся последовательно; при добавлении данных - меняется информация в заголовке.

kulti ★★
() автор топика
Ответ на: комментарий от kulti

Если есть возможность, лучше вынести заголовочные данные в какой-нибудь мускуль/постгрес, а бинарные данные хранить хоть на cephfs, хоть на glusterfs.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Спасибо за интересную идею. Но это не решает проблему порядка записи. Читатели ожидают, что писатель mmap'ит файл и пишет блоки подряд. Если из-за особенностей cephfs окажется что блок n+1 будет записан, а n еще нет, то читатель получит мусор на месте блока n.

kulti ★★
() автор топика
Ответ на: комментарий от kulti

ты смешной 8)

что за характер данных то?

Не, всякие key-value не подходят.

как и твои ответы на вопросы.

Deleted
()
Ответ на: комментарий от kulti

это таки не ответ, тому що одно дело когда это какойто проприетарный формат с которым ничего не поделать, другое дело когда свой унутренний и нужный только для обмена

а может вы вообще там постгрес решили поставить на кластерную фс, мне попадались и такие любители

Deleted
()
Ответ на: комментарий от kulti

Тогда поищи что-то, что умеет распределённые блокировки.

Но вообще лучше без «если». Подними тестовую конфигурацию и проверь.

post-factum ★★★★★
()
Ответ на: комментарий от Deleted

Свой внутренний. Не для обмена, а для хранения данных. Читатели занимаются анализом данных и формированием отчетов.

А если бы ты был внимательным, то заметил бы, что я понимаю, что БД реплицировать таким образом глупо, т.к. для них уже написана репликация, которая будет быстрее и без лишних сущностей. Но в моем случае хватило бы и cephfs, если она предоставляет определенные гарантии.

kulti ★★
() автор топика
Ответ на: комментарий от post-factum

Проверять такое «если» считаю неправильным. Вероятность и условия такого события не ясны. Нужно разбираться в архитектуре ceph более глубоко, а там недалеко и до понимания нулевая эта вероятность или нет.

В общем, попробую еще почитать про нее.

kulti ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.