XFS/EXT4: Почему больше фактический размер файла на диске, чем очевидный размер? Разъяснение

На CentOS 7.1.1503 (3.10.0-229.el7.x86_64) система, выполняющая KVM/qemu в файловой системе XFS, я пытаюсь разработать то, что конкретно добавляет дополнительное пространство к VM diskimage файл.

$ ls -ls --block-size=1k
15728648 -rw-------. 1 qemu qemu 15728640 Aug  8 07:50 original.img
15728640 -rw-------. 1 qemu qemu 15728640 Aug  8 08:25 original.imgcopied
 2288960 -rw-------. 1 qemu qemu 15728640 Aug  8 09:36 original.imgsparsified
15728640 -rw-------. 1 qemu qemu 15728640 Aug  7 13:23 thickprov.img
       0 -rw-------. 1 qemu qemu 15728640 Aug  7 13:28 thinprov.img

$ filefrag *
original.img: 1 extent found
original.imgcopied: 1 extent found
original.imgsparsified: 713 extents found
thickprov.img: 1 extent found
thinprov.img: 0 extents found

Это - файловая система, на которой находятся эти файлы:

# xfs_info /dev/mapper/centos_centsager-home
meta-data=/dev/mapper/centos_centsager-home isize=256    agcount=4, agsize=15968512 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=63874048, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=31188, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Из того, что я смог понять, original.img файл показывает, что фактический размер в файловой системе на 8 КБ больше, чем очевидный размер. Я хотел бы получить лучшее понимание этого. У меня также есть файл изображения на 50 ГБ в ext4 файловой системе на другом поле, которое показывает, что его использование пространства фактической дисковой емкости 92k больше, чем его очевидный размер. Оба из этих файлов были толстые настроенный через KVM/qemu/libvirt и использовались в тесте VMs для различных вещей, но их внутренние файловые системы никогда не были близко к полному.

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

15728640  15728640  original.imgcopied     # 'cp' of original.img
 2288960  15728640  original.imgsparsified # 'virt-sparsify' of original.img
15728640  15728640  thickprov.img          # Fresh VM create with same parameters as original.img
       0  15728640  thinprov.img           # Same VM create but with a sparse allocation.

Так, должен дополнительный 8k в original.img файле к информации о степени, фрагментации файла или чему-то еще полностью?

Спасибо.

2
задан 9 August 2015 в 15:12
1 ответ

Когда запись запускает выделение нового экстента в файле, XFS иногда спекулятивно выделяет дополнительные экстенты сверх тех, которые требуются для текущей операции записи. Идея состоит в том, что будущие операции записи могут привести к дальнейшему росту файла, поэтому за счет упреждающего выделения дополнительных экстентов можно получить дополнительную производительность.

0
ответ дан 3 December 2019 в 14:40

Теги

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