Есть задачка примерно в следующей постановке:Существует несколько серверов, на каждом есть каталоги, в которых лежат некие файлы контейнеров OpenVZ. Соответственно, хочется, чтобы эти каталоги хранились на нескольких серверах одновременно для того, чтобы в случае падения одного из серверов тут же парой команд можно было поднять контейнер на другой машине.
Вопрос - как наилучшим образом синхронизировать каталоги?
Имеющиеся варианты:
1. использовать распределенные ФС. Пока ничего на этот счет не нагуглилось. В каком направлении копать?
2. периодически запускать rsync. Не очень хотелось бы, потому как надо будет отбивать повторный запуск, в случае, если за предыдущий период данные не успели скопироваться.Кто что использует? Какие мысли?
>[оверквотинг удален]
>Вопрос - как наилучшим образом синхронизировать каталоги?
>
>Имеющиеся варианты:
>1. использовать распределенные ФС. Пока ничего на этот счет не нагуглилось. В
>каком направлении копать?
>2. периодически запускать rsync. Не очень хотелось бы, потому как надо будет
>отбивать повторный запуск, в случае, если за предыдущий период данные не
>успели скопироваться.
>
>Кто что использует? Какие мысли?Rsync
А скрипт простой:#!/bin/sh
ls /folde/SyncScript.run > /dev/null 2>&1
if [ $? -ne 1 ]
then
echo "Script already run"
else
echo 1 > /folde/SyncScript.runТут собственно синхронизация
rm -f /folde/SyncScript.run
fi
>ls /folde/SyncScript.run > /dev/null 2>&1
>if [ $? -ne 1 ]Надо добавить в свою коллекцию извращений. Прочитайте раздел CONDITIONAL EXPRESSIONS в man bash, подавляющее большинство там проверки на файл. Например можно так:
lockfile="/some_path/some_name"
if [ -e "$lockfile" ]
then
...
exit
fi
touch "$lockfile"
...
rm -f "$lockfile"