Deframmentazione in Linux
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Yellowhat
- Linux 2.x

- Messaggi: 218
- Iscritto il: mer 26 dic 2007, 16:58
- Slackware: Current
- Località: Modena
Deframmentazione in Linux
Deframmentando le partizioni windows mi sono posto il problema di com'è possibile che i file system linux non hanno questo problema.
Perciò mi potreste spiegare come fà linux a non aver bisogno di essere deframmentato?
Perciò mi potreste spiegare come fà linux a non aver bisogno di essere deframmentato?
- Bruffandino
- Linux 1.x

- Messaggi: 183
- Iscritto il: mer 24 nov 2004, 0:00
- Slackware: 12.2
- Kernel: 2.6.28
- Desktop: KDE 3.5.10
Re: Deframmentazione in Linux
Detto in due parole (non è così banale la cosa ovviamente):
Quando in Windows copi un nuovo file, questo viene memorizzato nelle prime posizioni di memoria disponibili (contigue o non)..questo crea frammentazione..
In linux invece il file copiato viene memorizzato in un'area di memoria in cui tutto il file (se possibile) ci sta.. chiaramente anche così si crea frammentazione.. ma a quanto si dice il problema non è rilevante se lo spazio occupato sulla partizione non supera il 95%..
Tutto ciò vale per ext2/3.. per le altre credo sia simile il discorso..
Quando in Windows copi un nuovo file, questo viene memorizzato nelle prime posizioni di memoria disponibili (contigue o non)..questo crea frammentazione..
In linux invece il file copiato viene memorizzato in un'area di memoria in cui tutto il file (se possibile) ci sta.. chiaramente anche così si crea frammentazione.. ma a quanto si dice il problema non è rilevante se lo spazio occupato sulla partizione non supera il 95%..
Tutto ciò vale per ext2/3.. per le altre credo sia simile il discorso..
- phobos3576
- Staff

