Qual è il numero massimo di file che può contenere un file system?


34

Data l'attuale struttura di una voce di directory su un file system ext4 su Ubuntu, qual è il numero massimo di file che può contenere un file system?

Qual è il metodo generale per calcolare il numero massimo di file che può contenere un file system?

Risposte:


37

Ext4 ha un limite teorico di 4 miliardi di file, che è limitato dalla dimensione del numero di inode utilizzato per identificare ciascun file (ext4 utilizza numeri di inode a 32 bit). Tuttavia, come dice John, ext4 alloca staticamente le tabelle degli inode, quindi il limite effettivo viene impostato quando viene creato il filesystem.

Il comando df mostra un conteggio di inode gratuiti sul tuo filesystem:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4 supporta anche un numero illimitato di sottodirectory per directory, sebbene possa essere impostato per impostazione predefinita a un limite di 64.000. Questo è configurabile - vedi l' articolo ext4 su Kernel Newbies .

Per ulteriori informazioni, consultare Il nuovo filesystem ext4: stato attuale e piani futuri del Linux Symposium 2007.


9

Non ce n'è uno di per sé; dipende. Quando si crea un file system ext4, si decide la dimensione della tabella degli inode , che a sua volta regola il numero totale di directory o file che il file system può contenere contemporaneamente.


8
puoi eseguire tune2fs -l /path/to/devicee cercare il valore di conteggio degli Inodi per trovare quale sia il limite per un determinato filesystem

1
Possiamo aumentare il conteggio degli Inodi? Per quanto ne so, gli inode sono memorizzati come un elenco collegato, quindi è come aggiungere più nodi all'elenco collegato. Immagino, la domanda si riduce a quale può essere la lunghezza massima di un elenco collegato?

4
In ext4 la tabella degli inode viene allocata staticamente quando viene creato il filesystem. L'unico modo per aumentarlo è ricreare il filesystem. Le opzioni -N o -i vengono utilizzate per impostare il numero di inode creati.

1
Vale anche la pena notare che le directory sono file e devono essere conteggiate come tali.
dmckee

1
Come sono i collegamenti simbolici. Non sono sicuro che dispositivi, FIFO e socket contino o meno.
effimero

1

Non Ubuntu, ma su Redhat i comandi di base di Linux come find falliscono con un errore "Troppi argomenti" quando eseguito contro una directory contenente 3 milioni di file. Viene eseguito correttamente se non sono inclusi parametri, ma non riesce con lo stesso errore non appena vengono aggiunti i parametri del filtro.

Supponendo che l'affidabilità di tali comandi di base sia un requisito obbligatorio, suggerirei che 3 milioni di file sono troppi.


3
Questa non è una limitazione del filesystem però.
user9517 supporta GoFundMonica il

1
Buon punto! L'FS può supportarlo ma gli strumenti avranno sempre più difficoltà a gestirlo.
Csaba Toth,
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.