Cosa non necessita di deframmentazione? Linux o ext2 ext3 FS?


32

Perché non devi deframmentare un sistema Linux? Perché sta usando il file system ext2 / ext3 o perché è Linux?

Questo è rilevante, poiché ho un doppio sistema di avvio (W7 / Ubuntu) e una partizione comune (NTFS) a cui è possibile accedere da entrambi i sistemi. Se sto usando questa partizione con Linux, verrà frammentata?

Un altro problema sono i contenitori Truecrypt. Li accedo anche con Linux e Windows, e sono FAT32. Vengono frammentati dal funzionamento di Linux su di essi?


2
Le altre risposte sono buone, ma tralasciano un bit importante: tutti i filesystem: ext2 / 3/4 e NTFS frammentano parecchio i file quando sono a corto di spazio su disco. Se vuoi prevenire la frammentazione, non permettere al tuo filesystem di superare il 90%.
Zan Lynx,

1
Se usi ext4, rimarrai sorpreso nel vedere quanta frammentazione puoi avere quando corri e4defrag -v .in un albero di directory, specialmente se contiene, diciamo, file scaricati con un client torrent (anche se alcuni usano fallocate/ posix_fallocate).
rbrito,

Anche se la domanda è soggetta all'opinione personale, penso che si basi maggiormente su fatti reali.
Julie Pelletier,

Risposte:


27

Ecco un articolo su How To Geek su come ext2 / ext3 alloca i file sul disco. E hanno anche un articolo che chiede " Hai davvero bisogno di deframmentare ?"


Sul perché il FAT si frammenta:

"Quando si salva un file in un file system FAT, [il file viene salvato] il più vicino possibile all'inizio del disco. Quando si salva un secondo file, [il file viene salvato] subito dopo il primo file - e così "Quando i file originali aumentano di dimensioni, diventano sempre frammentati. Non c'è spazio nelle vicinanze in cui crescere."
-Come Geek

E Wikipedia ha ulteriori informazioni sulla frammentazione FAT .

Su come EXT2,3,4 alloca i file:

"I file system ext2, ext3 ed ext4 [...] allocano i file in un modo più intelligente. Invece di posizionare più file uno vicino all'altro sul disco rigido, i file system Linux disperdono file diversi su tutto il disco, lasciando una grande quantità di spazio libero tra loro ".
-Come Geek

(E maggiori informazioni sulla deframmentazione su ext3, da Wikipedia )

"I moderni filesystem Linux mantengono al minimo la frammentazione mantenendo vicini tutti i blocchi di un file, anche se non possono essere memorizzati in settori consecutivi. Alcuni filesystem, come ext3, allocano efficacemente il blocco libero più vicino ad altri blocchi in un file. Pertanto non è necessario preoccuparsi della frammentazione in un sistema Linux. "
- TLDP


4
Bella risposta! Ma dovresti aggiungere un po 'più di contenuto. L'idea è che qualsiasi risposta su StackExchange dovrebbe essere sufficiente da sola. Se i link delle tue domande vengono interrotti, la tua risposta non sarà di alcun aiuto, quindi dovresti fornire una spiegazione sufficiente nel tuo post e quindi fornire i link per ulteriori letture.
lgeorget,

1
Grazie @lgeorget - Ho perfezionato la risposta con alcune citazioni di direzione, quindi c'è sempre qualche contenuto da leggere sul "perché". Apprezzo il tuo contributo / critica costruttiva !!
dougBTV,

"Quando si salva un file in un file system FAT, si salva". Non ha senso. Che cos'è"? FAT è un formato di file system. Descrive dove è possibile salvare, ma non ti limita a una singola posizione. In effetti, il sistema operativo decide. Ma ci sono molti diversi sistemi operativi che possono scrivere su FAT e ognuno prende la propria decisione.
MSalters,

@MSalters - concordato. Modificherò la sezione citata per omettere quella vaghezza.
dougBTV,

Il vago è nascosto solo ora. L'affermazione è ancora piuttosto assoluta (dove "FAT" salva) mentre l'intera specifica FAT non dice nulla del genere. In effetti, il link Wikipedia che citi lo contraddice direttamente: dice in modo specifico che Windows sceglie la posizione per il secondo file non direttamente dopo il primo file. ("selezione anticipata di ampie aree contigue")
Saluti

23

La frammentazione è sempre una preoccupazione, indipendentemente dal file system. Ext3 / Ext2, tuttavia, hanno ridotto al minimo il problema al punto in cui la maggior parte degli amministratori opera come se non fosse un problema. Questo è minimizzato dall'uso di un programmatore I / O competente e dal filesystem che lascia spazio finale dopo ogni file per adattarsi alla crescita. Inoltre, i frammenti aggiuntivi vengono archiviati più vicini, quindi anche in presenza di frammentazione, gli effetti sono fortemente silenziati. Il passaggio ext4 alle estensioni era anche destinato a contribuire a mitigare ulteriormente la frammentazione.

