HTree 인덱스 디렉토리

HTree 인덱스 디렉토리

매뉴얼 페이지를 읽는 동안 chattr나는 I플래그를 발견했습니다 Indexed Directory. 조사 결과 이는 다음과 같은 HTree 인덱스 디렉터리를 참조하는 것으로 밝혀졌습니다.이 종이. 그것은 말한다시간창고나무BTree와 유사한 성능을 제공하지만 구현이 더 간단합니다.

집에서 Ubuntu 컴퓨터로 실행한 후 lsattr다운로드 디렉터리에 Indexed Directory 플래그가 설정되어 있지만 그 외에는 아무 것도 없다는 것을 알았습니다. 나는 또한 stat --format "%s" Downloads그 크기가 내 집에 있는 다른 모든 디렉토리의 4KiB가 아니라 12KiB라는 것을 알려주는 것을 발견했습니다. 나는 이 주제에 대한 더 많은 정보를 얻기 위해 인터넷을 검색했지만 이 논문은 2001년에 나온 것뿐입니다.

시스템은 ext4 루트 디렉터리에 있는 커널 5.3.0-26이 포함된 Ubuntu 19.10입니다.

내 질문은 다음과 같습니다

  • HTree 디렉토리와 비 HTree 디렉토리의 실제 차이점은 무엇입니까?
  • 어떻게 만들 수 있나요? 어떻게 만들어지나요?
  • HTree 디렉토리인 디렉토리가 없는 이유는 무엇입니까?

답변1

최신 ext3/ext4 파일 시스템에서는 단일 파일 시스템 블록(보통 4KB)보다 큰 모든 디렉터리가 색인화됩니다. 이는 디렉터리가 첫 번째 블록 이상으로 커지면 자동으로 발생합니다.

하나의 블록이 수용할 수 있는 것(파일 이름 길이에 따라 60-100개 파일일 수 있음)보다 더 많은 항목을 추가하는 것 외에 htree 디렉토리를 "생성"하는 특별한 방법은 없습니다. 디렉토리가 커지면 ext4에 의해 절대 축소되지 않습니다. 하지만 언젠가 이를 가능하게 하는 패치가 있을 수도 있습니다.

답변2

현재는 immutable(i)상위 디렉터리의 속성을 삭제한 후 indexed directory(I)해당 속성이 있는 하위 디렉터리를 직접 삭제할 수 있습니다. (외선 4)

$ cat /etc/issue
Ubuntu 20.04 LTS \n \l

관련 정보