Com o ext4 (e a família extfs), as tabelas de inodes são pré-alocadas em tempo de formatação. Esse é o comportamento tradicional do Unix em relação aos sistemas de arquivos. Ao formatar um volume com o sistema de arquivos extfs, você pode ajustar o número de inode que você espera usando o parâmetro -N
do utilitário mkfs. ( Fonte ).
Esse design pode oferecer melhor desempenho (ao alocar muitos arquivos por vez) apesar da escalabilidade. É preciso estimar o número de inode necessário no momento do formato. Um volume contendo na maioria arquivos pequenos, digamos um servidor de e-mail, exigirá mais inodes por gigabyte do que um volume contendo ISOs.
Depois de usar todos os inodes, você não poderá criar novos arquivos, mesmo que ainda haja espaço livre na unidade. Quanto maior o volume, maiores serão as tabelas de inodes. Isso leva a muitos gigabytes perdidos em grandes unidades.
Por outro lado, XFS usa uma técnica chamada "alocação dinâmica de inode" (Source ). Isso leva a uma melhor escalabilidade à medida que o número de inodes aumenta ou diminui dependendo da quantidade de dados no volume. Esse é um design melhor quando você não pode prever para o que o sistema de arquivos será usado ou quando você deseja salvar o espaço extra para seus dados. Este é também o comportamento NTFS .
O que foi dito sobre journaling está errado, o journaling custa apenas alguns megabytes. A principal perda de espaço é devido à alocação estática do inode.