XFS: rm não termina, xfs_repair não é possível

1

Eu tenho um disco de 500 GByte com um único sistema de arquivos XFS (EDIT: o sistema operacional está em outro disco). Neste disco, tenho dados de backup na forma de várias cópias com link físico dos dados originais. Após cada novo backup, excluo o diretório que contém os dados do backup mais antigo. O processo rm correspondente às vezes não termina (e consome muita CPU). Matar (-9) não ajuda, apenas reiniciando o sistema.

Eu tentei executar xfs_repair nesse volume. No entanto, parece que não tenho RAM suficiente para isso (a máquina tem 4 GB de RAM e suporta apenas 32 bits).

A localização da máquina dificulta muito meu contato físico com o disco rígido.

Como posso reparar meu sistema de arquivos e / ou fazer rm terminate?

EDIT: Eu corri xfs_repair -v -t 1 /dev/disk/xxx com xfs_repair version 3.1.7 . EDITAR: Saída:

Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - agno = 0
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 1
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 2
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 3
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 4
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 5
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 6
failed to create prefetch thread: Resource temporarily unavailable
        - agno = 7

fatal error -- calloc failed in dir_hash_init
    
por C-Otto 15.12.2013 / 12:06

2 respostas

2

Você tentou o processo strace the rm para ver o que está fazendo? Ao excluir muitos e muitos arquivos, o XFS pode ser dolorosamente lento. Uma vez, eu estupidamente usei ccache no XFS, e foi muito mais rápido mover todos os outros arquivos, formatar e mover os arquivos de volta, do que tentar rm -r os milhões de ccache arquivos. Ainda teria terminado se eu tivesse deixado seguir seu curso.

Quanto a xfs_repair , eu nunca percebi isso usando muita memória, mas todas as minhas máquinas têm muita memória, então ...

Você pode adicionar swap (se isso ajudar). Alternativamente, você poderia exportar o dispositivo de bloco (usando NBD através de túnel OpenVPN ou SSH) para uma máquina que tenha mais RAM disponível, embora eu não tenha certeza se seria mais rápido ou mais lento do que transferir uma imagem de todo o sistema de arquivos (possivelmente usando xfsdump ). Depende da quantidade de dados que o xfs_repair precisa ler / gravar durante o processo.

    
por 15.12.2013 / 15:02
0

Do SGI Indigo 2 de 256Mb, lembro que as verificações de XFS podem ser um bloqueio de memória. Nós tivemos que usar o XFS para os arquivos de 2Gb + que nós tivemos. Em caso de problemas, nós fizemos o backup dos dados para uma unidade externa (scsi) e restauramos, depois de reformatar o sistema de arquivos de dados, dando os problemas.

Claro que só funciona se você tiver a capacidade da unidade (unidades USB de 500 Gb estão abaixo de € 50) e seu sistema não está na mesma partição (isso não é 100% claro em relação à sua pergunta).

    
por 15.12.2013 / 12:21

Tags