Linux에서 ext-filesystem이 더 적은 공간을 사용하도록하는 방법이 있습니까?


49

Linux 시스템에서 사용하는 외부 및 내부 HDD가 많이 있습니다. 저는 Linux 시스템 만 가지고 있으므로 Linux 파일 시스템을 사용하는 것이 의미가 있습니다. 그러나 현재 NTFS를 사용하고 있습니다. HDD에서 가장 유용한 공간을 제공하기 때문입니다.

그래도 Linux 파일 시스템으로 전환하고 싶습니다. 주로 권한과 호환성 때문에 (예를 들어 Linux에서 LUKS 암호화 NTFS 파티션을 크기 조정하여 Windows에서 chkdsk로 계속 알려줍니다).

그러나 그 HDD를 포맷 할 때 여러 파일 시스템과 모든 Linux 파일 시스템, 심지어 저널링이없는 ext2조차도 많은 공간을 사용했습니다. 정확한 값을 기억하지는 않지만 NTFS가 2TB HDD에서 더 많은 것을 얻었던 것은 100GB가 넘었습니다.

그래서 내 질문은 : ext-filesystems가 자신을 위해 더 적은 공간을 사용하게하는 방법이 있습니까? 아니면 완벽한 Linux 지원과 훌륭한 사용 가능한 공간을 가진 또 다른 파일 시스템이 있습니까?

파일 시스템 (특히 저널링이없는 ext2)이 NTFS보다 훨씬 더 많은 공간을 사용하는 방법과 이유에 대해 듣고 싶습니다. 다른 곳을 물어볼 필요가 없습니다. 나는 저널링없이 ext4를 사용하는 방법과 가능한 경우이 공간을 많이 사용하는 다른 방법을 선호합니다.


1
이 실 보셨어요 ?
JakeGould

4
나는 여분의 공간을 어떻게 사용하는지 설명했지만 NTFS와 ext의 차이점은 reiserfs와 ext의 차이보다 훨씬 큽니다. 더 작게 만드는 방법이 있는지 궁금합니다. 예를 들어 1TB HDD의 경우 NTFS에서 989GB를 사용할 수 있습니다. ext4는 약 909GB를 줄 것입니다.
색종이 조각

충분합니다. 괜찮은 질문과 대답도 깨달았습니다.
JakeGould

3
사용 가능한 공간을 실제로 어떻게 측정합니까? 값 내용에 따라 링크 된 질문에 명시된대로 또는 예를 들어 5 % 예약의 효과를 볼 수 있습니다 당신을 보면 때문에 중요하다
eMBee

2
ext3 및 ext4와 같은 파일 시스템에서 저널링하는 것이 좋습니다. USB 인 경우 외장 드라이브의 전원을 잃거나 실수로 실수로 플러그를 뽑기가 매우 쉽습니다. 그런 경우에는 백업을 시작할 때 저널을 사용하여 스스로를 치료하기 때문에 별 문제가되지 않습니다. 안전망이 없으면 상황이 훨씬 나빠질 것입니다. 더 좋은 경우는 아닙니다.
Joe

답변:


98

기본적으로 ext2 및 후속 버전은 루트 사용자가 사용할 파일 시스템의 5 %를 예약합니다. 이렇게하면 조각화가 줄어들고 관리자 나 루트 소유 데몬이 작업 할 공간이 없어 질 가능성이 줄어 듭니다.

이 예약 된 블록은 루트로 실행되지 않는 프로그램이 디스크를 채우지 못하게합니다. 이러한 고려 사항이 용량 손실을 정당화하는지 여부는 파일 시스템의 용도에 따라 다릅니다.

5 %의 양은 디스크가 훨씬 더 작았지만 그대로 남겨진 1980 년대에 설정되었습니다. 현재 1 %는 시스템 안정성에 충분할 것입니다.

명령 -m옵션을 사용하여 예약을 변경할 수 있습니다 tune2fs.

tune2fs -m 0 /dev/sda1

예약 된 블록 백분율을 0 % (0 블록)로 설정합니다.

현재 값을 얻으려면 다음 명령을 사용하십시오.

tune2fs -l <device> 

10
이는 사용 가능한 공간의 엄청난 차이를 완벽하게 설명합니다 (2TB의 5 %가 100GB이므로). 디스크는 루트 또는 시스템 파일 관련으로 사용되지 않으므로이 기능을 비활성화하면 저장됩니다. 그래도 질문이 있습니다 : 루트 소유 프로그램은 루트가 아닌 프로그램보다 여유 공간이 더 있다는 것을 어떻게 알 수 있습니까? df루트가 아닌 루트로 실행 하면 차이가 없습니다.
색종이 조각

12
@confetti 다음 VFS가 오류로 디스크에 기록 할 그들의 시도를 거부하지 않기 때문에 (볼륨이 될 때까지 실제로 물론, 전체).
Ignacio Vazquez-Abrams

