Существует ли какой-либо инструмент для синхронизации файлов между двумя или более серверами Linux сразу после записи файла на диск? Команда rsync
не подходит для этого, потому что, если я установлю rsync
в cron, минимальное время, которое я могу установить, составляет 1 минуту, но оно мне нужно в режиме реального времени.
linux
files
synchronization
Sourav
источник
источник
Ответы:
Сам не использовал, но читал об этом недавно. Есть демон под названием
lsyncd
, который, я полагаю, делает именно то, что вам нужно.Подробнее об этом ЗДЕСЬ
источник
lsyncd
используетinotify
& должен быть самым быстрым на уровне фс. Больше на github.com/axkibe/lsyncd . С этой страницы: Lsyncd просматривает интерфейс монитора событий деревьев локальных каталогов (inotify или fsevents). Он объединяет и объединяет события в течение нескольких секунд, а затем запускает один (или более) процесс (ы) для синхронизации изменений. По умолчанию это rsync. Таким образом, Lsyncd - это легкое решение для живого зеркала, которое сравнительно легко установить, не требующее новых файловых систем или блочных устройств, и не снижающее производительность локальной файловой системы.Inotify-инструменты
Предоставить интерфейс
inotify
, состоящий из:inotifywait
Эта команда просто блокирует события inotify, что делает ее подходящей для использования в сценариях оболочки. Он может просматривать любой набор файлов и каталогов, а также может рекурсивно просматривать целые деревья каталогов.
inotifywatch
Эта команда собирает статистику использования файловой системы и выводит количество каждого события inotify.
источник
Синхронизация файлов в реальном времени между несколькими серверами в режиме нескольких мастеров
Существует хороший инструмент
lsyncd
для синхронизации файлов между несколькими серверами в режиме реального времени. Здесь я попробовал с двумя серверами.Хосты: Сервер1 и Сервер2
Используемая ОС: CentOS 7
Установите ниже пакеты на обоих серверах.
сгенерируйте ssh-ключ на обоих серверах и добавьте в
authorized_keys
файл. [добавить открытый ключ server1 к server2authorized_keys
и открытый ключ server2 кauthorized_keys
файлу server1 ]Конфигурация Server1
Откройте
/etc/lsyncd.conf
и закомментируйте конфигурацию по умолчанию, используя--
в начале строки, и добавьте ниже конфигурацию в файл.Измените целевой IP в
target
параметре.Вы можете изменить
delay
параметр согласно вашему требованию. Здесь установлено 1 секунда.Теперь создайте каталог журналов.
Включите
lsyncd
сервис для автоматического запуска.Запустите сервис.
Конфигурация Server2
Следуйте той же конфигурации, что и Server1, и измените
target
IP.Теперь синхронизация установлена.
Вы можете проверить активность от
tailf /var/log/lsyncd/lsyncd.log
Спасибо MelBurslan за его предложение.
источник
Синхронизация может быть вариантом. Это очень быстро, передача зашифрована и есть клиенты для нескольких платформ. Он использует «inotify» для мгновенной синхронизации измененных файлов.
источник
Вам нужно будет подойти к этому с помощью решения типа кластеризованной файловой системы - простая синхронизация между двумя компьютерами не даст вам ответа в реальном времени.
источник
«SIOS Protection Suite для Linux» может предложить это на AWS.
http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- AWS-sanless-кластер / # InstallConfigureCluster
источник