Использование tar и rsync для высокой доступности


13

У меня есть облачные серверы Ubuntu, к которым у меня нет прямого доступа, но есть ssh. Я использую tar для клонирования или высокой доступности этого сервера. Я следовал за учебником по ссылке [текст ссылки] [1]. Я попытался это установить новый сервер той же версии. Когда я распаковал tar (tar -xvpzf ~ / clone.tgz -C /) в месте назначения (новый), в конце он заканчивается следующим выводом, аналогичным приведенному ниже (не знаю, если это ошибка).

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

Я использую следующую команду для создания tar-файла из указанных каталогов в исходной системе.

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • Есть ли какие-либо меры предосторожности перед использованием tar? (tar будет создан один раз, тогда я буду использовать rsync)
  • Должен ли я включить еще какой-нибудь каталог, такой как bin или lib? - Предложи мне
  • Должен ли я исключить какой-либо каталог? Как будто у меня была проблема с сетевым устройством (eth0) (не удалось запустить eth0). Поэтому в приведенной выше команде я исключил "/ etc / udev /", и после этого я почувствовал, что все в порядке. Таким образом, есть что-то, что я должен исключить из / etc / или из любого каталога, который я включил? - Предложи мне.
  • Как я мог запланировать rsync (инкрементный bkp) с комбинацией ssh ​​для синхронизации каталогов (указанных в tar) с удаленным местоположением (скажем / mnt / newdir), которое я мог смонтировать, и извлечь его позже в случае сбоя системы. Можно запланировать запуск Rsync от имени пользователя root, но ssh запросит пароль. К вашему сведению, sudo полностью отключен, а также прямой вход ssh в root также отключен.

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

[1]: http://ubuntuforums.org/showthread.php ? т = 525660

Ответы:


9

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

Я бы исключил только: / proc / / sys / dev / tmp / mnt В системе клонирования вам необходимо убедиться, что / etc / fstab и /boot/grub/grub.cfg обновлены с помощью UUID разделов систем клонов.

Если у вас есть база данных, такая как mysql, вам нужно быть осторожным и останавливать базу данных перед выполнением копирования.


да, хорошо напомнил, я думаю, что мне придется исключить '/ etc / fstab' и '/boot/gru/grub.cfg'. Это хорошо?. Пожалуйста, разместите команды для rsync инкрементной синхронизации указанных каталогов.
user3215 11.11.10

Ofcourse /boot/grub/grub.cfg вообще не включен
user3215

Как мне обновить UUID системы клонирования.
user3215

Вам потребуется заменить идентификаторы UUID из исходных разделов в конфигурации fstab и grub на идентификаторы UUID разделов системы клонирования. Вы можете перечислить идентификаторы разделов с помощью: blkid.
Жоау Пинту

Вы хотите сказать, что UUID должны быть одинаковыми в обеих системах.
user3215

6

Во-первых, многие облачные провайдеры IaaS предлагают мощные возможности моментальных снимков, которые решают эту проблему довольно легко.

На EC2, если вы запускаете систему на основе EBS, вы можете просто периодически снимать ее. Если с исходным экземпляром происходит что-то ужасное, вы можете вернуться к предыдущему снимку на новом экземпляре. Если вы хотите заархивировать снимок, вы можете загрузить другой экземпляр с прикрепленным к нему и использовать что-то вроде tar + s3, не оказывая негативного влияния на производственный блок.

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

  1. Вы запираетесь в единую технологию. Если вы работаете с Ubuntu 10.10 и хотите перейти на 11.04, вам нужно обновить исходную систему, а затем сделать снимок снова. Аналогичным образом, если вы используете снимки EBS EC2, вам нужно новое решение, если вы отправляетесь в облачное хранилище.
  2. У вас нет истории изменений, если вы используете rsync. Если вы что-то измените в системе 1, то что-то сломается, вы, скорее всего, тоже сломаете свою систему резервного копирования при rsync.
  3. Rsync может очень сильно повлиять на вашу производственную систему.

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

Я бы порекомендовал вам выбрать систему управления конфигурациями, например, puppet (в основном!), Chef или cfengine. Начните выполнять все ваши настройки в системе управления конфигурациями, а затем вы можете просто загрузить общую систему и применить к ней управление конфигурацией. Добавьте в 'etckeeper' и у вас есть история.

Для обеспечения высокой доступности данных rsync должен работать и быть намного более простым, поскольку вы можете просто скопировать данные, которые вы хотите. Есть также drbd, чтобы иметь то, что составляет «сетевой RAID1». Они не заменяют резервные копии данных, которые должны включать исторические снимки (будь то через снимки блочных устройств или что-то вроде tar), а не синхронизироваться с хостом восстановления (что, если кто-то удалит все данные, которые были синхронизированы с полем восстановления, удалив их все) там тоже?)


2

Сообщения, скорее всего, вызваны тем, что часы нового сервера отстают во времени, чем старые.

Если вы клонируете конфигурацию менеджера пакетов и базу данных (и вы это делаете), вам следует клонировать / bin, / sbin и / lib, иначе система назначения будет в несовместимом состоянии. Другим подходом будет исключение /etc/dpkg.info / etc / apt / var / lib / apt и / var / lib / dpkg и переустановка всех пакетов в целевой системе.

Файлы в / var / dpkg и / var / apt содержат информацию о том, что установлено в вашей системе. Если вы не исключите их, менеджер пакетов будет считать, что все программы и зависимости в родительской системе установлены в целевой системе. Но если вы не скопировали / bin, / sbin и т.д ... они не будут. Очень вероятно, что что-то сломается при следующей установке или обновлении.

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


№ / вар не исключен. В приведенной выше команде после "--exclude /etc/resolv.conf" все включено из /etc/..../var / mnt. На самом деле я указал два пробела между resolv.conf и / etc. Здесь это не показ.
user3215

извините, я забыл ссылку часть
user3215

Итак, я должен даже включить bin, sbin и lib, здесь все хорошо. Ох .. Я должен исключить их и установить все пакеты.
user3215 11.11.10

действительно ли необходимо исключить /etc/dpkg.info / etc / apt / var / lib / apt и / var / lib / dpkg ..?
user3215 11.11.10

Ответ обновлен.
Хавьер Ривера
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.