limite massimo di inode del file system ext4 - qualcuno può spiegare?


16

Di recente abbiamo avuto un problema in cui uno dei file system ext4 sembrava incapace di gestire un numero molto elevato di file, more than 6mln in this casenonostante avesse abbastanza spazio. È 6mlnil numero massimo che può avere un file system ext4 se formattato con tutte le impostazioni predefinite? Ho provato a cercarlo su Google ma non ho ricevuto alcuna risposta definitiva. Qualcuno qui può far luce su questo per favore? Saluti!!

Risposte:


20

Non esiste un valore predefinito come tale per ext4, dipende dalle dimensioni del dispositivo e dalle opzioni scelte al momento della creazione. Puoi controllare i limiti esistenti usando

tune2fs -l /path/to/device

Per esempio,

root@xwing:~# tune2fs -l /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /

[lots of stuff snipped]

Inode count:              1277952
Free inodes:              1069532
Inodes per group:         8192
Inode blocks per group:   512

[lots of stuff snipped]

Come da man mkfs.ext4

-i byte per inode

Specificare il rapporto byte / inode. mke2fs crea un inode per ogni byte per inode byte di spazio sul disco. Maggiore è il rapporto byte per inode, meno inode verranno creati. Questo valore generalmente non dovrebbe essere inferiore alla dimensione del filesystem, poiché in tal caso verrebbero creati più inode di quanti ne possano mai essere usati. Tieni presente che non è possibile espandere il numero di inode su un file system dopo che è stato creato, quindi fai attenzione a decidere il valore corretto per questo parametro.


6

Dipende da come hai formattato il filesystem. Usando tune2fs -l <device>puoi trovare il numero di inode del tuo dispositivo, probabilmente circa 6 milioni di inode nel tuo caso. Ogni file o directory utilizza un inode.

Per quanto ne so, l'unica possibilità per aumentare il numero di inode è riformattare il filesystem. Il -iparametro su mkfspuò essere usato per specificare il rapporto byte / inode. Il valore predefinito è definito in /etc/mke2fs.conf(sul mio sistema: 16384).

Un rapporto byte / inode maggiore definisce un numero inferiore di inode, uno più piccolo in più inode. I valori predefiniti funzionano bene nella maggior parte dei casi, ma se si dispone di un numero elevato di file di piccole dimensioni, è possibile che si verifichi un limite e potrebbe essere necessario formattare il file system con un rapporto byte / inode più piccolo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.