[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: lumi sull'occupazione del filesystem



Il giorno mer, 12/09/2007 alle 12.59 +0200, Fabio Marcone ha scritto:
> ciao a tutti,
> sto studiando come funziona il filesystem.
> 
> in particolare:
> - esiste un comando per sapere la block size per ogni tipo di
> filesystem? (ad es. dumpe2fs per ext2/3, ma non ho trovato
> corrispondenti per reiserfs, e gli altri?)

Non credo ci sia un comando generico. Per ext2/3 dovresti usare tune2fs,
per XFS puoi usare xfs_info.

> - ho notato che le cartelle hanno una dimensione e la dimensione delle
> cartelle cresce col crescere del contenuto della cartella stessa. E'
> possibile calcolare la dimensione di una cartella? tale dimensione è
> dovuta ai metadati?

In genere la directory contiene solo i nomi dei file e il numero del
loro inode. Su vecchi Unix avevi i nomi di 14 caratteri e le directory
erano sempre 18 byte moltiplicato per il numero di file (18 è 14 di nome
più 4 di inode). Puoi vedere la dimensione con il comando ls. Ad esempio

scarafaggio:~# ls -ld /
drwxr-xr-x 21 root root 4096 2007-07-30 17:20 /

dice che la / occupa 4kb. La dimensione delle directory non decresce
quasi mai. Che io sappia l'unico metodo per ridurre la dimensione di una
directory è quella di farne un'altra e copiarci i file.

Ci sono però opzioni particolari, come alcune "feature" di ext3 che
modificano il comportamento sopra descritto. Ad esempio usano delle
tabelle hash per memorizzare le directory oppure preallocano dei blocchi
per non frammentarle troppo.

Nella directory viene memorizzato solo il nome del file. Se per metadati
intendi anche altre informazioni, come il proprietario o i diritti,
allora la risposta è che queste informazioni si trovano negli inode e
non nella directory.

> vorrei fare una funzione che mi calcola la dimensione su disco di un
> direttorio di cui conosco lo spazio occupato effettivo, parametrica nel
> tipo di filesystem e dimensione blocco.

buona fortuna :-)

Ciao,
Giuseppe



Reply to: