Glossary |
In NTFS, the Cluster is the fundamental unit of disk usage. The number of sectors that make up a cluster is always a power of 2, and the number is fixed when the volume is formatted. This number is called the Cluster Factor and is usually quoted in bytes, e.g. 8KB, 2KB. NTFS addresses everything by its Logical Cluster Number.
Each cluster in a volume is given a sequential number. This is its Logical Cluster Number. LCN 0 (zero) refers to the first cluster in the volume (the boot sector).
To convert from an LCN to a physical offset in the volume, multiply the LCN by the Cluster Size.
Each cluster of a non-resident stream is given a sequential number. This is its Virtual Cluster Number. VCN 0 (zero) refers to the first cluster of the stream.
To locate the stream on disk, it's necessary to convert from a VCN to an LCN. This is done with the help of data runs.
Each contiguous block of LCNs is given a Data Run, which contains a VCN, an LCN and a length. When NTFS needs to to find an object on disk, it looks up the VCN in the Data Runs to get the LCN.
The Cluster Size can be chosen when the volume is formatted.
The Cluster Size for a volume is stored in $Boot. Also defined there is the size, in clusters, of an MFT File Record and an Index Record.
By using Cluster Numbers, NTFS can address larger disks than if sectors numbers were used.
A list of allowed and default cluster sizes is shown below.
Volume Size | Default Cluster Size |
---|---|
< 512MB | Sector size |
< 1GB | 1KB |
< 2GB | 2KB |
> 2GB | 4KB |
Why does NTFS use Virtual Cluster Numbers?