- Messaggi: 2980
- Iscritto il: dom 17 apr 2005, 0:00
- Slackware: 13.1
- Kernel: 2.6.37-smp
- Desktop: KDE 4.5.3
Re: Deframmentazione in Linux
Prima di tutto devi immaginare un hard disk come se fosse un vettore di n elementi consecutivi e contigui (anche se in realtà non è così); ogni elemento ha una dimensione fissa (ad esempio, 1024 byte). Un file di grosse dimensioni, viene quindi spezzato in tanti blocchi da 1024 byte per poter essere memorizzato sull'hard disk.
L'ideale sarebbe disporre tutti questi blocchi in modo consecutivo e contiguo; in questo modo, le testine dell'hard disk possono accedere in I/O al file nel modo più rapido possibile. Non sempre però tutto ciò è possibile; a forza di creare, modificare e cancellare file, sull'hard disk si vengono a formare zone occupate intervallate da zone libere.
Sin dai tempi del DOS, la Microsoft ha ritenuto che il modo migliore per affrontare questo problema consistesse nel rappresentare il file sotto forma di una "lista collegata" e cioè, una sequenza di blocchi sparpagliati nelle varie zone libere dell'hard disk; ciascun blocco di uno stesso file, ha un puntatore al blocco successivo in modo da permettere al sistema operativo di percorrere il file stesso dal primo all'ultimo blocco.
Il sistema adottato dalla Microsoft porta rapidamente ad una gigantesca frammentazione dell'hard disk con migliaia di file che si intrecciano tra loro in modo pauroso; ciò richiede l'uso di appositi tool di deframmentazione per evitare che la testina dell'hard disk arrivi letteralmente ad impazzire a causa dei continui salti da un blocco all'altro.
I filesystem adottati in ambiente Linux utilizzano sofisticati algoritmi che permettono di ottimizzare al massimo la disposizione dei file sull'hard disk; in sostanza, ogni volta che si deve memorizzare un file su filesystem ext3, ad esempio, Linux va a cercare la sequenza di blocchi liberi, consecutivi e contigui, che più si avvicinano alla dimensione del file da memorizzare.
Ad esempio, se devo memorizzare un file da 120 MB e Linux trova tre aree libere sull'hard disk, una da 250 Mb, una da 130 MB e una da 540 MB, viene chiaramente scelta l'area libera da 130 MB; inoltre, in caso di modifica o cancellazione di un file, viene anche effettuata una riorganizzazione dell'hard disk con lo scopo di unire in un unico blocco il maggior numero di aree libere vicine tra loro.
Come si può facilmente capire, anche questo sistema è soggetto a frammentazione, ma ciò accade in periodi di tempo lunghissimi (diversi anni) e in modo tanto più irrilevante quanto maggiore è lo spazio libero presente sull'hard disk.
Adesso la Microsoft si è resa conto che la strada adottata da Linux, UNIX, BSD, Solaris, etc, è molto più conveniente e sta cercando di rimediare attraverso un apposito filesystem che doveva essere introdotto a partire da Windows Vista con il nome "WinFS"; all'ultimo momento hanno rinunciato a causa dei troppi crash che hanno ottenuto durante i test.
In pratica, anche copiando spudoratamente non riescono ad ottenere risultati.
L'ideale sarebbe disporre tutti questi blocchi in modo consecutivo e contiguo; in questo modo, le testine dell'hard disk possono accedere in I/O al file nel modo più rapido possibile. Non sempre però tutto ciò è possibile; a forza di creare, modificare e cancellare file, sull'hard disk si vengono a formare zone occupate intervallate da zone libere.
Sin dai tempi del DOS, la Microsoft ha ritenuto che il modo migliore per affrontare questo problema consistesse nel rappresentare il file sotto forma di una "lista collegata" e cioè, una sequenza di blocchi sparpagliati nelle varie zone libere dell'hard disk; ciascun blocco di uno stesso file, ha un puntatore al blocco successivo in modo da permettere al sistema operativo di percorrere il file stesso dal primo all'ultimo blocco.
Il sistema adottato dalla Microsoft porta rapidamente ad una gigantesca frammentazione dell'hard disk con migliaia di file che si intrecciano tra loro in modo pauroso; ciò richiede l'uso di appositi tool di deframmentazione per evitare che la testina dell'hard disk arrivi letteralmente ad impazzire a causa dei continui salti da un blocco all'altro.
I filesystem adottati in ambiente Linux utilizzano sofisticati algoritmi che permettono di ottimizzare al massimo la disposizione dei file sull'hard disk; in sostanza, ogni volta che si deve memorizzare un file su filesystem ext3, ad esempio, Linux va a cercare la sequenza di blocchi liberi, consecutivi e contigui, che più si avvicinano alla dimensione del file da memorizzare.
Ad esempio, se devo memorizzare un file da 120 MB e Linux trova tre aree libere sull'hard disk, una da 250 Mb, una da 130 MB e una da 540 MB, viene chiaramente scelta l'area libera da 130 MB; inoltre, in caso di modifica o cancellazione di un file, viene anche effettuata una riorganizzazione dell'hard disk con lo scopo di unire in un unico blocco il maggior numero di aree libere vicine tra loro.
Come si può facilmente capire, anche questo sistema è soggetto a frammentazione, ma ciò accade in periodi di tempo lunghissimi (diversi anni) e in modo tanto più irrilevante quanto maggiore è lo spazio libero presente sull'hard disk.
Adesso la Microsoft si è resa conto che la strada adottata da Linux, UNIX, BSD, Solaris, etc, è molto più conveniente e sta cercando di rimediare attraverso un apposito filesystem che doveva essere introdotto a partire da Windows Vista con il nome "WinFS"; all'ultimo momento hanno rinunciato a causa dei troppi crash che hanno ottenuto durante i test.
In pratica, anche copiando spudoratamente non riescono ad ottenere risultati.
- EmaDaCuz
- Linux 3.x

- Messaggi: 877
- Iscritto il: sab 28 gen 2006, 15:47
- Slackware: 12.0 - ma a Trieste
- Kernel: 2.6.25
- Desktop: Fluxbox
- Distribuzione: Debian e Arch
- Località: Nijmegen, NL
- Contatta:
Re: Deframmentazione in Linux
Io mi collego solo in parte al discorso. Vi chiedo, esiste un tool per deframmentare un HD in FAT32 da Linux? Ve lo chiedo perchè ho un vecchio HD esterno ridotto ormai ad un colabrodo, dove i frammenti di file sono ormai disposti in maniera casuale.
Offtopic: Premetto che non ho usato il tasto Cerca e nemmeno un motore di ricerca
Offtopic: Premetto che non ho usato il tasto Cerca e nemmeno un motore di ricerca
-
birg81
- Linux 3.x

