It is not really necessary to understand the physical or logical structure of a disk drive or how it works in order to use Linux or any other operating system. Such knowledge can be quite helpful, however, when you are attempting to perform problem determination on a system which is responding sluggishly. One of the first places to look when you are troubleshooting a performance issue is at disk performance.
Only by understanding the function and structure of disk drives can you hope to improve performance.
A hard drive, aka disk drive, consists of one or more metal or glass platters coated with a magnetic recording medium. Each platter has two surfaces, top and bottom, on which data can be recorded. Read/write heads write data onto the recording surface and read it back when requested by the operating system. The data is recorded on circular tracks on each platter.
In the illustration above, the drive has three platters and six read/write heads. The heads are aligned vertically so that they are each lined up over the same data track on their respective platters. There are hundreds of tracks on each surface and the six vertically aligned tracks under the read/write heads are known as a cylinder.
The actuator moves the heads across the disk surface to align the heads with different cylinders to read and write data.
Disk Space Allocation
The cylinder is the minimum increment of space that can be allocated to a partition when installing Linux or creating partitions from free disk space. This is the reason that a requested allocation of 1000MB for a partition might actually become 1985MB. The output from fdisk below, shows that a cylinder is about 8MB in size.
[root@david 20]# fdisk /dev/sda Welcome to fdisk (util-linux 2.24.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): u Changing display/entry units to cylinders (DEPRECATED!). Command (m for help): p Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors Geometry: 255 heads, 63 sectors/track, 38913 cylinders Units: cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x000aa325 Device Boot Start End Blocks Id System /dev/sda1 1 262 2097152 83 Linux /dev/sda2 262 38914 310473048 8e Linux LVM
Note that it is necessary to change the units to cylinders in order to see this. The option to display disk space in cylinders is deprecated and may not work in the future.