Live Support My forum, my way! Il forum dei newsgroup: Linux » Miti e leggende sulla frammentazione del file system [WAS Re: programmi indispensabili]
My forum, my way! Il forum dei newsgroup
Fast Uncompromising Discussions.Newsgroup FUDforum will get your users talking.

Loading
Utenti      F.A.Q.    Registrati    Login    Home
Home » Computer » Linux » Miti e leggende sulla frammentazione del file system [WAS Re: programmi indispensabili]
Miti e leggende sulla frammentazione del file system [WAS Re: programmi indispensabili] [messaggio #36543] sab, 12 marzo 2011 15:47 Messaggio precedente
Enrico 'Henryx' Bianc  è attualmente disconnesso Enrico 'Henryx' Bianc
Messaggi: 212
Registrato: febbraio 2011
Senior Member
Francesco wrote:

> Mi sembra di ricordare che l'fsck schedulato aiutasse in tal senso

Fsck non deframmenta, da quel punto di vista si limita soltanto ad
analizzare il livello di frammentazione del disco. A questo punto, direi che
sia ora di sfatare il mito del "Linux non ha bisogno della
deframmentazione". Linux ha bisogno della deframmentazione, ma solo in certi
contesti. Supponiamo che quello rappresentato qui sotto sia un disco rigido
formattato in FAT (in NTFS dovrebbe essere identico, ma non ne sono sicuro)
dove ogni settore rappresenta un byte:

-----------------------
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

Nel momento di scrivere i dati del file A, avremo questa situazione:

-----------------------
|A|A|A|A| | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

Ora, supponiamo di aggiungere il file B:

-----------------------
|A|A|A|A|B|B|B|B|B|B|B|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

E, successivamente, di modificare il file A:

-----------------------
|A|A|A|A|B|B|B|B|B|B|B|
|A|A|A| | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

La situazione penso che sia chiara: abbiamo il file A frammentato in quanto
i suoi dati sono sparsi per il disco a causa di una occupazione del file
system da parte di altri dati. Cosa succede su Linux? Partiamo dalla
scrittura del file A:

-----------------------
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | |A|A|A|A| | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

In sostanza, non e` detto che la scrittura del file sia sequenziale, anzi,
aggiungendo il file B nulla ci vieta di avere questa situazione:

-----------------------
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | |B|B|B|B|B|B|
|B| | | | | | | | | | |
| | |A|A|A|A| | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
-----------------------

Ovvero, l'allocazione non e` per nulla contigua rispetto allo spazio
occupato disponibile. Questo perche` in Linux e` implementato un algoritmo
di rilocazione dei file in modo da evitare partendo *dalla* *radice*
problematiche di frammentazione. Questo e` ottimo, ma solo in determinate
circostanze, ovvero, non e` infrequente di ritrovarsi in situazioni del
genere:

-----------------------
| | |C|C| | | | | | | |
| | | | | | | | | | | |
| | | | | |B|B|B|B|B|B|
|B|B|B|B|B|B|B|B|B|B|B|
|B|B|A|A|A|A|A|B|B|A|A|
|A| | | | |E|E|E|E| | |
| |F|F|F| | | | | | | |
| | | | | | |D|D|D|D|D|
-----------------------

In altre parole, la crescita del file B (che potrebbe essere benissimo un
log) e` stata tale da provocare sia la sua frammentazione che la
frammentazione di altri file. E a questo non c'e` file system che tenga,
l'unica e` deframmentare, e gli unici modi per farlo sono tramite gli
appositi tool (se esistono) o ricreando il file. Su Windows, tali tool sono
disponibili in una infinita` di modi (da quelli che usano il motore interno,
come MyDefrag, a quelli che ne implementano uno proprio), sotto Linux o non
sono disponibili (e.g. per ext3 non esistono, mentre per ext2 esiste e per
ext4 e` pianificato), o sono disponibili solo per determinati file system
(e.g. per XFS c'e` xfs_fsr). Questo, ovviamente, non significa che una delle
due situazioni sia meglio dell'altra, ma semplicemente che ogni sistema si
approccia in modo differente al problema (in Windows ci si affida totalmente
al defrag, in Linux si cerca prima di evitare il problema e poi, se proprio
non si puo` evitare, ti allerta)

Enrico
P.S. e` impostato l'xpost con it.comp.os.linux.iniziare
P.S. giusto per completezza, su Linux esiste filefrag che mostra lo stato di
frammentazione di un file
P.P.S. per chi sia interessato al discorso, puo` partire da qui:
http://en.wikipedia.org/wiki/Defragmentation (tra le altre cose vi e` un
link ad uno schema piu` dettagliato di quello che ho fatto io)
 
Leggi messaggio
Leggi messaggio
Argomento precedente:Dual monitor
Argomento successivo:colpetti di tosse? ci va l'antibiotico!
Vai al forum:
  


Ora corrente: sab ott 05 09:24:34 CEST 2024

Tempo totale richiesto per generare la pagina: 0.02249 secondi
.:: Contatti :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Live Support