Che cosa sono i cluster?
  • In questa Faq si parla dei limiti delle partizioni HFS, che le attuali HFS+ non condividono.
Il disco è fisicamente suddiviso in settori; il settore costituisce l'unità fisica minima di allocazione, ed ogni settore misura 512 bytes (0.5KB).
C'è quasi sempre un limite alle unità di allocazione che un Sistema Operativo può gestire, e questo limite dipende direttamente dai bit utilizzati per l'indirizzamento dei dati su disco: 16 bit per l'HFS, 32 per HFS+.

Se utilizzassimo un settore (unità fisica) come unità di allocazione per il sistema (unità logica) il limite per l'HFS sarebbe:

2^16 settori = 64K settori = 64 K * 0.5 KB = 32 MB

Questo era infatti il limite iniziale di indirizzamento di ogni partizione MS-DOS (anche il DOS utilizza 16 bit per indirizzare il disco).

Per superare questo limite nasce l'"allocation block", o "cluster" (lett.: "grappolo").

Il cluster è un insieme di settori fisici che vengono visti come unità logica di allocazione dei dati: ogni file occuperà un numero finito e discreto di cluster su HD (minimo 1), e ogni cluster sarà indirizzabile utilizzando i bit a disposizione del sistema; sotto MacOS considerare almeno un cluster per la DataFork (se presente) più almeno uno per la ResourceFork (se presente, ma almeno una delle due forche c'è comunque).

Quindi al crescere della partizione (HFS) crescerà il numero di settori in ogni cluster, rimanendo comunque fissato il limite massimo di 2^16 = 64K = 65.536 cluster.
È facile determinare la dimensione minima (numero minimo di settori) del cluster, considerando che per ogni settore che si aggiunge alla dimensione la partizione potrà supportare fino a 32MB in più:

Settori x cluster Dim. Max HD
132 MB
264 MB
396 MB
......

Ad esempio con un disco di 540MB avremo 540MB/32MB = 16.875 => 17 settori per cluster, ovvero cluster da 17*0.5KB = 8.5KB, che sarà lo spazio occupato su HD da un file grande 1 byte.
Sotto DOS/Windows con FAT a 16 bit i cluster crescono al raddoppio, per cui non sarebbero 17 ma (superato il numero "16" dei cluster da 8KB) passerebbero direttamente a 32 settori per cluster, ottenendo cluster di 16KB (!).

Calcolatrice JavaScript per la dimensione dei cluster
(su partizioni HFS)

MB sulla partizione: (1 GB = 1024 MB)
Settori x cluster: = KB allocation block size

Inserire/modificare i dati e premere


E i cluster nell'HFS+?

Nelle partizioni HFS+ la dimensione del cluster è fissata a 4KB (8 settori) dall'installazione del MacOS, sebbene alcune utility (come PlusOptimizer della AlSoft) consentano di variare tale valore.

Ridurre al minimo la dimensione del cluster (ovvero l'allocation block size) può sembrare un'idea geniale, ma ha inconvenienti non banali...
Per ogni cluster esiste (almeno) un bit sulla volume bitmap track (+ o - il corrispondente della FAT WinDOS) che indica se questo cluster è libero o occupato. La volume bitmap track risiede anche lei sull'HD, e toglie spazio all'area dati fruibile del disco.
Se si decidesse ad esempio di utilizzare cluster di un settore, la dimensione della volume bitmap track crescerebbe di conseguenza; immaginiamo una partizione da 9 GB, ovvero costituita da 9.216 MB = 9.437.184 KB = 18.874.368 settori.
Innanzi tutto gestire 18 milioni di unità di allocazione rasenta (e probabilmente supera) le pur migliorate prestazioni del filesystem del MacOS "classico", e comunque la volume bitmap track arriverebbe ad occupare (nella rosea ed ingannevole ipotesi di un solo bit per cluster) ben 2.359.296 bytes.
Le prestazioni del disco e del sistema calerebbero (troppi indirizzi da gestire), crescerebbe l'occupazione di RAM... e solo un sistema Unix riuscirebbe a gestire realisticamente una situazione di questo tipo.
Ma anche con Unix ridurre troppo porterebbe scompensi: se il disco avesse unitè di allocazione di 1 bit sarebbe tutto e solo costituito dalla volume bitmap.

[ Home | Elenco delle FAQ | Risorse | Feed RSS ]