LINUX.ORG.RU

распределенное хранение конфига

 ,


0

1

Есть такая задача, для которой я уже успел сделать велосипед, который работает нестабильно...

Задача такова: нужно хранить ОДИН конфиг распределенно на нескольких устройствах с Linux, и чтобы в любой момент одно из устройств могло быть заменено на такое же но без конфига либо с устаревшем конфигом. При этом реально конфиг нужен одному устройству, а остальные просто хранят, но если можно множественный доступ - я бы не отказался.

Есть ли готовое решение для этой задачи или кто как делает такие вещи?

При этом... доступа в интернет НЕТ!

★★★★★

Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Нифига не понял. А чем git не угодил?

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

itn Ох... елки-палки... Забыл же самую важную вещь указать, что интернета-то нету, система изолированная.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от itn

Нифига не понял. А чем git не угодил?

Ммм... а почему бы и нет? Кто так делал? Ну может не git, а Mercurial, не суть. Это решает мою задачу?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Для гита же не обязательно интернет иметь, монтируете репозиторий через sshfs например и синхронизируете.

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

Для Mercurial есть встроенный http-сервер, с которого можно тянуть, не используя всякие sshfs (юзал эту fs), и запускается одно командой.

Тогда дальше, если предлагаете DVCS для задачи, то что если на одном из устройств повредится ФС (факт повреждения будет установить просто - монтироваться не будет?), но можно ли проверить целостность системы контроля версий на диске после того как ФС смонтируется? (не хочется иметь N копий на каждой системе, ведь у меня и так много устройств - их число и есть средство резервирования)

I-Love-Microsoft ★★★★★
() автор топика

Есть ли готовое решение

Кто нибудь пользовался BitTorrent Sync? Годится ли оно для таких случаев?

pathfinder ★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Я не предложил сервер только потому, что он должен быть на каждой машине, с которой вы захотите забирать обновления. Если у вас один «центральный» репозиторий и куча клонов - конечно, с сервером удобнее.

Если вы про git fsck, то можно :)

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

Если вы про git fsck, то можно :)

Ясно, кстати есть еще hg verify - для Mercurial то же самое. В принципе мне достаточно просто грохнуть репу если что и закачать заново.

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

а не пробовал самое тупое решение? конфиг лежит на шаре, на которую ходят все твои машины и читают его оттуда

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

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

А так конечно да - хорошая идея и простая. Целостность - файлик MD5 рядом...

I-Love-Microsoft ★★★★★
() автор топика

Обычно в таких системах важна ещё консистентности конфига, а тут уже только Paxos или Raft. Например zookeeper или etcd

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

а тут уже только Paxos или Raft

Спасибо, узнал много новых умных слов, надо будет подучить матчасть.

А точно только Paxos или Raft, идея с системами контроля версий не катит? Они же как-то защищаются от одновременной модификации и прочих опасных эффектов, всякие хэши на основе содержимого, не?

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Ну это просто разные вещи, в системах контроля версий нужно делать merge.

Что подразумевается под устройствами? Сами устройства обязательно должны быть источниками конфигов или можно поднять группу peer-to-peer серверов отдельно

vertexua ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ммм... а почему бы и нет? Кто так делал? Ну может не git, а Mercurial, не суть. Это решает мою задачу?

Чему это поможет? У тебя конфигурация одновременно меняется на разных устройствах? По условию - нет. Чем не устроило тупое копирование файла?

tailgunner ★★★★★
()

При этом... доступа в интернет НЕТ!

между машинами есть связь? или там джамшут бегает с флешкой?

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

Нужно ли делать merge если все равно конфиг меняет только одно устройство, т.е. один источник конфига, а остальные лишь хранилища.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Предлагаешь синхронизацию?

да. md5 + версионность у конфигов и спец скрипт в кроне обновляющий конфиг и передергивающий сервис. https сервер как хранилище итп. у меня есть подобные наработки. велосипед но рабочее решение.

MikeDM ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

и git или другой vcs юзать это моветон для подобных решений. транспортом может быть даже p2p софтина какая нибудь но на месте должен быть скрипт принимающий решение о замене конфига на новый.

MikeDM ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Это не обеспечивает защиту от старого конфига вместо нового

Какая у тебя задача? Чтобы ты мог всем сразу дать один конфиг и не дать его запороть? Если да, так просто клади его на шару без прав записи и все. А локальных конфигов вообще не имей.

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

Нет, большинство конфигов так и вшиты. Суть в том что одно из устройств должно хранить некоторые изменения, и в случае если его потребуется заменить на новое - чтобы оно тут же подхватило конфиг, который был на старом устройстве. Просто копировать со старого на новый недопустимо по ТЗ.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

да, etcd, наверное лучше подойдет для твоих нужд

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