La frammentazione esiste ancora, ext2 aveva uno strumento di deframmentazione offline, ext4 ne sta ottenendo uno online e btrfs (solo perché è legato alla domanda) ha già una deframmentazione online. Se sei su ext3 la tua unica vera scelta è quella di convertire in ext4 (via tune2fs) o provare a vedere quanta fortuna hai con strumenti di spazio utente come shake.

A seconda del tipo di I / O in cui si trova il tuo filesystem, potrebbe essere ancora una preoccupazione anche a livello di audio disattivato, motivo per cui gli strumenti online sono stati ritenuti utili all'inizio.

Per la domanda su FAT32, la frammentazione non si verifica quando si opera su un file, ma quando si scrive nel file. Per rispondere direttamente alla tua domanda, la frammentazione è un aspetto della progettazione del filesystem, quindi il tuo filesystem FAT32 ha il potenziale per la frammentazione ogni volta che scrivi qualcosa.


"Questo è minimizzato dall'uso dello scheduler I / O competente". C'è qualcosa che non va proprio con quella frase.
Faheem Mitha,

Grazie per averlo colto. Sono un po 'brutto per rivedere la mia lingua senza correggere i problemi causati dalla revisione con la grammatica generale della frase del paragrafo.
Bratchley,

Questa è una buona risposta Vorrei aggiungere qualcosa su CoW (copia su scrittura). Ha una stretta relazione con se la fs viene frammentata.
Martin Sugioarto,

4

Rispondere alle tue domande, una per una:

Perché non devi deframmentare un sistema Linux? Perché sta usando il file system ext2 / ext3 o perché è Linux?

Poiché ext2 / 3/4 hanno un approccio diverso nei file e nelle cartelle, quindi vengono a malapena frammentati. Altri hanno già risposto al riguardo e puoi leggere maggiori dettagli qui

Questo è rilevante, perché hanno un doppio sistema di avvio (W7 / Ubuntu) e una partizione comune (NTFS) a cui è possibile accedere da entrambi i sistemi. Se sto usando questa partizione con Linux, verrà frammentata?

Sì, può essere frammentato. Non importa se Windows o Linux o qualsiasi altra cosa vi acceda, è come ogni file system gestisce la dimensione del file, come memorizza tutti quei blocchi, se lascia spazi vuoti tra ogni file ...

Un altro problema sono i contenitori Truecrypt. Li accedo anche con Linux e Windows, e sono FAT32. Vengono frammentati dal funzionamento di Linux su di essi?

I contenitori TrueCrypt sono un file, per tutte le questioni pratiche. Quando si crea un contenitore tramite TrueCrypt, si crea un file delle dimensioni scelte. Per il tuo sistema operativo, è proprio come qualsiasi altro file. Se ne fai copie, ecc., Forse le copie potrebbero finire per essere salvate frammentate.

Ma, ricorda, non è mai bene avere più copie dello stesso contenitore, potrebbe aiutare a ridurne la sicurezza. Crea sempre un nuovo contenitore.

Quando si salvano, si eliminano, si copiano, si spostano, ecc., I file all'interno del contenitore, i sistemi operativi non lo conoscono, è come aprire, modificare e salvare qualsiasi altro file, senza modificarne le dimensioni.

E se sei preoccupato per la sicurezza TrueCrypt sulla frammentazione, fai qualche ricerca sull'uso di TrueCrypt con SSD: poiché l'SSD tenta di sfruttare l'usura di tutta la memoria al suo interno, potresti avere lo stesso effetto di copiare il contenitore in giro.


3

Alla fine, dipende dai driver del file system all'interno del sistema operativo.

I file system ext2 e FAT sono entrambi metodi per registrare quali blocchi sul disco appartengono a quale file. Quando non tutti i blocchi di un file sono contigui, il file viene chiamato frammentato. Ma come dovrebbe essere ovvio, la frammentazione è causata dalla strategia di allocazione dei blocchi durante la scrittura di un file, non dal modo in cui si registrano quei blocchi.

Ciò che fa la differenza è quanto lontano possono guardare i driver del file system. Se il driver sa che ci sono altri 10 blocchi da scrivere, può scegliere un'area libera contigua ed evitare la frammentazione futura. Questo dipende dall'architettura del driver, che è specifica del sistema operativo. Ma la stessa ricerca dello spazio libero può essere eseguita su FAT ed ext2.

In effetti ext2 e FAT non sono così diversi come potresti pensare. Ho scritto la parte ext2 di un bootloader sopra il codice FAT esistente e questo ha richiesto meno di 100 righe di codice in più.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.