XFS: rm이 종료되지 않고 xfs_repair가 불가능합니다.

XFS: rm이 종료되지 않고 xfs_repair가 불가능합니다.

XFS 파일 시스템이 있는 500GB 디스크가 있습니다(편집: 운영 체제가 다른 디스크에 있음). 이 디스크에는 원본 데이터의 하드 링크된 여러 복사본 형태의 백업 데이터가 있습니다. 새로운 백업을 할 때마다 가장 오래된 백업 데이터가 포함된 디렉터리를 삭제합니다. 해당 rm프로세스가 종료되지 않는 경우가 있습니다(그리고 CPU를 많이 소모합니다). 종료(-9)해도 도움이 되지 않았고 시스템을 다시 시작하는 것만으로도 도움이 되었습니다.

나는 xfs_repair그 볼륨에서 실행을 시도했습니다. 하지만 RAM이 충분하지 않은 것 같습니다(머신에는 4GB RAM이 있고 32비트만 지원함).

기계의 위치로 인해 하드 드라이브에 물리적으로 접근하기가 어렵습니다.

파일 시스템을 복구하거나 종료하려면 어떻게 해야 합니까 rm?

편집 : xfs_repair -v -t 1 /dev/disk/xxx나는 xfs_repair version 3.1.7. 편집: 출력:

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

답변1

어떻게 작동하는지 확인하기 위해 strace이 프로세스를 시도해 보셨나요 ? rm많은 수의 파일을 삭제하면 XFS가 매우 느려질 수 있습니다. 저는 어리석게도 XFS를 사용했는데 수백만 개의 파일을 ccache이동하는 것보다 다른 모든 파일을 이동하고, 파일을 포맷하고, 파일을 다시 이동하는 것이 훨씬 더 빨랐습니다 . 내가 그 과정을 그대로 놔두면 결국 끝날 것입니다.rm -rccache

의 경우 xfs_repair메모리를 많이 사용하는 것을 본 적이 없지만 모든 컴퓨터에는 메모리가 충분하므로...

도움이 된다면 스왑을 추가할 수 있습니다. 또는 블록 장치(OpenVPN 또는 SSH 터널을 통해 NBD 사용)를 사용 가능한 RAM이 더 많은 시스템으로 내보낼 수 있습니다. 하지만 이것이 xfsdump전체 파일 시스템의 이미지를 전송하는 것보다 빠른지 느린지는 확실하지 않습니다. 사용). xfs_repair프로세스 중에 읽고 써야 하는 데이터의 양 에 따라 다릅니다 .

답변2

256Mb SGI Indigo 2부터 XFS가 메모리 정체 가능성을 검사했던 기억이 납니다. 2GB 이상의 파일에는 XFS를 사용해야 합니다. 문제가 발생할 경우 해당 데이터를 외장드라이브(scsi)에 백업하고 해당 데이터의 파일 시스템을 재포맷한 후 복원합니다.

물론 이는 드라이브 용량이 충분하고(50유로 미만의 500Gb USB 3.0 드라이브) 시스템이 동일한 파티션에 있지 않은 경우에만 작동합니다(귀하의 질문으로 이것이 100% 명확하지는 않습니다).

관련 정보