인덱스 노드 재사용 방지

인덱스 노드 재사용 방지

Logstash를 사용하여 로그를 추출하고 있지만 inode가 재사용되기 때문에 몇 가지 문제에 직면하고 있습니다. 우리는 Logstash 측에서 가능한 모든 옵션을 시도했기 때문에 운영 체제 측을 탐색하고 있습니다.

내가 아는 한, 파일을 만들고 삭제한 다음 새 파일을 만들면 대부분 동일한 inode를 얻습니다.

[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]# rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]#  rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch b.txt
[root@XXXX~]# stat -c%i b.txt
671092802

XFS가 있는 운영 체제가 새 파일에 최근에 사용된 inode를 재사용하는 것을 방지하는 방법은 무엇입니까?

이상적으로는 파일이 삭제되는 시점과 inode가 재사용되는 시점 사이의 기간을 정의하고 싶습니다. 디스크가 크기 때문에 inode 제한에 도달하는 데 문제가 발생할 것으로 예상되지 않습니다.

감사해요

답변1

주어진 inode 번호를 가진 파일 생성을 방지하는 유일한 방법은 파일이 이미 존재하는 경우(또는 inode 값이 파일 시스템에서 사용하지 않는 값인 경우)입니다. inode 값을 보존할 수 없습니다. 이는 일반 인터페이스(즉, 특정 파일 시스템 유형에 국한되지 않는 인터페이스를 통해)에 해당되며, 대부분의 파일 시스템(즉, 대부분은 inode 번호를 보존하는 독점적인 방법이 없음)에 해당되며, 내가 할 수 있는 한 이것이 특히 XFS에 해당된다는 것은 의심의 여지가 없습니다.

파일이 삭제된 후 즉시 새 파일이 생성되면 대부분의 파일 시스템에서 새 파일은 방금 삭제한 파일과 동일한 inode를 갖게 됩니다. 하지만 이는 결코 보장되지 않습니다.

inode를 계속 사용하려면 이 파일을 삭제하지 마십시오. 필요한 경우 이를 잘라서(예: truncate -s0 /path/to/file또는 ) 디스크 공간을 절약할 수 있습니다. : >|/path/to/file도구가 디렉터리를 탐색 중이고 더 이상 도구에서 파일을 볼 수 없도록 하려면 해당 도구를 동일한 파일 시스템의 다른 디렉터리로 이동할 수 있습니다.

관련 정보