XFS / EXT4: Por que o tamanho real do arquivo no disco é maior que o tamanho aparente? Esclarecimento

2

Em um sistema CentOS 7.1.1503 (3.10.0-229.el7.x86_64) executando KVM / qemu em um sistema de arquivos XFS, estou tentando descobrir o que especificamente está adicionando espaço adicional a um arquivo de diskimage de VM. / p>

$ 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

Este é o sistema de arquivos em que esses arquivos residem:

# 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

Pelo que pude entender, o arquivo original.img está mostrando que o tamanho real no sistema de arquivos é 8kb maior que o tamanho aparente. Eu gostaria de entender melhor isso. Eu também tenho um arquivo de imagem de 50GB em um sistema de arquivos ext4 em outra caixa que está mostrando seu uso de espaço em disco real é 92k maior do que seu tamanho aparente. Ambos os arquivos foram provisionados por meio do KVM / qemu / libvirt e foram utilizados em VMs de teste para várias coisas, mas seus sistemas de arquivos internos nunca chegaram perto do limite total.

Os outros arquivos listados são apenas o resultado de alguns testes que eu estava fazendo para colocar minha cabeça em volta do que está acontecendo. Esses tamanhos relatados fazem sentido para mim.

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.

Então, o 8k extra no arquivo original.img é devido a informações de extensão, fragmentação de arquivos ou algo totalmente diferente?

Obrigado.

    
por Chrisxb 08.08.2015 / 16:09

1 resposta

0

Quando uma gravação aciona a alocação de uma nova extensão em um arquivo, o XFS às vezes aloca especulativamente extensões extras além daquelas necessárias para a operação de gravação atual. A ideia é que as futuras gravações podem fazer com que o arquivo cresça ainda mais, portanto, ao alocar preventivamente extensões extras, um desempenho extra pode ser obtido.

    
por 21.12.2016 / 23:49