со сложной дилеммой:
Суть ситуации:
Для того чтобы метаинформация о вольюмах была общей между серверами я держу файлы с оной всё там же, на CepFS, рядом с самими директориями (которые монтируются как вольюмы).
Соответственно, чтобы делать какие-то операции с вольюмами (получить список, поработать с метаинформацией, и даже понять что файл с метаданными именно он, а не мусор) нужна примонтированная CephFS.
Соответственно, два выхода:
- либо держать ФС примонтированной всегда,
- либо монтировать перед каждой операцией и размонтировать после её выполнения.
Казалось бы, выбор в сторону использования одинарного монтирования очевиден.
Но есть беда, заключающаяся в том, что у докерных плагинов есть очень противное ограничение:
Если у него есть хоть одна активная примонтированная фс, он не будет добровольно выключаться.
Соответственно, нельзя будет ни настройки поменять (дебаг включить/выключить даже), ни "апгрейднуть" его, если я запушил новую версию.
Но и второй способ, как показала практика, не лучше (в теории я думал оверхед будет, всё же, ниже).
В случае монтирования-размонтирования на каждый чих, получается что на то, чтобы примонтировать вольюм уходит порядка 6 "чихов" (монтирований корневой директории, в которой лежат сами директории-вольюмы и файлы с метаинформацией о них). В итоге, при рестарте докера, перезагрузке, или массовом переподнятии контейнеров после перегрузки (скачка LA до 700+) получается что происходят тысячи монтирований-отмонтирований, которые и по времени не бесплатные, и, хоть и косвенно, а не напрямую, но таки блокируют друг друга.
А когда не один, а сразу все серверы в кластере начинают вот так вот "дрочить" ФС - плохеет уже демонам, которые её реализуют.
В итоге "боль" распространяется в виде цепной реакции...
В общем, типичная проблема двух стульев.
Не знаю, какой выбрать.
И так какашка, и эдак.
Не подскажете?
ну я бы предпочел первый вариант
Он не нужен
Обсуждают сегодня