다양한 파일 시스템의 공간 오버헤드는 얼마입니까?

다양한 파일 시스템의 공간 오버헤드는 얼마입니까?

Ubuntu 시스템의 파일 시스템을 Fedora 17 시스템으로 백업/복원했습니다. 출력 결과 에 따라 df사용 공간이 30% 증가한 것으로 나타났습니다. 그 이유는 무엇입니까?

Fedora 시스템에 df다음이 표시됩니다: 78GB 사용됨

Ubuntu 시스템에 df다음이 표시됩니다: 60GB 사용됨

시스템 간의 차이점:

우분투: ext3(몇 년 전에 생성됨)

Fedora 17: ext4(바닐라 mkfs.ext4호출로 생성됨)

XFS 파일 시스템(Fedora 17)으로 복원하면 78GB의 사용 공간이 생성됩니다.

백업 및 복원은 GNU tar를 사용하여 수행되었습니다. 파일 시스템에는 다양한 종류의 파일이 포함되어 있습니다(예: 소스 트리, 메일 디렉터리에서 ISO까지).

답변1

가장 먼저 떠오르는 것은 "스파스 파일"입니다. 전통적으로 파일의 오프셋에 데이터가 있는 파일을 생성한 다음 훨씬 더 큰 오프셋을 찾을 수 있었습니다. 훨씬 더 큰 오프셋에 데이터를 쓸 때 파일 시스템은 중간 오프셋에 디스크 블록을 할당하지 않습니다. 할당된 디스크 블록 없이 이러한 오프셋을 읽는 프로그램은 0 값을 읽습니다.

스파스 파일을 tar링하면 할당된 디스크 블록이 없는 스파스 파일의 오프셋이 tar 파일(또는 출력 스트림)과 다시 생성된 파일 모두에서 디스크 블록을 할당하게 됩니다.

MSC/NASTRAN(유한 요소 모델링 시스템)과 같은 프로그램처럼 일부 DBMS가 희소 파일을 생성했던 것을 기억합니다. 이러한 희박한 파일을 백업하면 결국 대량의 오프라인 저장소를 사용하게 되는데, 이는 관련된 모든 사람들을 놀라게 합니다.

답변2

공간 불일치가 나타날 때 주의해야 할 또 다른 사항은 루트용으로 예약된 공간입니다(일반적으로 ext{2,3,4}의 경우 5%). 이 공간을 사용하면 사용자가 디스크를 채우더라도(해당 사용자가 루트가 아닌 경우) OS가 작동(로그 파일 쓰기 등)할 수 있습니다.

다음을 사용하여 이 설정을 볼 수 있습니다 tune2fs -l.

[root@host ]# tune2fs -l /dev/md0 |grep Reserved
Reserved block count:     1279986
Reserved GDT blocks:      1017
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

다음을 사용하여 ext 파일 시스템에서 이를 비활성화할 수 있습니다.tune2fs -m 0 /dev/NAME

정말 빠르게 살펴보면 xfs가 루트를 위한 공간을 예약했다고 믿지 않습니다.

관련 정보