Невозможно смонтировать репозиторий borg backup, расположенный на ZFS snapshot

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

Это относится к borg backup и было опубликовано в этой borg проблеме на github: Разрешить проверку на файловых системах, доступных только для чтения

Попытка получить доступ к удаленному хранилищу borg для list, info, mount и других действий, доступных только для чтения, не удается, когда удаленное хранилище находится на снимке ZFS (только для чтения).

Я создаю резервные копии, используя borg с ежедневной обрезкой (borg prune ... ) для шифрования и удаленные снимки ZFS для хранения (и защиты от уничтожения резервных копий).

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

Пока что я попытался borg list, что закончилось неудачей:

Remote: borg.locking.LockFailed: ('/data/backup/.zfs/snapshot/daily_2017-05-23/home/lock. exclusive', "[Errno 30] Файловая система только для чтения: '/data/backup/.zfs/snapshot/daily_2017-05-23/home/lock.exclusive'")

0
задан 24 May 2017 в 15:18
1 ответ

Проблема в том, что borg не может создать файл блокировки внутри удаленного репо, потому что он находится на удаленной ZFS (скрытой) только для чтения, имеет относительно элегантный обходной путь для этого.

Он создает каталог в файловой системе с возможностью записи, связывая с ним содержимое моментального снимка.

Ниже предполагается, что вам разрешено запускать удаленные команды ssh только от имени пользователя @ server без полного доступа к оболочке.

[user@client:~]

repo='foo'
snap='daily_2017-05-23'

ssh user@server "mkdir $repo.snap"

targets=$(ssh user@server "ls .zfs/snapshot/$snap/$repo")

for t in $targets; do
    ssh user@server "ln -s ../.zfs/snapshot/$snap/$repo/$t $repo.snap/$t"
done

borg list user@server:$repo.snap
1
ответ дан 4 December 2019 в 16:14

Теги

Похожие вопросы