web-dev-qa-db-fra.com

Comment stocker un milliard de fichiers sur ext4?

Je n'ai créé qu'environ 8 millions de fichiers, puis il n'y avait pas d'inode libre dans/dev/sdb1.

[spider@localhost images]$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            8483456 8483456       0  100% /home

Quelqu'un dit qu'il peut spécifier le nombre d'inodes lors du formatage de la partition.

par exemple. mkfs.ext4 -N 1000000000.

J'ai essayé mais j'ai eu une erreur:

"inode_size (256) * inodes_count (1000000000) trop grand ... spécifiez un inode_ratio plus élevé (-i) ou un nombre d'inodes plus faible (-N).".

Quelle est la valeur inode_ratio appropriée?

J'ai entendu que la valeur min inode_ratio est 1024 pour ext4.

Est-il possible de stocker un milliard de fichiers sur une seule partition? Comment? Et quelqu'un dit que ce sera très lent.

25
redice

Lors de la création d'un système de fichiers ext4, vous pouvez spécifier le type d'utilisation:

mkfs.ext4 -T usage-type /dev/something

Les types d'utilisation disponibles sont répertoriés dans /etc/mke2fs.conf. La principale différence entre les types d'utilisation est le rapport d'inode. Plus le inode ratio est faible, plus vous pouvez créer de fichiers dans votre système de fichiers.

Le type d'utilisation dans mke2fs.conf qui alloue le plus grand nombre d'inodes dans le système de fichiers est "news". Avec ce type d'utilisation sur un disque dur 1 TB, ext4 crée 244 millions d'inodes).

# tune2fs -l /dev/sdb1 | grep -i "inode count"
Inode count:              244219904
# sgdisk --print /dev/sdb
Disk /dev/sdb: 1953525168 sectors, 931.5 GiB

Cela signifie qu'il faudrait plus de 4 TB pour créer un système de fichiers ext4 avec "-Tnews" qui pourrait éventuellement contenir 1 milliard d'inodes.

37