
Какие решения мне следует рассмотреть, чтобы обеспечить возможность инкрементального резервного копирования через rsync через nfs4 и шифрование файлов на хосте резервного копирования?
У меня нет никакого контроля над программным обеспечением хоста резервного копирования, поэтому шифрование, очевидно, должно быть выполнено на стороне клиента. Я хочу, чтобы инкрементальное резервное копирование все еще работало (хотя это могут быть целые файлы, я не хочу частичного копирования файлов) из-за низкой пропускной способности.
Кажется странным, что ни в NFS, ни в RSYNC после всех этих лет нет такой встроенной возможности, если только я чего-то не упускаю.
я нашелrsyncryptoно он не выглядит обновленным уже несколько лет и не такой прозрачный, как я надеялся.
решение1
Для этого можно использовать файловую систему overlay encfs
. Обычно ей дается зашифрованный каталог, и она позволяет прозрачно получать доступ к расшифрованным файлам в нем. --reverse
Однако с опцией она работает в противоположном направлении — при наличии обычного каталога она позволяет читать зашифрованные файлы через точку монтирования. Поэтому вы можете указать rsync
на reverse-ecryptfs и позволить ей копировать зашифрованные файлы.
# encfs --reverse /home /mnt/encrypted-home
# rsync --various-options /mnt/encrypted-home/ /mnt/nfs-backup-server/
Однако. Говоря «через NFS», вы, похоже, подразумеваете, что rsync работаеттольколокально, записывая на сервер только с помощью NFS. С одной стороны, это означает, что rsync не будет совсем эффективным — он не может делать частичные копии, не прочитав сначала старую версию с сервера, а если бы он делал это через NFS, он бы использовалболеепропускная способность, чем при копировании целых файлов.
С другой стороны, это означает, что вы можете использовать encfs
(или другие альтернативы, такие как eCryptFS
)безрежим «обратный», напрямую монтируя целевой каталог с помощью encfs (а не исходный). Таким образом, вы получаете более широкий выбор файловых систем наложения, так как не все из них имеют режим «обратный».
# encfs /mnt/nfs-backup-server/ /mnt/encrypted-backup/
# rsync --etc-etc-etc /home/ /mnt/encrypted-backup/