ext4의 400만 개 파일에 대한 최선의 선택

ext4의 400만 개 파일에 대한 최선의 선택

EXT4 파티션에 4백만 개의 파일을 넣을 계획입니다. 각 디렉토리에는 평균 파일 크기가 38kb이고 총 크기가 169GB인 약 700개의 파일이 있습니다.

블록 크기, inode 크기 및 inode 비율 측면에서 나에게 가장 적합한 옵션은 무엇입니까?

fsck가 확인하는 데 걸리는 시간을 고려하면 두 개 이상의 파티션을 만드는 것이 더 낫습니까?

답변1

ext4의 경우 파일 시스템이 포맷팅을 위해 충분한 inode를 사용하는 한 단일 파일 시스템에서 4M 파일을 처리하는 데 문제가 없습니다. 단일 디렉터리에 4M 파일이 있어도 파일 이름이 너무 크지 않으면 문제가 되지 않습니다.

Lustre 파일 시스템은 단일 디렉터리에 1.5-2B 파일과 10-12M 파일을 포함합니다(이는 "large_dir" 기능이 추가된 커널 4.recent 이전의 대략적인 디렉터리 제한이었습니다). 즉, 나중에 더 많은 파일을 저장해야 하거나 정기적으로 파일을 넘기는 경우 "age- based" 디렉토리를 그 안에 넣은 다음 시간이 지나면 삭제합니다.

합리적인 형식 옵션은 다음과 같습니다.

mke2fs -t ext4 -i 32768 -b 4096

-i 32768 = average file size is 32KB, to ensure enough inodes
-b 4096 = blocksize, to allow large directories

각 파일에 많은 xattrs를 저장하지 않는 한 기본 inode 크기는 괜찮습니다. 그렇다면( getfattr -d -m- -ehex /path/to/existing/file평균 xattr 크기를 확인하는 데 사용됨) -I이를 늘리는 데 사용됩니다. 현재 핵심 inode 크기는 약 180바이트이며 나머지는 빠른 xattrs에 사용할 수 있습니다.

LVM/DM 장치에 파일 시스템을 배치하는 경우 나중에 더 많은 공간/inode가 필요할 경우 온라인으로 크기를 조정하여 더 많은 공간/inode를 추가할 수도 있습니다. 쉽게 변경할 수 없는 것은 inode 비율이나 inode 크기입니다.

관련 정보