Страница 1 из 1

Создание системы резервного переключения

Добавлено: 2012-06-30 4:13:49
CAMOJIET
Предисловие: Не начинал ещё заниматься zfs, но буду идти в этом направлении. Сейчас для своих задач использую mdadm raid 6 - хочу raidz2. Хочу узнать о возможности создания нужной мне системы у вас, так как не сам не совсем представляю как буду это делать.
Допустим дано: 1 машина с 4-мя жд на борту, где корень своп и данные хранятся на raidz2. Каким то образом на машине 2 надо иметь актуальную в любой момент рабочую версию системы (полностью или хотябы только данные), чтобы при выходе из строя первой машины можно было бы быстро запустить(хотя-бы в ручном режиме) вторую.
Как-то так, сам понимаю, что задача больше творческая чем техническая, но она не даёт мне покоя около полугода, вчера повесил на студента её часть по развороту raidz2 на корень своп и данные, а по части второй половины сам не знаю с чего начать(man по zfs конечно, но для этого нет времени, хочу узнать про возможность)
Спасибо.

Re: Создание системы резервного переключения

Добавлено: 2012-06-30 5:38:31
goshanecr
Тут zfs это мне кажется не сам инструмент для решения такой задачи а подходящая файловая система.
Я бы сделал так:
Организация хранилища это как уже тебе захочется, ZFS или не ZFS
И rsync'ом синхронизировать данные с первого на 2-ой. Это конечно даст некоторую задержку на синхронизацию данных, но тем не менее вполне наверное годное к рассмотрению решение.

Re: Создание системы резервного переключения

Добавлено: 2012-06-30 5:42:04
goshanecr

Re: Создание системы резервного переключения

Добавлено: 2012-06-30 11:00:33
CAMOJIET
Спасибо, действительно есть на чем подумать - оба варианта достаточно интересные. Я же могу и результирующий раздел, получившийся при создании zfs, объединить в зекало с таким же разделом на slave. (Можно даже воспользоваться опять же zfs в место gmirror (остапа понесло)). И тогда данные всегда будут актуальны. (Можно сцепить мастер со слейвом оптикой).
Rsync же в свою очередь будет поддерживать актуальность только по команде с cron, что делает его менее привлекательным в этом отношении. Если вот только rsync может обновить только часть большого файла, то это будет уже интересней, хотя не намного.
Ещё раз огромное спасибо за ответ. Буду думать дальше, хорошо, что знаю в какую сторону думать.

Re: Создание системы резервного переключения

Добавлено: 2012-06-30 12:35:46
goshanecr
rsync не только cron'ом можно запускать.
У меня для синхронизации обменников между распределёнными офисами скрипт rsync'овой синхронизации запускается через rc.local при старте системы и там в цикле просто работает.

Re: Создание системы резервного переключения

Добавлено: 2012-06-30 14:34:26
CAMOJIET
А если изменилась небольшая часть большого файла rsync изменит часть или полностью? Если часть можно ли менять размер куска с которого rsync будет снимать хэш?
Можете выложить свой скрипт?

Re: Создание системы резервного переключения

Добавлено: 2012-07-01 16:17:05
FiL
CAMOJIET писал(а):Спасибо, действительно есть на чем подумать - оба варианта достаточно интересные. Я же могу и результирующий раздел, получившийся при создании zfs, объединить в зекало с таким же разделом на slave. (Можно даже воспользоваться опять же zfs в место gmirror (остапа понесло)). И тогда данные всегда будут актуальны. (Можно сцепить мастер со слейвом оптикой).
Rsync же в свою очередь будет поддерживать актуальность только по команде с cron, что делает его менее привлекательным в этом отношении. Если вот только rsync может обновить только часть большого файла, то это будет уже интересней, хотя не намного.
Ещё раз огромное спасибо за ответ. Буду думать дальше, хорошо, что знаю в какую сторону думать.
проблема с зеркалом в том, что если ты нечаянно делаешь rm - rf / на мастере, то на слейве оно тоже всё похерится.

Re: Создание системы резервного переключения

Добавлено: 2012-07-01 19:25:49
goshanecr
А если изменилась небольшая часть большого файла rsync изменит часть или полностью?
Да, в этом (но не только в этом :)) и есть прелесть rsync алгоритма.
Если часть можно ли менять размер куска с которого rsync будет снимать хэш?
да
man rsync | grep -A 3 -B 3 block | more

Скрипт и скриптом то назвать сложно, просто пара команд.
Вот:

Код: Выделить всё

#!/bin/sh
rm -f "/var/tmp/*.rsync"
BASE=/var/samba/Exchange
RSYNC=/usr/local/bin/rsync
ROPTS="-atqz --compress-level=9 --delete --chmod=Dgo+rx,-w,Fugo+r,-w --no-o --inplace"
while true
do
        if ! [ -f "/var/tmp/FLAG.rsync" ] ; then
                touch /var/tmp/FLAG.rsync
                ${RSYNC} ${ROPTS} rsync://RSYNC_SERVER_IPADDRESS/Exchange ${BASE}/OFFICE/from
                rm -f /var/tmp/FLAG.rsync
        fi 
done


Re: Создание системы резервного переключения

Добавлено: 2012-07-01 19:27:23
goshanecr
проблема с зеркалом в том, что если ты нечаянно делаешь rm - rf / на мастере, то на слейве оно тоже всё похерится.
От этого решение только бэкапы. А зеркало и не должно быть решением такой проблемы. Зеркало это отказоустойчивость, бэкапы это сохранность.

Re: Создание системы резервного переключения

Добавлено: 2012-07-02 1:15:41
CAMOJIET
Если создать в Exchange файл 1 Гб, то как скоро он окажется на зеркале(c помощью rsync), если между машинами будет 100 M/bit? Реакция так понимаю будет мнгновенная? Или как? rsync будет снимать хэши со всех файлов? Это не долго? (Покурю man rsync).
to FIL не ходите под рутом пьяным и всё будет хорошо.

Re: Создание системы резервного переключения

Добавлено: 2012-07-02 1:23:53
CAMOJIET
Да, и если во время rsync синхронизации случится катастрофа(на главном серваке) файл будет целым? Изменения rsync проводятся в транзакционном порядке?
ЗЫ В предыдущем посте под мгновенной реакцией я имел в виду начало работы по синхронизации нового файла (обнаружение изменения).
В моем случае планируется отслеживать файлы жестких дисков виртуальных машин.

Re: Создание системы резервного переключения

Добавлено: 2012-07-02 21:35:36
goshanecr
короче, мне кажется что для такой специфической задачи как перенос дисков виртуальных машин, rsync нифига не подходит.
Тут наверное надо зеркало из двух блочных устройств по сети (ссылка на опеннет выше), это будет отказоустойчивая система хранения для твоей схемы.