Моя ситуация: у меня есть NAS, который обслуживает акции через CIFS/Samba. Внутренне он использует файловую систему ext3, но это не имеет значения (я думаю). У меня есть несколько компьютеров Linux (использующих файловые системы ext4), для которых я хочу создать резервную копию на этих общих ресурсах.
Моя проблема: использование общего ресурса для резервных копий ставит две основные проблемы. С одной стороны, я не могу скопировать все файлы на NAS, потому что некоторые файлы имеют очень длинные имена файлов, которые CIFS не может обработать. С другой стороны, права доступа к файлам и каталогам копируются неправильно. Например, каждый файл в общем ресурсе имеет все установленные биты "execute" независимо от прав доступа к исходному файлу.
Мой вопрос: как проще всего обойти эти "недостатки", чтобы я мог выполнять резервное копирование и восстановление файлов без ручной обработки имен файлов и разрешений?
Дополнительная информация о моих экспериментах:
Моя первая идея состояла в том, чтобы просто создать файловые системы ext4 в (редких) файлах на общем ресурсе, затем смонтировать их и использовать для реальных резервных копий. Недостатком здесь является то, что удаление файлов из файловых систем не уменьшает размер ext4 "файлов" на общем ресурсе, и файловые системы должны быть ограничены в размере с самого начала. Громоздко изменять их размер после создания.
Я попытался использовать ecryptfs, потому что надеялся, что он зашифрует имена файлов и разрешения таким образом, чтобы обойти их ограничения CIFS. Это не сработало, поскольку имена файлов зашифрованы, но снова используются в качестве имен файлов (поэтому длинные имена файлов становятся длиннее, а не короче). Кроме того, разрешения не "скрыты" ecryptfs. Зашифрованные файлы просто сохраняют права оригиналов, поэтому любой расшифрованный файл снова будет иметь все установленные биты "выполнения".
Дружелюбный человек в IRC рекомендует использовать динамическое количество больших файлов и использовать их в качестве томов для LVM. Я еще не проверял это, но в теории это должно работать. У меня будет логический том с ext4, который будет распространяться среди нескольких файлов на общем ресурсе. Если бы мне нужно больше места, я бы создал больше файлов и добавил их в том, если бы я использовал меньше места, я мог бы удалить некоторые. Единственным недостатком здесь является то, что мне все равно придется выполнять изменения размера (и периодические проверки, сколько места на самом деле необходимо). Оглядываясь назад, это дает мало или вообще никаких преимуществ по сравнению с использованием отдельных файлов, так как я могу обрезать / увеличить их, а затем изменить размер файловой системы ext4.
Я представляю, например, FUSE, который сохраняет имена файлов и разрешения, скажем, в базе данных и не полагается на базовую файловую систему для поддержки всего. К сожалению, я еще не нашел ничего подобного.