ext4가 ntfs보다 비쌉니까?


11

방금 NTFS 파티션을 ext4로 변환했지만 총 공간이 421G에서 415G로 감소한 것 같습니다. 6G는 어디로 갔습니까? 그리고 ext4에서는 예약 된 공간이 199M로 증가하여 NTFS의 78M보다 훨씬 더 큽니다.

이 파티션은 주로 영화 / 음악에 사용되므로 대부분의 파일은 매우 큽니다 (각각 10M 초과). ext4 파일 시스템을 사용하고 싶습니다. 제안이 있습니까?

mkfs.ntfs:
    /dev/sdb4             421G   78M  421G   1% /mnt/mmedia

mkfs.ext4:
    /dev/sdb4             415G  199M  393G   1% /mnt/mmedia
                       (415G - 199M == 393G ?)

ext4의 나머지 크기가 393G 인 것도 이상합니다. 415G 또는 414G가 아니어야합니까? 사라진 22G는 어떻게 되었습니까? NTFS와 비교하여 ext4는 전체 공간의 6.6 %를 소비했습니다. 이는 실제로 큰 문제입니다.

질문은 ~이야:

  1. 6G는 주로 저널링, 리던던시 또는 인덱싱에 사용됩니까?
  2. 나머지 공간 393G가 415G가 아닌 이유는 무엇입니까? 다소 큰 22G 구멍이 있습니다.
  3. 이 ext4 파티션을 사용하여 영화 / 음악 파일을 저장하는 경우 어떤 매개 변수를 사용 하시겠습니까? ext4가 큰 파티션의 경우 ext3보다 성능이 우수하다고합니다. 맞습니까? 나는 저널이 아닌 ext2로 돌아 가지 않을 것이다.

답변:


8

6G는 주로 저널링, 리던던시 또는 인덱싱에 사용됩니까?

(아직 알려지지 않았습니다.)

나머지 공간 393G가 415G가 아닌 이유는 무엇입니까? 다소 큰 22G 구멍이 있습니다.

수퍼 유저 용으로 예약 된 5 % 블록으로, 조각화를 피하는 데 사용됩니다. 기준으로 1 %로 조정할 수 있습니다 mkfs.ext4 -m 1.

이 ext4 파티션을 사용하여 영화 / 음악 파일을 저장하는 경우 어떤 매개 변수를 사용 하시겠습니까?

mkfs.ext4에 사용 옵션을 지정할 수 있습니다 (예 :) mkfs.ext4 -T large_file. 이렇게하면 mkfs.ext4가 큰 파일을 포함하는 파티션의 매개 변수를 결정할 수 있습니다.


1
6G는 inode 목록을위한 것입니다.
Sirex

1
예약 된 블록은 또한 일반 사용자가 더 이상 로그 파일을 쓸 수없는 지점까지 디스크를 채우는 서비스 거부 공격의 영향을 제한합니다. 예약 된 공간은 최소한 문제가있는 사용자를 잡을 수있는 충분한 로그를 루트에 제공합니다.
MSalters

내 /etc/mke2fs.conf는 "large_file"이 아니라 -T에 대한 "largefile"및 "largefile4"매개 변수에 대해 설명합니다.
user1338062

4
  1. 6GB는 아이 노드입니다. ext4의 기본값은 각각 256B 인 inode의 경우 1/64 (1.56 %)입니다. 16KB 파일로 채울 수 있습니다
  2. df 사용 가능한 공간은 루트 용으로 예약 된 공간, 기본적으로 5 %를 제외하고 tune2fs -m을 사용합니다.
  3. mkfs.ext4 -m 0 -N 4000000 / dev / what # # 재 포맷, 0 예약, 4 백만 inode는 1GB 사용
  4. ext4 fsck는 ext3보다 훨씬 빠릅니다. 그 외에는 차이가 없습니다

각 파일 / 디렉토리에는 1 개의 inode가 필요합니다. ext 파일 시스템을 생성 한 후 inode 수를 변경할 수 없습니다. 영화와 음악에만 사용한다면 1000000 inode조차도 그 파티션에 충분할 것입니다.

NTFS 마스터 파일 테이블 (MFT)은 약간 더 유연하므로 NTFS는 기본적으로 더 많은 데이터를 넣을 수 있습니다.

Linux에서 NTFS를 사용하는 유일한 이유는 Windows와 파일을 공유하는 것입니다. 미디어에는 문제가 없지만 다양한 UNIX 기능이 없기 때문에 Linux의 일반 용도에는 적합하지 않습니다. 컴파일하지 마십시오!


Each inode 256B, so can fill with 16KB files각 inode에 16K-256 = 16128 여유 바이트가 있다는 것을 의미합니까?
Xiè Jìléi 2016 년

1
inodes 테이블에 1/64 장치를 사용하고 각 inode가 256B이면 16KB의 장치 당 하나의 inode를 얻습니다 ... 실제로 나머지 장치의 15.75KB 당 1 inode이지만 충분히 가깝습니다. 따라서 16KB 파일로 전체 디스크를 채울 수있는 충분한 inode가 있습니다. 비디오와 같이 훨씬 더 큰 파일이있을 것으로 예상되는 경우 더 적은 수의 inode를 사용하여 장치에서 몇 GB를 절약 할 수 있습니다.
Sam Watkins 2016 년

