Назад | Перейти на главную страницу

Два монтирования ext4, полностью синхронизированные, одинаковый общий размер файла, но разный общий размер в байтах. Зачем?

Проблема

У нас есть две точки монтирования на двух дисках, оба одного типа. Оба диска отформатированы в ext4.

An rsync команда с параметрами для синхронизации от источника к месту назначения.

После выполнения rsync отображаются следующие данные:

Диск 1 - Источник

315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.

Диск 2 - Место назначения

315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.

Разница

50,796,714 байт (~ 50 Мб)

Используемая команда

rsync -r -t -p -o -g -v --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2


Вопрос

Почему общий размер байтов разный?


Обновить

Предложенный ответ была предпринята. Размер байта между источником и местом назначения не показал улучшения в выравнивании размера.

Предлагаемая команда ответа включала -a и -l переключатели, добавляющие архивирование и перенос символьных ссылок:

rsync -a -r -t -p -o -g -v -l --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2

(Полученные результаты)

Диск 1 - Источник

315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.

Диск 2 - Место назначения

315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.

Разница

50,796,714 байт (~ 50 Мб)


Положение дел

Проблема не решена.


Дальнейшие исследования

Аналогичная проблема обнаружена у SuperUser:

https://superuser.com/questions/442539/why-do-two-directory-hierarchies-that-are-in-sync-have-different-sizes

Из ServerFault:

Размер Rsync отличается от источника к месту назначения


Обновление 2

Были сделаны запросы на du и df выходы, и результаты были:

root@system:/# du -s /media/user/disk1

332172440 /media/user/disk1

root@system:/# du -s /media/user/disk2/

332119568 /media/user/disk2/

root@system:/# df /media/user/disk1

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sdc 528316088 332243868 169212316 67% /media/user/disk1

root@system:/# df /media/user/disk2/

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sdb 528316088 332190996 169265164 67% /media/user/disk2

Таким образом, разница между disk1 и disk2 по-прежнему составляет 52 872 человека.

По многим причинам. Например, вы не используете -a или -l, поэтому символические ссылки преобразуются в обычные файлы. Вы не используете -H поэтому жесткие ссылки становятся обычными файлами.

В Unix / Linux также существует явление, когда удаленный файл по-прежнему занимает пространство, пока все процессы, которые его открыли, не решат закрыть его. Могут ли быть открытые файлы в пункте назначения до rsync?

Наконец, это может быть проблема с Source sparse files не обрабатываются должным образом, но это менее вероятно, поскольку rsync обычно с ними справляется.

PS rsync FAQ дает и другие возможности (источник):

  1. Если ваша цель немного меньше, чем ваш источник, вероятная причина - разница в размерах каталогов. Это просто из-за того, как каталоги распределяют дисковое пространство, и тут ничего не поделаешь. Я разработал быструю команду оболочки для суммирования всех размеров файлов в текущем каталоге без включения размеров каталогов:
echo `find . -type f -ls | awk '{print $7 "+"}'`0 | bc
  1. Также существуют различия в типах файловых систем, размерах блоков, накладных расходах файлов и т. Д., Которые могут привести к различным результатам.
tune2fs -l /dev/your_block_device | grep -i 'block size'
  1. Если вы проверили все это, и вас по-прежнему беспокоит необъяснимая разница в размерах, я хотел бы указать, что простые размеры не очень полезны для проверки полноты или точности операции копирования данных. Он вообще не проверяет содержимое файлов и может быть изменен, как я объяснил выше. Я бы посоветовал использовать настоящую утилиту проверки файлов, такую ​​как cfv для проверки ваших файлов с использованием реальных криптографических хешей. Утилита cfv очень похожа на простую md5sum утилита, за исключением того, что она рекурсивна, быстрее и имеет полосу завершения%.