Почему при использовании btrfs значения «Размер», «Использовано» и «Доступно» из df не совпадают?

9

У меня есть раздел btrfs. Когда я бегу df -h, это показывает:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       113G  101G  8.3G  93% /home

От чего это? Это потому, что зарезервировано место для root с помощью ext2 / 3/4? Или что-то еще? Если первое, как я могу изменить его и вернуть эти 4 ГБ?

Что касается btrfs wiki , я знаю, что метаданные хранятся дважды, что увеличивает размер «используемых» данных:

user@machine:~$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             894G  311G  583G  35% /
                            ^^^^
user@machine:~$ btrfs fi df /
Metadata: total=18.00GB, >>used=6.10GB<<  *2=  12.20GB
Data: total=358.00GB, >>used=298.37GB<<   *1= 298.37GB
System: total=12.00MB, >>used=40.00KB<<   *1=   0.00GB
                                           == 310.57GB 
                                           ~~ 311   GB

Но это все еще не объясняет, почему Используется + Доступен <Размер.

вир
источник
btrfs.wiki.kernel.org/articles/f/a/q/FAQ_1fe9.html - прочитайте «Почему существует так много способов проверить количество свободного места?» раздел, он имеет много информации.
Мат
Да, в нем много информации, но во всех их примерах использовано + доступно = размер в dfвыводе. Я обновил вопрос с этим.
вир
lsofПоказывает ли какие-либо удаленные файлы? (Вывод btrfs из вашей системы был бы более подходящим, чем из вики.)
Mat
Я знаю, но мне было лениво переформатировать это, и это аналогично. Если lsof |grep 'DEL'|wc -lуказать количество удаленных файлов, то оно равно 338. Хотя они не кажутся большими (могу ли я как-нибудь получить их общий размер?)
sup
1
@Mat Вот рабочая ссылка на часто задаваемые вопросы BTRFS: Почему так много способов проверить количество свободного места?
ali_m

Ответы:

10

Если вы не указали иное при форматировании, по умолчанию хранятся дублированные копии блоков метаданных для повышения надежности. Вероятно, у вас есть метаданные объемом 2 ГБ, которые хранятся дважды, используя 4 ГБ. Вы можете увидеть более подробную информацию с btrfs filesystem df.

В частности, для метаданных выделяется 1,75 ГБ, поэтому он потребляет вдвое больше, чем 3,5 ГБ. Только 385 МБ из этих 1,75 ГБ в настоящее время используются для метаданных, но полные 1,75 ГБ зарезервированы для этого использования и поэтому не учитываются в доступном пространстве для файловых данных.

psusi
источник
btrfs filesystem df /homeдает, Metadata, DUP: total=1.75GB, used=385.70MBпоэтому у меня хранится около 771 МБ метаданных, вместе с данными они составляют 101G, но это не объясняет, почему Используется + Доступен <Размер - я расширил вопрос, чтобы отразить это.
вир
4
@sup, 1,75 ГБ выделяется для метаданных, поэтому он потребляет вдвое больше или 3,5 ГБ пространства. Только 385 МБ из этих 1,75 ГБ в настоящее время используются для метаданных, но полные 1,75 ГБ зарезервированы для этого использования и поэтому не учитываются в доступном пространстве для данных файла.
psusi
Ах, теперь я понимаю. Я предполагаю, что примеры из btrfs wiki просто используют какой-то старый df, который не знал об этом. Спасибо за ответ!
вир