XFS Declaração incorreta de "Não há espaço disponível no dispositivo"

5

Eu tenho uma configuração de servidor de uma partição XFS no LVM em um Ubuntu 14.04.1 LTS . Ao copiar arquivos para a partição inicial, " Nenhum espaço deixado no dispositivo " é exibido.

df -h exibe espaço suficiente:

/dev/mapper/prod--vg-home     35G   21G   15G  60% /home

Também usei o fallocate para preencher o disco quase completamente na mesma conta inicial, para garantir que nem cota nem outros problemas de espaço em disco estão relacionados:

/dev/mapper/prod--vg-home     35G   34G  1.5G  96% /home

df -i também exibe inodes suficientes:

/dev/mapper/prod--vg-home   36700160  379390 36320770    2% /home

Também usei uma grande quantidade de pequenos arquivos aleatórios na mesma conta inicial, que replicou o problema :

mkdir 1
cd 1
dd if=/dev/zero of=masterfile bs=10000000 count=1
split -b 10 -a 10 masterfile
cd ..
cp -R 1 2

Isso resultou no "Sem espaço deixado no dispositivo" novamente, com quase nenhum espaço adicional necessário (cerca de 30MB) e df -i menciona:

/dev/mapper/prod--vg-home   36700160 1310464 35389696    4% /home

Eu fiz um segundo teste na mesma máquina (Ubuntu 14.04.1 LTS).

Eu criei um novo volume lógico de 5 GB e o preenchai com arquivos pequenos usando o procedimento dd e split acima.

Recebi um "Nenhum espaço deixado no dispositivo" com o seguinte espaço em disco e inodes disponíveis:

/dev/mapper/prod--vg-test    5.0G  4.2G  811M  85% /mnt/test
/dev/mapper/prod--vg-test    4257712  937920  3319792   23% /mnt/test

Eu realizei este teste usando privilégios de root, para garantir que o espaço reservado ainda seja irrelevante aqui.

Eu fiz um terceiro teste em uma máquina diferente (Debian 2.6.32-5).

Eu criei um novo volume lógico de 5 GB e o preenchai com arquivos pequenos usando o procedimento dd e split acima.

O procedimento foi bem-sucedido com o seguinte espaço em disco e inodes disponíveis:

/dev/mapper/data-test      5.0G  4.2G  909M  83% /mnt/test
/dev/mapper/data-test      4721904 1000005 3721899   22% /mnt/test

Eu realizei este teste usando privilégios de root, para garantir que o espaço reservado ainda seja irrelevante aqui.

Isso aponta para um bug no Ubuntu 14.04.1 LTS ?

Eu verifiquei o impacto da alteração da porcentagem máxima de odes no Ubuntu 14.04.1 LTS:

xfs_growfs -m 25 /dev/mapper/prod--vg-home

Esse valor pode ser facilmente diminuído e aumentado.

Ao experimentar essa configuração, percebi que diminuí-la para 3% e aumentá-la novamente para 25%, e excluir alguns arquivos, permite que eu adicione muito mais arquivos novamente, mas ainda causa o erro antes do preenchimento armazenamento ou inodes.

xfs_info exibe:

meta-data=/dev/mapper/prod--vg-home isize=256    agcount=14, agsize=655360 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=9175040, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Existe alguma outra configuração que possa causar a mensagem "Nenhum espaço restante no dispositivo"? Ou devo concluir que isso é um bug?

Obrigado

    
por Purf 25.09.2014 / 14:40

2 respostas

6

Existe um erro com o xfs_growfs que faz com que os inodes não sejam adequadamente distribuídos através de uma partição. A solução é simplesmente remontar com a opção inode64. Por exemplo, se este fosse o / dev / vda1, você faria o seguinte:

mount -o remount,inode64 /dev/vda1

Você pode encontrar mais informações sobre o bug aqui .

    
por 20.10.2014 / 23:45
0

Existe uma situação em que um diretório (especialmente /home ) pode dizer que o disco está cheio quando não está, e essa situação implica em cotas de usuário. Pode haver alguma limitação no espaço disponível do usuário, verifique se esse é o problema.

    
por 25.09.2014 / 15:44