XFS: não há espaço disponível no dispositivo (mas tenho 850 GB disponíveis!)

7

Estou usando uma combinação de mdadm, lvm2 e XFS no Amazon EC2.

Até agora, tive sucesso executando um volume RAID 5 criado a partir de vários volumes do EBS. Os volumes do EBS são anexados e usados com o mdadm para criar o RAID 5. Então, eu uso o LVM para apresentar o RAID resultante como um único volume físico e volume lógico único.

No passado, consegui expandir o sistema de arquivos adicionando um novo volume do EBS, anexando-o e executando o seguinte processo.


mdadm --add /dev/md0 /dev/xvdi

# grow the raid... (could take a while for a large disk!)
mdadm --grow /dev/md0 --raid-devices=4

# grow the LVM physical volume
pvresize /dev/md0

# grow the LVM logical volume ... fairly certain
# -l100%PVS will make the extents use as much space
# as possible on physical disks (and hopefully won't overwrite anything)
lvresize -l100%PVS /dev/data_vg/data_lv

# resize the file system, too!
xfs_growfs /dev/data_vg/data_lv

# yay!
df -h

Minha tentativa mais recente de fazer isso funcionou muito bem, ostensivamente. Executar df -ih / fh mostra que eu tenho um sistema de arquivos montado com um terabyte adicional disponível, como esperado. Além disso, o número total de inodes usados é de apenas 1%. Além disso, pvdisplay e lvdisplay também mostram os tamanhos de volume adequados.

Eu até adicionei alguns dados (cerca de 150 GB) ao volume desde o seu crescimento. No entanto, hoje eu tento criar um diretório e obter

mkdir: no space left on device

Por que eu encontraria esse problema se eu alegadamente tivesse inodes suficientes?

Desmontei o disco e execute xfs_check, mas isso não relata nenhum problema.

Obrigado!

    
por Tom 06.02.2012 / 20:54

1 resposta

7

Consegui resolver o problema da seguinte forma:

umount [the mountpoint]
mount /dev/data_vg/data_lv -o inode64 [the mountpoint]

Aparentemente, o xfs padrão (inodes de 32 bits?) armazenará todos os inodes na primeira parte de 1 TB do disco. Isso significa que se o primeiro 1TB estiver cheio, você não terá mais espaço nos erros do disco, mesmo que pareça que você tem bastante espaço / inodes disponíveis. Adicionando a opção inode64, os nós podem ser armazenados em qualquer lugar no disco, se eu entendi corretamente.

Fonte: o FAQ XFS.

    
por 06.02.2012 / 21:24