1
tune2fs -l <device>다른 사람들에게이 가치를 부여해야합니다. 5 %의 양은 디스크 크기가 훨씬 작았지만 그대로 유지 된 1980 년대에 설정되었습니다. 현재 1 %는 시스템 안정성에 충분할 것입니다.
harrymc

7
XFS는 5 % 또는 8192 블록 (32MiB)보다 작은 크기를 예약하므로 일반적으로 파일 시스템의 크기에 비해 예약 된 크기가 작습니다.
Michael Hampton

5
설명해 주셔서 대단히 감사합니다. 이것은 내가 크게 이해하는 데 도움이되었습니다. 내 디스크는 이전의 마지막 바이트까지 완전히 채우곤했지만 시스템이 완전히 고장 나지 않았으므로 이제 그 이유를 이해합니다.
색종이

3

저장하려는 데이터가 압축 가능한 경우 compress=zstd(또는 compress-force=zstd)로 마운트 된 btrfs 는 ext *보다 훨씬 적은 디스크 공간을 사용합니다.

  • 이렇게하면 btrfs가 디스크에 쓰기 전에 데이터를 투명하게 압축하고 다시 읽을 때 압축을 해제합니다. 또한 ext4는 파일 시스템 생성시 모든 inode를 미리 할당하고 btrfs는 필요에 따라 생성합니다. 공간을 절약 할 수 있다고 생각합니다.

1
이 답변에 더 많은 정보를 추가 하시겠습니까? (어떻게 작동하는지, 무엇을하는지, 어쩌면 참고로 ...)
confetti


나는이 아이디어가 정말 마음에 들지만 이것이 속도와 성능에 어떻게 영향을 미치는지에 대한 더 많은 정보는 좋을 것이다.
색종이 조각

2
@confetti, 하드 드라이브를 사용하고 있기 때문에 성능이 향상 될 수 있습니다. CPU는 하드 드라이브보다 훨씬 빠르기 때문에 디스크 액세스 속도가 느리면 디스크에서 데이터를 가져오고 내립니다. 압축 또는 압축 해제에 소요 된 시간은 눈에 띄지 않습니다.
Mark

2
반면, 오늘날 대부분의 대형 파일 유형 (예 : 이미지, 오디오, 비디오, 심지어 가장 풍부한 텍스트 문서 형식)은 이미 압축 된 경향이 있으며 일반적으로 추가 압축의 이점이 없습니다. 최소한 파일 시스템 수준에서 수행되는 단순한 범용 종류는 아닙니다.
Ilmari Karonen

3

아직 이야기하지 않은 또 다른 요점은 파일 시스템에 예약 한 inode 수입니다.

기본적으로 mkfs는 파일 시스템에 아주 작은 파일을 많이 넣을 수 있도록 많은 inode를 만듭니다. 파일이 매우 크다는 것을 알고 FS에 적은 수의 파일 만 넣을 경우 inode 수를 줄일 수 있습니다.

조심해! 이 수 (공간과 inode 수 사이의 비율)는 파일 시스템 작성시에만 설정할 수 있습니다. FS를 확장하더라도 비율은 동일하게 유지됩니다.


또는 실제로 아주 작은 파일을 많이 저장한다는 것을 알고 있다면, 많은 공간을 낭비하지 않도록 inode 수를 늘리고 블록 크기를 줄일 수 있습니다. (각 파일은 1 바이트라도 최소 하나의 블록을 소비해야합니다. 디스크에서 사용 된 크기와 크기를 비교하려면 ls -ls를 사용하십시오.)
Perkins

@Perkins 당신 말이 맞지만, 이것은 아주 작은 파일에만 해당한다고 생각합니다. 기본 블록 크기는 4kiB (IIRC)이고 최소 크기는 1 kiB입니다. 따라서 디스크에 실제로 해당 파일이 가득하다는 점을 제외하고는 크게 이길 수 없습니다. 그럼에도 불구하고, 나는 내일 이것으로 뛰어들 수 있습니다.
glglgl

2
또는 btrfs를 사용하여 필요에 따라 inode를 만듭니다. 반면 ext4의 inode는 파일 시스템 생성시 할당되며 생성 후 크기를 조정할 수 없으며, 40 억의 하드 제한으로 btrfs의 inode는 필요에 따라 동적으로 생성되며, 하드 제한은 2 ^ 64, 약 18.4 quintillion (약 46 억)입니다. 최대 ext4의 하드 한계보다 높은 시간 : p
hanshenrik

유즈넷 스풀 설정을 상기시킵니다. ext4는 inode 자체 내에 아주 작은 것을 저장합니다 (많은 것들에 따라 60-160 바이트 정도입니다).
mr.spuratic

@hanshenrik btrfs에 대한 동일한 블록 크기 제한 (두 가지 추가 방법으로 해결할 수 있음)이 있으므로 저장하려는 파일의 종류 (크거나 작거나 둘 다)를 알아야합니다. 최대 스토리지 양을 짜내려면 파일 시스템을 적절히 조정하십시오. 푹신한 데이터를 저장하는 경우 자동 압축 기능이 유용합니다.
퍼킨스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.