When we last saw our hero the hard drive he had shrunk down to what we now call the large form factor with a 3.5” case with the higher performance 10,000 and 15,000 RPM drives using even smaller platters to keep their power consumption under control. Features that used to be limited to high-performance drives like voice coil positioners and embedded servo have become standard. Basically 1995.
Since 1995 there have been a lot of technological advancements that boosted the capacity of hard drives from Perpendicular Magnetic Recording to Helium-filled drives without changing how storage systems or storage admins would use them. Hardware interfaces advanced from 40Gbps Fast/Wide SCSI to 12Gbps SAS, with a brief detour to drives with Fiber Channel interfaces, but since they all carried SCSI data and commands that transition didn’t change how drives were addressed either.
Sticking, as we promised in part 1, to hard drive features that affect how storage guys, and programmers, access our drives.
Advanced Format Drives
As drive capacities passed 2TB in capacity the fixed 512B block size that we’d used since the early days of SCSI started creating problems as the number of blocks per drive pushed up against the size of the LBA field in the SCSI command set. Drive makers were also facing the problem that as they squeezed more bits into the same amount of space a surface defect on the drive would make more of the smaller bits unread, or writeable.
The drive vendors, through the INCITS T10 committee that sets the SCSI and related standards, solved both problems, by changing the native sector size of the drives from 512B to 4KB creating advanced format drives. Having 1/8th as many sectors postponed the LBA field length problem a decade or two and significantly improved the error correction capabilities of today’s drives.
Reducing eight 512B sectors down to one 4KB sector let drive vendors eliminate sync and gap waste between the sectors, boosting the usable capacity of each drive almost 10%. Using one large, rather than eight small, ECC field allows the drive to correct errors of many times as many bits as old 512B/sector drives.
When specifying disk drives systems architects now have their choice of three different types of drives:
- Traditional 512B drives now known as 512n
- Advanced format drives that store data in 4096 byte sectors but emulate 512 byte drives. Known as 512e
- Advanced format drives that present 4096 byte blocks to store in 4096 byte sectors
While 512e drives emulate 512n drives using 512e drives without operating system support can end up slowing your storage system down significantly. The first problem is that, like RAID, 512e drives have to perform a read-modify-write process for any I/O that isn’t a multiple of 4096 bytes. With older operating systems, including VMs running older (Pre-2008-2012 depending on the OS) the volume manager maps logical block 0 of each volume to LBA 1 on the underlying drive.
With this mismatched offset even if the file system does perform 4KB I/Os the disk drive would have to read 2 4KB blocks, or worse read-modify-write two blocks one for the first 7 512B blocks and the other for the 8th.
While advanced format drives have been on the market for about five years support outside storage arrays and object storage systems has been limited. VMware, for example, only started supporting 512e drives on vSphere and doesn’t yet support 4096n drives.