Удаление btrfs подобъема, не теряя данные внутри

У меня есть btrfs файловая система на моем медиасервере. Это был мой первый раз, настраивая систему с btrfs, и я думал, что это будет хорошая идея разделить различные типы медиа в различные подобъемы, так, чтобы я мог создать снимки для них отдельно. Существует два sub объема:

/downloads
/movies`

Программа, которую я запускаю (гидролокатор, чтобы быть точным) автоматически, загружает фильмы и пытается создать твердую копию между /downloads/movie и /media/movie после того, как завершенный. Оказывается, что жесткие ссылки между btrfs подобъемами не возможны, таким образом, гидролокатор отступает к копированию. Это излишне создает две копии файла который пожиратели ресурсов дисковое пространство.

Я попытался решить это при помощи внеполосной дедупликации, поскольку внутриполосный dedupliocation еще не поддерживается насколько я знаю. Используя duperemove Я обхожу 2GB/hour данных, это освобождено, но это слишком медленно для меня.

Я решил, что это была бы хорошая идея вывести установку подобъема, которую я имел прежде, и используйте единственный btrfs объем для всего. Рассмотрение страницы справочника btrfs subvolume похоже, что все данные в подобъеме потеряны, когда это удалено. Существует ли способ "передать" владение данных от подобъема до родительского объема прежде, чем удалить подобъем так, чтобы я мог сохранить данные?

0
задан 21 May 2018 в 23:59

1 ответ

Я не знаю много о btrfs, еще. Только что запущенный для изучения этого несколько часов назад! Но я думаю, что могу ответить на Ваш вопрос.

Я не знаю гидролокатор, но возможно Вы могли сказать ему создавать reflink при копировании. Команда копии выглядела бы примерно так:

$ cp --reflink=always /downloads/file-to-copy /movies/

Это создаст копию на другом подобъеме, но из-за "копии на записи" механизм btrfs, он не использует больше пространства, пока один из файлов не изменяется. Если бы Вы не изменяете файлы (переименование хорошо), это было бы так же, как hardlink решение.

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

Кроме того, можно использовать reflink метод сверху, чтобы клонировать файлы в новый каталог на родительском подобъеме, переименовать подобъем, переименовать новый каталог как подобъем, был назван, и проверьте, если все работает, затем удалите подобъем.

2
ответ дан 29 October 2019 в 07:09

Другие вопросы по тегам:

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