Ubuntu 16.04는 ext4: 500TB 파일 시스템 생성

Ubuntu 16.04는 ext4: 500TB 파일 시스템 생성

ext4 표준에서는 최대 1EB 크기의 파일 시스템을 생성할 수 있다고 제안합니다.

내 목표는 Ubuntu 16.0.4에서 500TB의 ext4 파일 시스템을 만드는 것입니다. 내 fs 생성 명령을 확인하십시오.

sudo mkfs.ext4 -m 0 -J device=/dev/md125p1 /dev/md125p2 -b 4096 -E stride=128,stripe-width=6400,lazy_itable_init=0,lazy_journal_init=0

이 명령을 사용하면 다음 오류가 발생합니다.

슈퍼블록을 설정하는 동안 요청한 inode 수로 파일 시스템을 생성할 수 없습니다.

mkfs.ext4에서 -i 옵션을 사용하여 inode당 바이트 수 값을 매우 높은 숫자로 설정하려고 시도했지만 여전히 운이 없습니다.

RHEL에서는 최대 50TB의 ext4 파일 시스템을 권장하는 것으로 알고 있습니다. 아직도 ext4를 사용하여 500TB의 파일 시스템을 생성할 수 있습니까?

답변1

이것은 작동합니다. 최신 버전 사용 mke2fs:

% mkfs.ext4 /tmp/test.img 500T
mke2fs 1.45.4 (23-Sep-2019)
Creating regular file /tmp/test.img
Creating filesystem with 134217728000 4k blocks and 4259840000 inodes
Filesystem UUID: 00257d43-0298-4aaf-8cca-37e34f3d1bb8
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
    2560000000, 3855122432, 5804752896, 12800000000, 17414258688, 
    26985857024, 52242776064, 64000000000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

inode 수는 (2**32)-1자동으로 제한되므로 다른 답변에 표현된 우려는 문제가 되지 않습니다.

또한 블록 크기가 VM 페이지 크기보다 클 수 없도록 요구하는 Linux 제한으로 인해 4k보다 큰 블록 크기를 사용하는 것은 x86에서 지원되지 않습니다. 따라서 PowerPC의 페이지 크기는 64k이므로 최대 64k의 블록 크기를 사용할 수 있습니다.

또한 매우 큰 파일 시스템을 사용하는 경우 e2fsprogsUbuntu 16.04에 포함된 더 이상 사용되지 않는 버전이 아닌 최신 버전의 . 매우 큰 파일 시스템과 관련된 일부 버그를 포함하여 지난 3년 동안 많은 버그 수정이 있었습니다.

답변2

내 연구에 따르면 ext4는 4K 블록에 대해 500TB를 지원하지 않을 수 있습니다.

EXT3/EXT4의 기본 파티션의 inode당 바이트 비율은 16384바이트(16Kb)당 1개의 inode입니다.
따라서 우리는:

500 GB = 500 * 1024 * 1024 * 1024 * 1024 = 549 755 813 888 000 bytes
549 755 813 888 000 bytes / 16384 = 33 554 432 000 inodes

inode 수는 32비트 숫자이므로 ext2/3/4 파일 시스템에서 가능한 최대 inode 수는 2^32-1 또는 4,294,967,295 inode입니다.

33 554 432 000은 4,294,967,295보다 훨씬 크기 때문에 해당 수의 inode를 할당하는 것은 불가능합니다. 최대 inode 수보다 8배 더 많은 것이 필요합니다.

내가 보기에 귀하의 옵션은 다음과 같습니다.

  • inode 제한을 강제로 적용해 보십시오.-N 4294967295
  • 8x4 = 32KB 블록을 사용하십시오. 이는 파일이 작을 경우 낭비입니다.
  • ext4가 아닌 다른 파일 시스템을 사용하십시오. 나는 XFS가 그러한 파일 시스템을 지원할 수 있다고 말하는 보고서를 본 적이 있지만 개인적인 경험으로는 말할 수 없습니다.

관련 정보