Как проверить (смоделировать), сколько места освободится после удаления подобъема btrfs?

9

Вопрос не тривиален. BTRFS - это файловая система COW, и на один объект, хранящийся на жестком диске, может ссылаться множество файлов.

Я использую снимки BTRFS как часть решения для резервного копирования на моем производственном сервере. Таким образом, у меня есть компактная , просматриваемая история данного подобъема (я использую модификацию SnapBtr ).

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

Мне нужен способ взвешивания объема данных, которые будут освобождены после удаления каждой резервной копии с учетом возраста старого снимка и важности его пула резервных копий. Я скучаю по прежней информации.

Я понимаю, что процесс вычисления свободного пространства на BTRFS не является ни тривиальным, ни быстрым. Мне нужно что-то, что имитирует удаление подобъема, чтобы получить размер свободного пространства.

Может кто-нибудь мне помочь? Должен ли я отправить это сообщение в linux-btrfs@vger.kernel.org?

Адам Рычковски
источник

Ответы:

6

Как показано здесь , это на самом деле довольно просто сделать.

Сначала включите квоты btrfs:

# btrfs quota enable /btrfs_subvolume

А затем запустите:

# btrfs qgroup show /btrfs_subvolume
OR
# btrfs qgroup show -f /btrfs_subvolume

Что в Btrfs v3.18.2 показывает вам это:

qgroupid        rfer       excl
--------        ----       ----
0/260        1.09GiB    1.09GiB

0/260 - это идентификатор подобъема, а исключение - эксклюзивные данные в подобъеме. Если вы удалите вложенный том, то сколько места вы освободите.

Изменить: Согласно этой ссылке , это официальный рекомендуемый способ сделать это.

Tal
источник
Pro Backup указал (в предлагаемом редактировании), что стоит проверить известные проблемы с поддержкой квот .
Стивен Китт
0

btrfsQuota.pyделает вывод btrfs qgroup showболее читабельным, заменяя идентификаторы subvol именами subvol, например:

subvol                                      group         total    unshared
-------------------------------------------------------------------------------
test/a                                      0/970        20.05M       0.05M
test/b                                      0/971        20.05M      10.05M
test/c                                      0/972        30.05M      10.05M
test/d                                      0/973        30.05M       0.05M
test/e                                      0/974        30.05M      10.05M
Geremia
источник
1
Он не работает со стандартной версией btrfs-tools Ubuntu 14.04. Вам нужно установить более новый, и тогда все в порядке
Адам Рычковски
@AdamRyczkowski Я сейчас использую версию этого скрипта на Python 3, и она отлично работает.
Geremia