2010-01-14 6 views
1

우리는 Amazon EBS를 사용하여 3 레벨 디렉토리 구조에 많은 수의 작은 파일 (< 10KB)을 저장합니다. (: 200기가바이트 사이즈)파티션의 inode 수가 파티션이 지원해야하는 최대 inode 수와 일치하지 않습니다.

 ~/lists# df -i 
Filesystem   Inodes IUsed IFree IUse% Mounted on 
/dev/sda1    655360 26541 628819 5%/
tmpfs     186059  3 186056 1% /lib/init/rw 
varrun    186059  31 186028 1% /var/run 
varlock    186059  2 186057 1% /var/lock 
udev     186059  824 185235 1% /dev 
tmpfs     186059  1 186058 1% /dev/shm 
/dev/sda2   19546112 17573097 1973015 90% /mnt 
/dev/sdj    13107200 13107200  0 100% /vol 
 ~/lists# sudo /sbin/dumpe2fs /dev/sdj | grep "Block size" 
dumpe2fs 1.41.4 (27-Jan-2009) 
Block size:    4096 

파티션/부피에 대한 아이 노드의 수이다 13Million +

 ~/lists# df -h 
Filesystem   Size Used Avail Use% Mounted on 
/dev/sda1    9.9G 3.9G 5.5G 42%/
tmpfs     854M  0 854M 0% /lib/init/rw 
varrun    854M 64K 854M 1% /var/run 
varlock    854M  0 854M 0% /var/lock 
udev     854M 80K 854M 1% /dev 
tmpfs     854M  0 854M 0% /dev/shm 
/dev/sda2    147G 80G 60G 58% /mnt 
/dev/sdj    197G 60G 128G 32% /vol 

문제의 파티션/부피이다. 블록 크기를 4096으로 설정하면 200GB 파티션 (ext3)에서 지원해야하는 inode 수는 52million + (최대 Inode 계산 : 볼륨 크기 (바이트/2^12))입니다. 그렇다면이 파티션은 왜 1300 만 개의 아이 노드 만 지원합니까?

+0

샘, 답변 해 주셔서 감사합니다. 블록 크기는 4KB이며 8KB가 아닙니다. 그러나 우리가 8KB를 취하더라도, 수는 아직도 합계하지 않는다. 200GB/8KB = 26Million + (13Million이 아님). – lazynerd

+0

맞아, 방금 내 주장을했다 ... 당신은 mkfs.ext3가해야한다고 생각하는 것을 기반으로 계산을하고있다. 나는 단지 볼륨이 13M inode로 할당되었다고 말하면서 모두 사용했습니다. 따라서 볼륨에 작은 파일을 많이 작성할 계획이라면 mkfs 시간에 inode를 확인하십시오. Btw, 당신이 사람들 응답에 응답하는 경우에 그들은 통지를 받는다. 오직 여기에 답장을 보았습니다. 저는이 질문을 수동으로 확인하기 위해 되돌아 왔습니다. –

답변

2

볼륨을 만들 때 (이 경우에는 mfs.ext3 사용) inode가 정적으로 할당됩니다. 어떤 이유로 mkfs.ext3는 1300 만개의 inode를 확보하기로 결정 했으므로 더 이상 파일을 만들 수 없습니다.

참조이 2001 discussion of inodes

위키 백과 EXT3 페이지가 더 간결이를 설명하는 주석이 있습니다 wiki link

또한, 아이 노드가 (차단하지) 파일 당 할당 만 13M의 아이 노드가있는 이유 - mkfs.ext3은보고있는 문제를 설명하는 평균 파일 크기 8KB로 구성되어 있어야합니다.

+0

동일한 기사의 footnode http://en.wikipedia.org/wiki/Ext3#cite_note-0 inode 제한에 대해 이야기합니다. – rampr