Почему деревья каталогов занимают меньше места в файловой системе ext4, чем ext3?

275

Я получил новый внешний диск, чтобы заменить старый, который показал признаки проблемы. Я использовал, rsyncчтобы скопировать содержимое старого диска на новый. Для того, чтобы проверить, если копирование работало должным образом, я сделал такие вещи, как сравнить использование диска с помощью duи dfи сделали различия. Я заметил, что использование дискового пространства на новом диске значительно меньше, чем на старом. Это показывает, например, что делает ( /backupэто старый диск, /backup1это новый диск):

> du -s /backup/laptop 5400764 /backup/laptop > du -s /backup1/laptop 5308428 /backup1/laptop 

но если я это сделаю, diff -r /backup/laptop /backup1/laptop я ничего не получу. Единственное, что я вижу, что может объяснить различия, это то, что старый диск использует ext3файловую систему, а новый ext4. Если кто-нибудь может пролить свет на это, я был бы признателен.

Спасибо Джон

0
Наиболее вероятная причина - разные размеры блоков, как показано в `sudo fdisk -l` с описанием" Размер ввода / вывода (минимальный / оптимальный) ". AFH 5 лет назад 0

1 ответ на вопрос

0
Theodore Ts'o

На ум приходят две возможности. Одним из них является, что rsync«s --sparseвариант файла, то возможно, что файлы, содержащие нулевые блоки были написаны как разреженные файлы, которые будут занимать меньше места на диске.

Другая (и более вероятная) потенциальная причина заключается в том, что, как и во многих файловых системах Unix, ext3 и ext4 не сжимают каталоги после удаления записей из них. Например:

% mkdir test % cd test % ls -aldg . drwxr-xr-x 2 tytso 4096 May 26 15:25 ./ % seq 1 10000 | xargs touch % ls -aldg . drwxr-xr-x 2 tytso 159744 May 26 15:26 ./ % rm -f * % ls -aldg . drwxr-xr-x 2 tytso 159744 May 26 15:26 . 

Как только этот каталог будет скопирован в целевую файловую систему, потребуется еще 4 КБ.

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