- Messaggi: 760
- Iscritto il: lun 16 gen 2006, 10:57
- Nome Cognome: Biagio
- Slackware: 12.2
- Kernel: 3.4.7
- Desktop: LxDE
- Distribuzione: ArchLinux
- Località: Castellammare di Stabia (NA)
- Contatta:
Re: Deframmentazione in Linux
E ora la mia domand sorge spontanea, la gestione dello spazio su una fat32 è fatta meglio con linux o meglio con windows?EmaDaCuz ha scritto:Io mi collego solo in parte al discorso. Vi chiedo, esiste un tool per deframmentare un HD in FAT32 da Linux? Ve lo chiedo perchè ho un vecchio HD esterno ridotto ormai ad un colabrodo, dove i frammenti di file sono ormai disposti in maniera casuale.
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Deframmentazione in Linux
Dimentichi UNIX, nel 1986 era AT&T SVR2 a 32bit,birg81 ha scritto: E ora la mia domand sorge spontanea, la gestione dello spazio su una fat32 è fatta meglio con linux o meglio con windows?
con tanto di fsck per riorganizzare il disco, 72MB ai tempi,
windoze non esisteva, solo M$-DO$ 2 a 8bit.
Due mondi gia` allora, e Linux e` IMHO UNIX II.
-
birg81
- Linux 3.x

- Messaggi: 760
- Iscritto il: lun 16 gen 2006, 10:57
- Nome Cognome: Biagio
- Slackware: 12.2
- Kernel: 3.4.7
- Desktop: LxDE
- Distribuzione: ArchLinux
- Località: Castellammare di Stabia (NA)
- Contatta:
Re: Deframmentazione in Linux
si ma non mi hai fatto capire in ambito di livello di deframmentazione interna / esterna utilizzando una fat (fat / fat32) che è che produce piu' frammentazione o è indifferente e dipende solo dal file system?Mario Vanoni ha scritto:Dimentichi UNIX, nel 1986 era AT&T SVR2 a 32bit,
con tanto di fsck per riorganizzare il disco, 72MB ai tempi,
windoze non esisteva, solo M$-DO$ 2 a 8bit.
Due mondi gia` allora, e Linux e` IMHO UNIX II.
- FireEater
- Linux 3.x

- Messaggi: 508
- Iscritto il: sab 5 feb 2005, 0:00
- Nome Cognome: Giuseppe M.
- Slackware: Current
- Kernel: 2.6.32.7-smp
- Desktop: kde 4.3.4
- Località: Cagliari <---> Torino
Re: Deframmentazione in Linux
Il sistema operativo memorizza i file in base alle specifiche del filesystem.birg81 ha scritto: si ma non mi hai fatto capire in ambito di livello di deframmentazione interna / esterna utilizzando una fat (fat / fat32) che è che produce piu' frammentazione o è indifferente e dipende solo dal file system?
I filesystem FAT si basano sulla File Allocation Table, la tabella in cui è memorizzato PER OGNI CLUSTER l'indirizzo del successivo cluster che compone il file memorizzato(in parte) in quel cluster oppure se il cluster stesso è libero, riservato o danneggiato.
Per come è strutturato si creerebbe un overhead troppo alto per la ricerca di spazi liberi contigui prima della fase di scrittura di un nuovo file.
UFS e ext2 (gli altri non saprei), hanno un indice prima di ogni cilindro(furbo eh!?) in modo che le testine non debbano spostarsi fino all'inizio dell'HD per andare a vedere l'indirizzo di una eventuale parte non contigua. Anche se comunque è nato dopo parecchi anni rispetto al FAT.
Il discorso della frammentazione interna appartiene ai Cluster di dimensione fissa (altro problema di cui è affetto il filesystem FAT mentre ext2 no) perchè nell'ultimo cluster che contiene il file resta quasi sempre spazio libero sprecato.birg81 ha scritto: si ma non mi hai fatto capire in ambito di livello di deframmentazione interna / esterna
La frammentazione esterna mi pare che non esista(nei filesystem).
Ciao a tutti.
fire_eater