하나의 파일시스템이 가질 수 있는 파일이나 디렉토리의 개수는 inode수와 관련됩니다.
여기서 디렉토리는 unix에서는 파일의 개념과 거의 비슷하므로 “파일”로 통칭하겠습니다.
하나의 파일은 하나 이상의 inode를 가집니다.
따라서 하나의 파일시스템내에는 가능한 최대 inode수를 초과하여 파일을 만들 수 없습니다.
JFS의 크기와 inode의 관계는 다음 표와 같습니다.
nbpi Fragment size in bytes Maximum size in 512-byte blocks
512 512, 1024, 2048, 4096 16777216 = 8GB
1024 512, 1024, 2048, 4096 33554432 = 16GB
2048 512, 1024, 2048, 4096 67108864 = 32GB
4096 512, 1024, 2048, 4096 134217728 = 64GB
8192 512, 1024, 2048, 4096 268435456 =128 GB
16384 512 268435456
16384 1024, 2048, 4096 536870912 =256 GB
32768 512 268435456
32768 1024 536870912
32768 2048, 4096 1073741824 =512GB
65536, 131072 512 268435456
65536, 131072 1024 536870912
65536, 131072 2048 1073741824
65536, 131072 4096 2147483648
AIX 4.1 is limited to NBPI values from 512 to 16384.
즉, 파일시스템 생성시 nbpi 값을 4096 bytes로 했다면 가능한 파일시스템 최대 크기는 64GB입니다.
그리고 가능한 최대 inode 수는 64GB/4096bytes = 16777216 개 입니다.
따라서 16777216 개 이하의 파일을 만들 수 있습니다.
하지만 하나의 파일 시스템에 너무 많은 inode가 존재하면 performance 에 좋지 않음을 유의하셔야 합니다.
JFS 에서는 NBPI 값으로 파일시스템 사이즈를 나누면 대략 최대 파일 갯수가 나옵니다.
.
JFS2 에서는 NBPI 라는 값이 없이 inode 갯수가 dynamic 하게 allocation 되므로,
inode 에 상관없이 전체 파일시스템 크기를 평균 파일 크기로 나누면 생성가능한 최대 파일 갯수를 구하실 수 있으나
실제적으로 이 계산과정은 큰 의미가 없습니다.
다만 한 dir내에서는 32767개 이상의 file을 가질 수 없으며 이는 AIX에 하드코딩 되어 있습니다.
file이 4만개 이상이라면 dir을 나누셔야 할것으로 판단됩니다.
============================
FILE SYSTEM 5.1 5.2 5.3 6.1
Max. sub directories/dir–J & J2 32,766 32,766 32,766 32,766
there IS a limit of 32767 links per directory on the system – and you have apparently
reached that MAX number – in the limits.h file of /usr/include/sys