LINUX.ORG.RU
ФорумAdmin

Лучший/самый простой способ сетевого хранилища для Celery воркеров с возможностью примонтировать диск. NFS? MINIO? Что то еще?

 


0

1

Лучший/самый простой способ сетевого хранилища для Celery воркеров с возможностью примонтировать диск. NFS? MINIO? Что то еще?

Есть распределенной приложение на celery где много воркеров. Но они должны писать/читать файлы в общую директорию.

Какой самый простой и надежный способ подмонтировать директорию что бы она была прозрачна для системы как будто локальная? Что бы не переписывать код с использованием объектного хранилища. Так как с файлами проще, их легко отдает nginx как статику.

Не очень по теме, но такой вопрос: если есть несколько обработчиков, они друг другу не будут мешаться, обращаясь к одной директории? Ну там, не будет ситуации, когда один еще не дописал файл, а другой уже его собирается читать?… На уровне приложухи надо этот вопрос с синхронизацией/мьютексом каким-то решать, кажется.

Что касается NFS, то тут надо держать в голове две вещи: overhead на сеть (будет медленнее) и собственно стабильность сети между воркерами и хранилкой (что будет если отвалится?…).

А так - норм его использовать, есть положительный боевой опыт по этой части, хотя в моем случае на NFS не особо нагруженое холодное хранение (~ 1Тб в неделю с переливом данных раз в сутки по ~ 200Гб).

Minio не очень понял зачем вам. Это в обратную стороу, емнип, если есть дисковое пространство и его нужно представить софтине в виде S3 API.

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

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

Пишите во временный файл. С расширением .tmp, например. А по окончании записи делайте mv file.tmp file.<ext>. Воркеры-читатели пусть не реагируют на .tmp.

qaqa ★★
()
Последнее исправление: qaqa (всего исправлений: 1)

NFS у тебя сразу станет единой точкой отказа. Если хочешь надёжность - смотри на сетевые фс, типа ceph

George
()

Если у тебя твоё распределенное приложение работает в рамках одного хоста, то можно с сетевого хранилища пробросить блочное устройство по iscsi. Тут минимальный overhead будет. Если хостов несколько то NFS хороший вариант. Если будут проблемы, то уже смотреть распределеные фс, но там нужна соответствующая инфраструктура, а не просто сетевое хранилище.

vyv ★★★
()

В паре достаточно больших проектов использовал для такого NFS. Хотя у неё дурная слава, но по моему опыту, она не вызывала проблем.

Так как с файлами проще, их легко отдает nginx как статику.

Если планируется работать в облаке, то в AWS и Яндекс.Облаке можно также раздавать статику с S3. Многие так делают.

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

В паре достаточно больших проектов использовал для такого NFS.
Хотя у неё дурная слава, но по моему опыту, она не вызывала проблем.

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

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

Да, монтируется, переписывать не нужно. Хотя я бы сказал, что S3 всё равно более универсальный вариант в текущих реалиях.

George
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.