У меня есть две виртуальные машины, хост ОС ESXi 3.5 и гостевая ОС Centos 4.6. Существует два удаленных сервера ESXi, каждый из которых содержит виртуальную машину Centos 4.6. Я хочу, чтобы любые изменения, которые я вносил в любой файл / папку на одной виртуальной машине, автоматически синхронизировались на другой удаленной виртуальной машине. Процесс синхронизации должен быть автоматическим. Он должен только синхронизировать различия, а не моделировать всю копию с помощью операции перезаписи. Синхронизация должна быть достаточно умной, чтобы искать, что изменилось, а что нет, и должна только обновлять измененные файлы / папки. Кроме того, должен быть некоторый обзор и выбор для синхронизации, например, если он показывает, что 4 файла изменились, должна быть возможность синхронизировать только два файла и оставить два других на данный момент. Таким образом, необходим некоторый интеллектуальный механизм синхронизации для Linux.

3 ответа3

0

Я отправил подобный вопрос здесь. Все еще нет ответов.

Я много пробовал, но единственное, что действительно работает, это унисон. Его можно использовать в режиме без заголовка с cron (автоматический) или в режиме GUI, последний показывает различия между двумя каталогами, которые вы хотите сравнить.

Он имеет тенденцию быть «интенсивным на диске» на локальной машине, но вычисляет дельта-передачи и не тратит пропускную способность (он использует rsync для передач).

Вы также можете попробовать бесплатную синхронизацию файлов: это похоже, но менее популярно.

0

Одним из вариантов является использование rsync или графической версии (gnome) этого grsync.

Я использую эту программу для резервного копирования своих файлов, но она может быть использована для синхронизации.

Для автоматизации процесса вы можете использовать задание cron с желаемой частотой.

0

Синхронизация в нескольких направлениях очень трудно сделать хорошо. Что происходит, когда вы получаете неизбежный конфликт? т.е. файл A был отредактирован на узле 1 и узле 2 одновременно; или достаточно близко к одновременному, чтобы ваша система видела изменения в обоих. Какой из них предпочтительнее? Вы останавливаете синхронизацию и ждете ручного вмешательства?

Вы обнаружите, что когда нескольким системам требуется доступ к одним и тем же данным и их синхронизация, а также доступ для чтения и записи, у вас будет один из 3 методов:

  1. Клиент / сервер: что-то вроде NFS / SMB с сервером, на котором размещены файлы, к которым каждый может получить доступ сразу; сервер обрабатывает блокировку файлов и сообщает каждому узлу, когда произошло обновление файловой системы.
  2. Общее хранилище: т.е. SAN или какая-либо форма прямого доступа; возможно, на сервере работает цель iSCSI. С диспетчером распределенной блокировки и кластерной файловой системой
  3. Синхронизированное / кластерное хранилище: такие вещи, как Luster, Ceph и DRBD (с кластерной файловой системой сверху).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .