2010-01-14 6 views
1

Nous utilisons Amazon EBS pour stocker un grand nombre de petits fichiers (< 10KB) dans une structure de répertoires à 3 niveaux.Nombre d'inodes dans une partition ne correspondant pas au nombre maximum d'inodes que la partition doit prendre en charge

 ~/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 

La partition en question est/vol (taille: 200 Go)

 ~/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 

Le nombre d'inodes pour la partition/vol sont + 13 millions. La taille du bloc est 4096. En prenant la taille de bloc comme 4096, le nombre d'inodes que la partition de 200 Go (ext3) devrait supporter est de 52 millions + (calcul d'inode maximum: taille du volume en octets/2^12). Alors pourquoi la partition ne supporte que 13million d'inode?

+0

Sam, merci pour votre réponse. La taille du bloc est de 4 Ko (et non de 8 Ko). Mais même si nous prenons 8 Ko, le nombre ne correspond toujours pas. 200GB/8KB = 26Million + (et non 13Million). – lazynerd

+0

Bon, vous venez de faire valoir mon point de vue ... vous faites des calculs basés sur ce que vous pensez que mkfs.ext3 aurait dû faire. Je dis juste que votre volume a été alloué avec 13M inodes, et ils sont tous utilisés. Donc, si vous envisagez d'écrire beaucoup de petits fichiers sur un volume, vérifiez les inodes au moment mkfs. Btw, si vous répondez aux réponses des gens, ils sont avertis. Seulement vu votre réponse ici bc Je suis retourné pour vérifier cette question manuellement. –

Répondre

2

Je suis assez sûr que les inodes sont alloués statiquement lorsque vous créez le volume (en utilisant mfs.ext3 dans ce cas). Pour quelque raison que ce soit, mkfs.ext3 a décidé de réserver 13 millions d'inodes et maintenant vous ne pouvez plus créer de fichiers.

Voir cette 2001 discussion of inodes

La page Wikipedia ext3 a une note expliquant cette façon plus concise: wiki link

En outre, inodes sont attribués par fichier (bloc non), ce qui est la raison pour laquelle il n'y a que 13M inodes - mkfs.ext3 doit avoir été configuré avec une taille de fichier moyenne de 8 Ko, ce qui expliquerait le problème que vous voyez.

+0

le footnode dans le même article http://en.wikipedia.org/wiki/Ext3#cite_note-0 parle de la limite d'inode – rampr