Intereting Posts
Linux копирует диапазон папок Как перенаправить stderr на переменную внутри if condition? удар Debian не работает. Почему моя камера не появляется в / dev, хотя она работает в dmesg? (Возможная регрессия Ubuntu.) Проверка и проверка блокировки из другого процесса Использовать локальное (на диске) зеркало для debootstrap Как grep строки, основанные на '.' (точка)? Является ли удаление Perl Рекомендацией для упрочения системы? Как отключить автоматическое отключение звука после загрузки в gnome? Использовать разделитель без доступа root Как узнать, действительно ли папка является символической ссылкой и как ее исправить, если она сломана? Будет ли эта команда работать, если соединение с удаленным сервером будет потеряно? При компиляции я могу использовать файл для параметров ./configure? Извлеките уникальную строку из каждой строки, содержащей <string> virtmanager – Не удалось найти демон libvirtd

Выполнение точного моментального снимка и инкрементного резервного копирования на удаленный сервер

У меня есть несколько серверов Ubuntu (и, возможно, RHEL), которые я хотел бы сделать резервным копированием на центральный сервер резервного копирования (через rsh / SSH). Я хотел бы сделать как моментальные снимки, так и инкрементные резервные копии. Цель состоит в том, что если один из резервных серверов внезапно умрет, я смогу установить образ начальной загрузки, восстановить из резервной копии и, в идеале, сразу же запустить и запустить.

Эти серверы имеют уникальные пользователи и группы, а также разные гиды и uids для тех же имен. Я рассматривал rsync (локальные резервные копии работают нормально, и у меня есть мелкомасштабный элемент управления, поэтому я могу создавать резервные копии xattrs и ACL), но затем я понял, что rsync на удаленном сервере, вероятно, не сохранит эти нюансы, как ожидалось.

Итак, что лучше для этого? Существует ли пакет, который обычно используется для этой цели?

Да rsync имеет опции для сохранения ACL, расширенного атрибута, атрибутов ext2, жестких ссылок, числовых идентификаторов пользователей, разреженности …

Раньше у меня была система, которая rsynced filesystems на резервный сервер с файловой системой btrfs (чтобы делать снимки на сервере резервного копирования), и из-за проблем со стабильностью перемещалась в zfs-on-linux (что, к сожалению, не поддерживает ACL POSIX все же, но есть работа вокруг).

--archive --one-file-system --xattrs --hard-links --delete --numeric-ids --sparse --acls rsync , которые могут вас заинтересовать: --archive --one-file-system --xattrs --hard-links --delete --numeric-ids --sparse --acls и, возможно, те, которые используются для синхронизации на месте.

Одна вещь, которую rsync не делает, это обнаружить переименования (хотя для этого есть патч, но я не уверен, насколько это можно доверять, и он обнаруживает только имена файлов).

zfs zfs send для отправки только изменений, сделанных с момента создания моментального снимка (в другой zfs zpool с использованием zfs receive ). Если я правильно понял, эта функция была добавлена ​​совсем недавно в btrfs . Поэтому, если резервное копирование btrfs FS на другой btrfs FS на последнем ядре, это может быть вариант.

Посмотрите на rsnapshot , который является оболочкой perl вокруг утилиты командной строки rsync . Rsnapshot добавляет дополнительный конфигурационный уровень для rsync, который упрощает инкрементное резервное копирование. (Старые версии файла жестко связаны с текущей версией, когда они не изменяются. Поэтому каждая инкрементная версия вашей резервной файловой системы выглядит как полная копия.)

Другой подобной возможностью является двуличие , которое основано на librsync . Я понимаю, что у этого есть более полированный пользовательский интерфейс, но я его не использовал. Или rdiff-backup , который я думаю от одного и того же разработчика, или, во всяком случае, когда-то это было правдой.

Конечно, есть много и много резервных систем. Вот список доступных на FreeBSD, большинство из которых также будут доступны в Linux. Но я думаю, что три, упомянутых выше, являются естественными, если вы привыкли к rsync . (Замечательный инструмент.)

Редактировать: Спасибо всем! Теперь я знаю некоторые другие пакеты, чтобы выполнить эту работу, и я знаю гораздо больше о внутренностях rsync. Для тех, кто может также задаться этим вопросом, если вы rsync на другой машине с параметром –numeric_ids, он не будет пытаться отображать или создавать UID / GID, он просто передает их как есть. Право собственности на элементы в каталоге резервного копирования может выглядеть нечетным, но оно будет соответствовать 1: 1 при восстановлении (при условии, что часть того, что вы восстанавливаете, включает исходные файлы сопоставления, если вы восстанавливаете новую машину).

Ниже приведен исчерпывающий список параметров, которые я использую для полного резервного копирования системы (как root через sudo). Обратите внимание, что {{my_exclusions}} – упражнение для читателя (у меня все еще есть проблемы с тем, чтобы работать так, как должно). Также обратите внимание на использование -link-dest … если этот каталог существует в целевом объекте, жесткие ссылки будут делаться там, где есть файлы, уже присутствующие в предыдущей резервной копии, которые не изменяются в текущем.

 rsync \ --recursive \ --links \ --hard-links \ --perms \ --acls \ --xattrs \ --owner \ --group \ --devices \ --specials \ --times \ --one-file-system \ --partial \ --numeric-ids \ --compress \ --delete-during \ --stats \ --human-readable \ --progress \ --verbose \ --super \ --log-file=/tmp/my.log \ --link-dest=/backup/latest_backup \ --exclude={{my_exclusions}} \ --link-dest=/backup/latest \ / \ {{remote_hostname_or_ip}}:/backup/new_backup