MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20080829222029

Come modificare la dimensione dei cluster

a cura di Zane
18/01/2007 - articolo
Tecniche Avanzate - Qualche osservazione riguardo il file system NTFS e la modalità di suddivisione dei settori del disco in unità di allocazione (cluster): cosa comporta una dimensione sbagliata e come rimediare.

I filesystem tipici del mondo Windows, quindi FAT16, FAT32 e NTFS nelle sue varie versioni, utilizzano una metodologia di memorizzazione che raggruppa una serie di settori fisici del disco in una entità logica, detta cluster (grappolo) oppure unità di allocazione file. Il motivo è di tipo prestazionale.

Esemplificando, pensate ad un settore del disco come ad una scatola di cartone e, idealmente, ad un cluster come ad una scatola più grande che contiene alcune scatole più piccole, rendendo disponibile di fatto un "volume" pari alla somma dei settori contenuti. La scatola verrà quindi utilizzata per contenere i file.

Un cluster è quindi la più piccola parte di disco allocabile dal sistema operativo ad un determinato programma o documento: in caso un file abbia dimensioni uguali o più piccole ad un cluster ne verrà utilizzato uno solo, mentre se le dimensioni sono maggiori il file verrà "spalmato" su più cluster: sarà quindi compito delle strutture proprie del filesystem (non per niente si chiama FAT, File Allocation Table) tenere traccia della posizione dei singoli cluster di cui è composto ogni file.

NTFS, a cui dedicheremo la nostra attenzione in questo articolo (il filesystem FAT è ormai obsoleto), gestisce cluster da una dimensione minima di 512 byte (mezzo kilobyte) fino a 64 kB. È presente inoltre una limitazione per cui la compressione è disponibile solamente in caso la dimensione dei cluster sia uguale o inferiore a 4 kB.

Quando le dimensioni contano!

Se avete installato Windows XP scegliendo al momento del setup NTFS come filesystem ed avete un disco più grande di 2 GB, la dimensione dei cluster è di 4 kB: potete comunque verificarlo selezionando start -> esegui e digitando qui cmd. Apertasi la finestra di comando, digitate chkdsk c: (sostituendo chiaramente a c: l'identificativo della partizione/disco che volete esaminare) e controllate il valore byte in ogni unità di allocazione

Disk_cluster_size.gif

In caso il valore sia pari o superiore a 4.096 byte siete nella norma: il vostro sistema funziona correttamente e, a meno che non siate molto appassionati di tweaking e smanettamento vi consiglio di fermarvi qui.

Se invece il valore riportato è pari a 2.048 byte o meno, avete sicuramente un problema prestazionale...

Attenzione alla conversione!

Se avete convertito la vostra partizione da FAT32 ad NTFS senza seguire le dovute procedure, con tutta probabilità vi ritrovate con cluster di 512 byte: se questo è il vostro caso, continuate a leggere, vedremo a breve come riportare la situazione ai livelli di eccellenza.

Piccoli per minimizzare gli sprechi...

Di primo acchito potrebbe sembrare che adottare cluster di grandi dimensioni comporti solo svantaggi: ipotizzando di avere, ad esempio, unità di allocazione dimensionate a 4 kB, tutti i file minori di tale limite (quindi, molti file testuali e numerosi INI ed INF di sistema) occuperebbero sempre e comunque 4 kB.

Per comprendere quanto spazio possa essere sprecato in questo modo facciamo un rapido calcolo, con numeri probabilmente esagerati ma utili per capire il problema. Ipotizziamo di avere 1.000 file da 2 kB ciascuno. Poiché, abbiamo detto, il sistema non è in grado di gestire locazioni minori della dimensione del cluster, Windows allocherà comunque 4 kB per ogni file, occupando quindi 4.000 kB (grossomodo 4 MB). Se invece avessimo utilizzato cluster di 2 kB, gli stessi file avrebbero potuto essere memorizzati in 2.000 kB (~ 2 MB).

... grandi per l'efficienza

Se è indubbio che per minimizzare gli sprechi di spazio cluster piccoli siano più vantaggiosi, quando si esamina la cosa dal punto di vista prestazionale le cose cambiano notevolmente.

Innanzitutto, per motivi facilmente deducibili i cluster grandi tendono a ridurre la frammentazione dei file, a tutto beneficio dei tempi di ricerca e trasferimento dei dati dal disco.

Un maggior numero di informazioni contigue fa sì che il sistema operativo debba consultare l'indice del file system un numero minore di volte, risparmiando tempo.

Inoltre, è opinione di molti specialisti del settore che, a parità di accessi, il sistema operativo è in grado di trasferire maggiori informazioni se lavora con cluster più grandi. Sinceramente non saprei dire quanto quest'ultima considerazione possa essere corretta (d'altro canto, sempre di scorrere settori fisici si tratta...), ma fattosta che è dimostrato sperimentalmente che cluster di dimensioni maggiori portano a prestazioni migliori, soprattutto con file molto grandi.

