PDA

View Full Version : dubbi sul file system EXT


toni00t
07-06-2013, 18:59
ciao . ho una serie di domande e dubbi sul filesystem ext(la prima versione ,e magari un confronto con la seconda) e in generale anche per altri fs a cui non ho saputo dare risposta.

nel web si legge che il filesystem ext è suddiviso in blocchi(regioni) di dimensione costante :
boot,superblock,ilist, data

nel superBlock è contenuta la dimensione in byte dell inode.Mi chiedo :
se i blocchi sono di dimensione costante , e se ad ogni file presente nel disco deve essere associato un inode , quanti inode può contenere la ilist?
quanto è grande in bytes la ilist?
quanti file al massimo si possono memorizzare con un filesystem ext in un disco?
questo dipende dalle dimensioni del disco o solo dal filesystem?
dove il filesystem legge e conosce quindi il numero massimo di file che può memorizzare?



che cosa si intende per "dimensione massima di un filesystem" ?
in rete si legge .. "la dimensione massima del filesystem ext può essere... " , ma cosa
significa effettivamente?
la dimensione massima del filesystem varia con il variare delle dimensioni del disco?





qual'è la differenza (se c'è) nel formattare in ext un disco da 40gb ad esempio e uno da 300gb? le regioni(boot,superBlock ect..)hanno le stesse dimensioni?


grazie :help:

Khronos
07-06-2013, 19:52
alcune delle tue domande (indirettamente) possono trovar risposta nella pagina di wikipedia che parla di FAT (click). (tipo la dimensione massima del file system, da dove deriva). (http://it.wikipedia.org/wiki/File_Allocation_Table)

la parolina magica è "registri a xx bit". più grande è il registro utilizzato, più grande è - la dimensione / numero di oggetti / indirizzamenti - gestibili.

per le altre, che trattano esattamente com'è fatto Ext, aspetta qualche utente "che ne sa di più".

toni00t
08-06-2013, 05:58
deve essere associato un inode , quanti inode può contenere la ilist?
quanto è grande in bytes la ilist?
quanti file al massimo si possono memorizzare con un filesystem ext in un disco?
questo dipende dalle dimensioni del disco o solo dal filesystem?
dove il filesystem legge e conosce quindi il numero massimo di file che può memorizzare?
che cosa si intende per "dimensione massima di un filesystem" ?
in rete si legge .. "la dimensione massima del filesystem ext può essere... " , ma cosa
significa effettivamente?
la dimensione massima del filesystem varia con il variare delle dimensioni del disco?


ciao grazie per la risposta! avevo gia fatto una ricerca , ma il web è ampio
ed i risultati sono spessi oscuri.

a riguardo di EXT ho letto così: il superBlocco dice la dimensione di ogni inode
e di ogni blocco dati , cosìchè nella ilist ho il numero totale di inode gestibili , statico e definito quando si inizializza un disco con EXT.non è possibile aggiungere inode dopo, ogni nuovo file creato farà un update di un inode esistente.

nel web si legge anche la dimensione del filesystem è il numero totale di blocchi data(liberi +occupati) presenti nel disco




ora, poiche errare è umano se qualcuno ha delle osservazioni da fare su EXT o smentire qualcosa , è il benvenuto;)

pabloski
08-06-2013, 08:15
Si, in pratica l'elemento principale è il block group, che contiene info sulla posizione del superblocco e una bitmap di inodes ( in genere 1024 ).

Il superblocco contiene info sul numero totale degli inodes, ma non sulla loro dimensione.

I vari contatori possono essere a 32 o 64 bit, a seconda delle dimensioni del disco. Quindi di possono avere 2^32 o 2^64 inodes al massimo.

Gli inodes possono avere dimensione variabile, in genere 1024 bytes. Questo implica che ogni file occupa minimo 1024 bytes.

Il numero di inodes ovviamente dipende dalla dimensione fisica del disco.

toni00t
08-06-2013, 11:55
Si, in pratica l'elemento principale è il block group, che contiene info sulla posizione del superblocco e una bitmap di inodes ( in genere 1024 ).

Il superblocco contiene info sul numero totale degli inodes, ma non sulla loro dimensione.

I vari contatori possono essere a 32 o 64 bit, a seconda delle dimensioni del disco. Quindi di possono avere 2^32 o 2^64 inodes al massimo.

Gli inodes possono avere dimensione variabile, in genere 1024 bytes. Questo implica che ogni file occupa minimo 1024 bytes.

Il numero di inodes ovviamente dipende dalla dimensione fisica del disco.


ciao. tu dici che il numero di inode dipende dalla dimensione fisica del disco;abbiamo detto che tutti gli inode vengono creati nella ilist nel momento in cui in disco è inizializzato (parliamo di EXT) . come fa il fs a calcolare questo numero ad es in un disco da 500gb?in EXT inoltre la dimensione di ogni inode è fissata nel superBlock dal fs

grazie

sacarde
08-06-2013, 12:58
nella man di: mkfs.ext3 ci sono:

-i bytes-per-inode

-I inode-size

-N number-of-inodes

pabloski
08-06-2013, 13:55
ciao. tu dici che il numero di inode dipende dalla dimensione fisica del disco;abbiamo detto che tutti gli inode vengono creati nella ilist nel momento in cui in disco è inizializzato (parliamo di EXT) . come fa il fs a calcolare questo numero ad es in un disco da 500gb?in EXT inoltre la dimensione di ogni inode è fissata nel superBlock dal fs

grazie

Il superblock viene creato all'atto della formattazione. Ce n'è più di uno per motivi di affidabilità, ma contengono i medesimi dati.

Quello che il superblock riporta è il block size, non l'i-node size!! L'i-node è una tabella con N entry e ognuna punta ad un blocco dati. Nelle ultime versioni del filesystem è possibile puntare ad altri i-node ( indirizzamento indiretto ).

Per farla breve è possibile indicizzare file di dimensioni arbitrarie e senza sprecare un botto di spazio ( come accade con fat ad esempio ).

Ovviamente il calcola parte da:

dim_disco / block_size --> mi dà il numero di blocco dati necessari
num_blocchi / i_node_size --> mi dà il numero di i-nodes necessari

chiaramente l'i-node contiene pure altri dati, ma il punto è che ha una dimensione definita all'atto della formattazione

in base alla dimensione, so che posso indicizzare un tot di blocchi dati massimo

toni00t
09-06-2013, 12:08
Il superblock viene creato all'atto della formattazione. Ce n'è più di uno per motivi di affidabilità, ma contengono i medesimi dati.

Quello che il superblock riporta è il block size, non l'i-node size!! L'i-node è una tabella con N entry e ognuna punta ad un blocco dati. Nelle ultime versioni del filesystem è possibile puntare ad altri i-node ( indirizzamento indiretto ).



ciao , ma io parlo nel fs EXT . nel numero di linux pro leggo che le dimensioni di un inode sono settate nel superBlock. tu ti riferisci a EXT prima versione?
grazie per il contributo

pabloski
09-06-2013, 13:52
ciao , ma io parlo nel fs EXT . nel numero di linux pro leggo che le dimensioni di un inode sono settate nel superBlock. tu ti riferisci a EXT prima versione?
grazie per il contributo

Si, in effetti in ext2/3/4 è stata aggiunta una sezione estensioni al superblock e c'è l'inode size dentro.