lsync, unison или какой-либо другой инструмент автосинхронизации inotify..?
У меня есть ферма приложений, которая генерирует миниатюры и делает их доступными для фермы веб-серверов с помощью nfs. Однако производительность настолько низкая, что я собираюсь сделать локальную копию файлов на каждом веб-узле.
Я посмотрел на unison и lsync, но кажется, что для репозитория centOS5.5 нет оборотов в минуту.
какую я должен использовать, или какую-то другую стратегию. Мне крайне необходимо, чтобы синхронизация была немедленной, поскольку пользователю нужно сразу отобразить миниатюру на веб-странице, поэтому инструменты на основе inotify хороши!
Редактировать: когда я говорю "немедленно", я имею в виду "вытесняют", а не вытягивают по какому-то графику
В конце концов, lsync выпустил еще несколько версий, поэтому я использовал это, и lsync хорошо работает, когда он работает (т.е. синхронизируется за несколько секунд), однако ему нужно предварительно перечислить каждый каталог, а для очень большой файловой системы требуется много часов..
3 ответа
Мне нужно, чтобы синхронизация была незамедлительной, поскольку пользователю необходимо сразу отобразить миниатюру на веб-странице.
Таким образом, вы не контролируете близость сервера в балансировке нагрузки? Время получить новый балансировщик нагрузки.
Я посмотрел на unison и lsync, но кажется, что для репозитория centOS5.5 нет оборотов в минуту.
Ранее я делал это путем встраивания репликации в приложение - в конце концов, это первое, что нужно знать, когда необходимо реплицировать новый контент, - это всего лишь несколько строк PHP для публикации уведомления другим узлам о том, что контент нужно извлекать - когда какое-то время узел был в автономном режиме, я запустил rsync, прежде чем полностью перевести его в оперативный режим (этот подход делает обработку автономных узлов намного проще и не навязчивой). Однако, если бы я сегодня внедрил такую систему, я бы использовал оверлейные файловые системы - возможно, NFS внизу стека и копировал при доступе.
Смотрите также этот пост
НТН
C.
Я ничего не вижу в хранилище, но вы можете найти это incron
может быть полезным
Я недавно установил Unison версии 2.32.52 на одну из своих коробок CentOS 5.x.
При использовании unison важно отметить, что на всех серверах, которые будут синхронизироваться вместе, должна быть запущена одна и та же версия. Unison не будет работать, если он связан с другими версиями Unison, более старыми и новыми.
Для себя я обнаружил, что этот rpm http://rpmfind.net/linux/RPM/dag/redhat/el5/x86_64/unison-2.32.52-1.el5.rf.x86_64.html работает для меня на centos 5.8
Что касается lsync, я не смог бы рассказать вам много об этом, поскольку я никогда не использовал это лично. Однако я могу сказать, что при правильном использовании Unison - фантастический инструмент.
Вы можете установить Unison на crontab, чтобы проверять изменения каждые 1-10 минут.