Un giusto equilibrio

La dimensione di 4 kB proposta da Windows XP sembra essere, statisticamente, un buon compromesso fra la necessità di minimizzare gli sprechi e la ricerca delle migliori prestazioni possibili.

Non si tratta però della migliore in assoluto: soprattutto ai giorni nostri, in cui fra tonnellate di MP3 e filmati ad alta risoluzione la dimensione media dei file è in costante crescita, adottare cluster di dimensioni maggiori (8 o addirittura anche 16 kB) potrebbe portare qualche interessante beneficio, con l'unico limite che, come dicevamo in apertura, la compressione è supportata solamente solo fino ai 4 kB.

Proprio questo valore dovrebbe essere sempre considerato il limite inferiore: lavorare con cluster più piccoli porta infatti ad un eccessiva ed inutile frammentazione, che finisce solo per rallentare il sistema senza apportare alcun beneficio.

Lavorare con i cluster

Una volta appresa la teoria, vediamo di mettere le cose in pratica. Purtroppo avrete bisogno di una utilità di terze parti, poiché Windows non mette a disposizione nessuno strumento idoneo.

La scelta in pratica si riduce a due soluzioni: Partition Magic (ex-PowerQuest, ora acquisita da Symantec) oppure Paragon Partition Manager (edito da Paragon, una semi-sconosicuta software house russa).

Si tratta, purtroppo, di due programmi a pagamento (69.95$ per Partition Magic e$ 49.95 per Paragon Partition Manager) e per di più di cui non esiste una versione shareware efficace: sarete quindi costretti ad acquistare più o meno "a scatola chiusa". Dalle mie prove e dalle esperienze che ho potuto leggere su Internet, il prodotto Paragon si comporta nettamente meglio del rivale, almeno per ultimare questa operazione.

Ad ogni modo, qualunque sia la vostra scelta vi consiglio caldamente di eseguire un backup dei dati. no, non è la solita raccomandazione che sì da per sicurezza ma che viene regolarmente ignorata: dalle mie prove è emerso che spesso qualcosa va storto ed il disco diviene completamente corrotto

Fs_error.gif

Vivamente consigliato anche verificare l'integrità dei dati con scandisk e deframmentare completamente il volume prima di procedere.

Vediamo ora come utilizzare Paragon Partition Manager per modificare la dimensione dei cluster.

Sono stati segnalati problemi utilizzando la tecnica qui proposta su sistemi dotati di dischi fissi in configurazione RAID. Raccomando quindi di procedere con ancor-più-prudenza in caso si stia operando in tale scenario.

Paragon Partition Manager è un pratico prodotto che mette a disposizione numerosi strumenti per gestire il disco. Fra le funzionalità più interessanti, segnalo la possibilità di ridimensionare, spostare, nascondere, unire, ripristinare e convertire le partizioni, così come realizzare immagini e copie complete a mo' di Ghost, nonché, appunto, modificare la dimensione dei cluster senza bisogno di formattare.

Il programma può essere acquistato a questa pagina.

Ridimensionare i cluster

Dopo aver avviato il programma, selezionate la partizione di cui desiderate modificare la grandezza dei cluster. Selezionate quindi la voce di menu Partition -> Modify -> Change Cluster size

Paragon_1_menu.jpg

Dalla finestra che si aprirà, potrete specificare la nuova dimensione dei cluster, facendo bene attenzione che il valore che vedete è in numero di settori di disco da 512 byte l'uno: selezionando 8 dal menu a discesa ad esempio, imposterete una dimensione dei cluster pari a 512 * 8 = 4.096 byte, cioè 4 kB. Selezionando 16 invece imposterete 8 kB di cluster e via dicendo.

Paragon_2_size.jpg

Ricordate dalle pagine precedenti che la dimensione massima gestibile da NTFS è pari a 64 kB, ma che in pratica superare i 16/32 kB non è quasi mai vantaggio.

Una volta fatta la vostra scelta, cliccate su Ok e quindi sul pulsante Apply nella barra degli strumenti. Dopo alcune conferme, il programma vi chiederà di riavviare il sistema per iniziare la conversione (solo per la partizione di sistema: gneralmente per le altre il programma riesce a ultimare la procedura senza abbandonare Windows).

Paragon_3_cluster-size.gif

Se tutto è andato per il verso giusto, alla fine dell'elaborazione tornerete al sistema operativo ed avrete i vostri cluster modificati come richiesto: utilizzate l'utilità chkdsk come illustrato in apertura per verificare che effettivamente il valore byte in ogni unità di allocazione corrisponda con quanto da voi specificato.

Eseguite infine nuovamente l'utilità di deframmentazione ed avete concluso.

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati