[Linux-Biella] Frammentazione file

Jumping Jack jumpingjack a mclink.it
Mer 11 Maggio 2011 13:42:00 CEST



On 11/05/2011 13:16, Luca Gentile wrote:
> Il giorno Tue, 10 May 2011 22:51:32 +0200
> Jumping Jack<jumpingjack a mclink.it>  ha scritto:
>
>    
>> Come viene gestita la frammentazione dei file su Linux? Perchè si
>> dice che non serve deframmentare?
>>
>> JJ
>>      
> quando tempo fa mi feci questa domanda provai a cercarmi la risposta da
> solo su gugol. e gugol rispose.
>
> quanto ho letto io lo riassumo qui in maniera non tecnica e non
> ineccepibile.
>
> l'ntfs, oltre ad avere una tabella partizioni più ingombrante, quando
> viene letto da W$, così come il FAT, quest'ultimo aggiunge dei file
> nella partizione per facilitarsi la lettura. a parte questo ecco la
> grande differenza:
>
> l'ntfs è stupido. ossia: non sa che esiste la terza dimensione e tratta
> i cilindri dell'hd come fosse una spirale, ossia un array di lunghezza
> pari alla spirale che percorre il cilindro, il tutto approssimato, per
> ovvi motivi puramente geometrici. in questo modo ad un blocco risultano
> adiacenti solo 2 blocchi, il precedente ed il successivo e quando viene
> allocato un file vengon presi in considerazione blocchi che sono
> sequenziali, NON fisicamente vicini.
>
> cosa intendo per fisicamente vicini? e qui arriviamo ai fs tipo ext.
> questi si scrivono i dati relativi alla geometria dei cilindri e li
> trattano come tali. viva la terza dimensione. in questo modo il cilindro
> viene sviluppato in una matrice rettangolare, e qui arriviamo al
> concetto di "fisicamente vicino". come comprensibile, ad un blocco
> risultano adiacenti 8 blocchi, in questo modo quando il sistema alloca
> dello spazio considera una zona di 9 blocchi, uno centrale ed i suoi 8
> blocchi adiacenti, mentre con l'ntfs si considera un blocco e i suoi 2
> successivo-precedente.
>
> mi pare chiaro che siamo in un rapporto 9 a 3. la frammentazione è al
> quadrato su un fs ntfs.
>
>
> non so se ubuntu segue ancora la filosofia GNU/linux per quanto
> riguarda la gestione dei fs, ma su debian ogni 30 mount [cifra
> modificabile e disattivabile] di una partizione, durante il boot fa un
> fsck di controllo alla ricerca di eventuali errori o di frammentazioni
> eccessive. al termine risponde con un "0x.x% file non-contiguous" [si,
> la prima cifra è praticamente sempre uno 0 :P ].
> prova a dare un 'man fsck' e leggi cosa fa, come usarlo, ecc.
>
> ps: quanto scritto sopra è relativo all'ntfs di qualche tempo fa. non
> so se ora è stato modificato.
Non so se sia possibile ora fare quello che hai scritto. La struttura 
del disco interno non è accessibile al SO, infatti il disco può 
rimappare settori a suo piacimento, quando li trova danneggiati o 
prossimi al danneggiamento. Per cui uno spazio continuo logicamente può 
non essere contiguo fisicamente. E' però possibile che la logica di 
struttura di ext sia, in fase di creazione, compatibile con il tipo di 
disco. In ogni caso la maggior parte dei dischi ora è composta da un 
solo piatto e spesso ne viene usata una sola faccia, per cui, 
l'adiacenza spaziale è limitata a 5 e nemmeno sempre. Ci possono anche 
essere intere tracce saltate e l'allineamento tra tracce adiacenti non è 
logico, ma è relativo al tempo di spostamento della testina, per cui 
dubito che ci sia corrispondenza tra piatti diversi.

JJ


Maggiori informazioni sulla lista Linux