3

예, 이것은 깔끔한 작은 주제입니다. 각 파일 시스템은 데이터 구조를 다르게 구현합니다. 시도해야 할 것은 다양한 파일 시스템으로 파티션을 포맷하고 비교하는 것입니다. "사용 가능한"공간이 다릅니다. 또한 파일을 채울 때 스토리지 오버 헤드가 달라 지므로 동일한 파일 CAN을 저장하는 데 필요한 공간이 파일 시스템에 따라 다릅니다. 일반적으로 파일 시스템을 포맷 할 때 배치 방법에 대한 일부 매개 변수를 선택할 수도 있습니다.이 또한 영향을 미칩니다.

귀하의 질문에 대한 답변은 "의존하는"답변 중 하나입니다 . 전반적으로 6 / 400GB는 끔찍한 차이는 아니지만 실제로 눈에 띄는 것으로 생각합니다. 여전히 스토리지 공간이 점점 더 저렴 해지고 있습니다. 그러나 파일 시스템이 더 멋진 기능을 원함에 따라 파일 시스템이 점점 커지고 있다고 생각합니다. 나는 ext2가 ext4보다 약간 더 적다고 생각합니다. 나는 그것에 대한 실제 숫자를보고 싶습니다. 물론, "효율성"은 가격이 책정됩니다.

이 경우 ext4가 더 많은 공간을 차지하는 이유에 관해서는 NTFS의 스토리지 커 스터가 스토리지 공간을 처리하도록 설정되어 있다고 가정합니다 .ext4 매개 변수보다 훨씬 큰 블록입니다. 이것이 사실이라면, 상대적으로 작은 파일이 많은 경우 스토리지를보다 효율적으로 사용해야합니다.

말할 것도없이, 주제 전체가 계속 진행되고 있습니다. 더 많은 정보를 원한다면, 파일 시스템을 비교하는 다양한 위키 백과 페이지를 살펴 보는 것이 좋습니다. 관심있는 각 FS에 대한 매뉴얼 페이지를 살펴보십시오.

도움이 되길 바랍니다.


1

예약 된 수퍼 블록은 한 가지이지만 참조하는 양은 아닙니다. 예약 된 수퍼 블록을 변경해도 "사용 가능한 총 공간"에 표시되지 않습니다. 변경되지 않습니다. inode 수 x 크기입니다. 기본적으로 ext4에서는 inode 당 256 바이트 및 400GB가 필요합니다. mkfs.ext4가 ~ 25-30 밀을 수행 할 것으로 예상됩니다. 덤프 번호를 보려면 dumpe2fs -h를 사용하십시오. 이것은 누락 된 6GB를 구성하며 누군가가있는 예약 된 블록이 아닙니다 (예 : inode- x inode- 크기 b / 1024 ^ 3) GB를 계산하십시오.

의심스러운 df -h 출력은 약간의 절름발이와 관련이있을 수 있습니다 .p 다시 시도하고 i 노드의 절반을 지정하십시오 (안전하게 수행 할 수 있으며 대담한 경우 더 많을 수 있음).하지만 많은 디렉토리가 공간 전에 inode가 부족하게하십시오.

예 : ext4는 하나 또는 두 개의 파일 이상을 보유 할 것으로 가정하여 디렉토리 당 여러 개의 93-4?) inode를 예약하므로 더 효율적입니다. 그러나 파일에 백만 개의 파일이있는 백만 개의 폴더가 있다면 실제로 공간이 부족하기 전에 해당 레이아웃의 inode가 부족할 것입니다. 일반적으로 inode는 공간의 몇 퍼센트 내에서만 사용되지만 35 %로 급등 할 수 있으므로 2로 나누는 것이 데스크톱 사용자에게는 상당히 안전하지만 안전한면에 더 많은 것을하지는 않습니다.

예를 들면 다음과 같습니다.

415GB ​​RAW (dev / sdb1 say) mkfs.ext4 -m0 -Ndefault # / 2 -Lext4-1 -O extent, dir_index, large_file, sparse_super, uninit_bg / dev / sdb1

이 옵션은 미디어가있는 대용량 파일 / 파티션에 유용합니다. uninit_bg는 최근 커널입니다. 이것은 미래 독자들에게 더 오래된 내용 일지라도 게시됩니다.

말 리나 살리나


0

나는 단지 수백 메가 바이트의 무료로 약 1000GB의 데이터를 포함하는 (전체) ntfs 파일 시스템을 가지고있었습니다. ext4의 포맷 된 용량이 ntfs보다 훨씬 적더라도 포맷 된 용량이 적더라도 ext4에서 약 70GB의 여유 공간이 남아 있음을 기억합니다. (ntfs가 가득 찼음을 기억하십시오). 나는 이것이 당신에게 일어날 것이라고 약속 할 수는 없지만 적어도 ext4를 가진 파일의 경우 실제 공간 절약기가 힘들었습니다! :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.