Назад | Перейти на главную страницу

Резервное копирование файлов unix в файловую систему, которая не позволяет chgrp / chown и т. Д.

К сожалению, у меня нет другого выбора, кроме как сделать резервную копию некоторых файлов из раздела ext3 на сервере в файловую систему, которая не позволяет мне устанавливать и редактировать обычные атрибуты файлов (NFS, с установленным all_squash, поэтому chgrp / chown и т. Д., Даже если root запрещен ). Я планирую использовать rsnapshot для реальных резервных копий, поскольку я уже знаком с этим, и он хорошо работает в других сценариях.

Ясно, что я хотел бы, чтобы разрешения, права собственности и другие атрибуты каким-либо образом сохранялись для этих резервных копий, даже если это не связано непосредственно с самими файлами. Насколько я понимаю, остается три варианта:

  1. Создайте файловую систему с обратной связью в удаленном пространстве NFS.
  2. Сбросьте остальные атрибуты отдельно.
  3. Используйте файловую систему FUSE как наложение, которое имитирует это, записывая в /backup/.permissions/ или какой-либо другой дополнительный файл.

Ни один из них не идеален:

  1. Я хотел использовать автоматическое монтирование внешнего хранилища файлов, но автоматическое монтирование не допускает таких рекурсивных монтирований (насколько мне известно).
  2. это не кажется очень простым сделать с помощью сценариев оболочки. С помощью find + stat было бы несколько расточительно, но, что более важно, восстановление из этой информации было бы утомительным. Я мог бы написать небольшой инструмент (на C) для вызова stat, выгрузите структуру в файл и восстановите соответствующую информацию из этой структуры, но это кажется большой работой для чего-то, что должно быть тривиальным.
  3. Я удивлен, что ничего не существует, что уже делает это, но я не вижу ничего подходящего на этот список файловых систем FUSE, который я считал достаточно авторитетным.

Предложения? Я склоняюсь к решению №3, если оно еще не существует или №2 более тривиально, чем я думал. Я хочу что-то простое и надежное, что не требует изобретать какие-либо колеса, однако я готов написать новые колеса, если они действительно полезны.

Вы можете сбросить атрибуты файлов, используя getfacl -R * >perms.bak и восстановить их, используя setfacl --restore=perms.bak

Моим первым предложением было бы создать более традиционную систему резервного копирования - Bacula, tarили даже скучный старый dump(8) и restore(8) - и сохранить эти резервные копии в раздавленном хранилище NFS. Вы по-прежнему можете использовать rsnapshot локально как инструмент «быстрого восстановления».
Большим преимуществом здесь является хорошо известный, хорошо поддерживаемый способ создания резервных копий, который легче устранять и который на самом деле не заботится о том, что такое базовое хранилище (потому что, что касается инструментов, о которых я упоминал, они просто используют NFS-доступный файл как контейнер).

Если исключить это, я думаю, что ваш следующий лучший вариант - настроить файловую систему loopback - это возвращает нас к метафоре контейнера, приведенной выше, - но это далеко не идеально, как вы уже отметили. Возможно, вы сможете взломать что-нибудь приемлемое вместе со сценарием оболочки для обработки монтирования / размонтирования файлового устройства loopback FS (Automount может работают здесь, но я не думаю, что он будет правильно "связывать" монтаж, как вам кажется, - т.е. поймете, что вам нужно /nfs/file, и /nfs это точка монтирования автомонтирования, которую необходимо смонтировать в первую очередь)

Почему бы просто не засунуть файлы в какой-нибудь архив? Вы можете просто загрузить их в NFS. Я использую bacula для шифрования, архивирования и передачи файлов на резервный сервер.

Просматривая сегодня справочную страницу rsync по совершенно не связанной с этим причине, я наткнулся на --fake-super вариант:

На странице руководства:

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

Это именно то, что я искал, когда изначально задал этот вопрос, хотя я не знал, что искал, прежде чем опубликовать. Это аккуратно решает проблему без каких-либо уловок с петлевой файловой системой, сброса внешних атрибутов или взлома FUSE.

Посмотрите на backuppc. Он хранит все атрибуты в отдельном файле. Он выполняет дедупликацию, когда у вас есть несколько версий одного и того же файла в ваших резервных копиях. Если вы используете в качестве протокола rsync, то дальнейшее резервное копирование будет выполняться с возрастающей скоростью. Также справляется с ноутбуками и т.п.

Как только у меня появились первые резервные копии, добавление дополнительных систем стало проще простого.

Bacula - хороший вариант для резервного копирования вашего репозитория backuppc на ленту для внешнего хранения.

РЕДАКТИРОВАТЬ: перечитайте свой пост, так что, вероятно, вы будете читать с помощью rsync. Я считаю, что backuppc может соответствовать вашим требованиям лучше, чем rsnapshot, и должен иметь аналогичные возможности.