Rsync для синхронизации производства с отказоустойчивостью

567
dwest100
  • У меня есть server1 в качестве производственного сервера.
  • У меня есть server3 в качестве отказоустойчивого сервера. Раскрутился из снимка сервера1.
  • У меня есть server2 в качестве сервера резервного копирования файлов для сервера один. Роль должна быть рабочей лошадкой для поддержки серверов 1 и 3.

Все трое могут общаться друг с другом через туннель ssh. Все три Ubuntu 16.04 на digitalocean, каждый в своем регионе. База данных MySQL установлена ​​для облегчения работы сайта Wordpress в var / www / HTML. Аналогично для php7 и nginx.

Два вопроса: Могу ли я запустить rsync с server2, чтобы синхронизировать server3 с server1?

Поскольку server3 является идентичным двойником сервера 1, я хочу, чтобы ВСЕ изменения на сервере server1 синхронизировались с сервером server3. В том числе системные изменения, установки программного обеспечения, изменения содержимого ... все это. Идея состоит в том, чтобы сохранить server3 как идентичный server1.

Что тогда мне сказать rsync для синхронизации? Будет ли это просто server1 / to server3 / recursive?

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

1

1 ответ на вопрос

0
John Z

Я успешно клонировал систему Linux с помощью rsync. Я установил Ubuntu на Pendrive и клонировал ОС с ноутбука, и Pendrive загрузился очень хорошо. Я также сделал это на двух настольных компьютерах. Тем не менее, я однажды cp'ed / bin /, / lib и т. Д., И это не сработало, мне пришлось переустановить целевую систему, не знаю почему. Но в целом это работает.

Вам необходимо исключить определенные каталоги:

rsync -acv --delete --exclude=fstab --exclude=/dev --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/lost+found --exclude=/run --exclude=/sys --exclude=/tmp /server1/ /server2/

Вы должны исключить / etc / fstab, потому что ваши UID будут отличаться на ваших серверах. Поскольку / mnt и / media могут содержать пользовательские каталоги, которые вы создали и должны быть реплицированы на сервере server2, убедитесь, что вы можете исключить их.

Вам также нужно работать sudo update-grub в клонированной системе, потому что /boot/grub/grub.cfg будет указывать на UID исходной ОС, что будет проблемой при перезагрузке сервера2.

Прежде чем делать это на своих производственных серверах, обязательно протестируйте эту процедуру!

Также проверьте этот пост: Как лучше всего клонировать работающую систему на новый жесткий диск с помощью rsync?

Большое спасибо @John Z :) Пока что я рассматриваю возможность использования следующей команды с сервера рабочей лошадки: `ssh root @ 13 ..... 144" rsync -avxHAWX --numeric-ids --info = progress2 ssh / root @ 18 ..... 33: / "` Опция числового идентификатора вообще помогает? dwest100 7 лет назад 0
Я не использую его, потому что мои резервные копии либо ограничены одной системой, либо пользователи одинаковы в разных системах. John Z 7 лет назад 0

Похожие вопросы