ATA interface versions up through ATA-5 suffered from a drive capacity limitation of about 137GB (billion bytes). Depending on the BIOS used, this limitation could be further reduced to 8.4GB, or even as low as 528MB. This is due to limitations in both the BIOS and the ATA interface, which, when combined, create even further limitations. To understand these limits, you have to look at the BIOS (software) and ATA (hardware) interfaces together. Note In addition to the BIOS/ATA limitations discussed in this section, various operating system limitations also exist, as described later in this chapter. When dealing with ATA drives, you face limitations of the ATA interface itself as well as limitations of the BIOS interface used to talk to the drive. A summary of these limitations is shown in Table 6.12.
The following sections detail the differences between the various sector addressing methods and the limitations related to using them. Prefixes for Decimal and Binary MultiplesYou may be unfamiliar with the MiB (mebibyte), GiB (gibibyte), and so on designations used in this section and throughout the rest of the book. They are part of a standard designed to eliminate confusion between decimal- and binary-based multiples, especially in computer systems. Standard SI (system international, or metric system) units are based on multiples of 10. This worked well for most things, but not for computers, which operate in a binary world, where most numbers are based on powers of 2. This has resulted in different meanings being assigned to the same prefix; for example 1KB (kilobyte) could mean either 1,000 (103) bytes or 1,024 (210) bytes. To eliminate confusion, in December 1998 the International Electrotechnical Commission (IEC) approved as an international standard the prefix names and symbols for binary multiples used in data processing and transmission. Some of these prefixes are shown in Table 6.13.
Under the IEC standard terminology, 1MB (megabyte) would be 1,000,000 bytes, whereas 1MiB (mebibyte) would be 1,048,576 bytes. Note For more information on these industry-standard decimal and binary prefixes, check out the National Institute of Standards and Technology (NIST) website, at http://physics.nist.gov/cuu/Units/prefixes.html. BIOS LimitationsMotherboard ROM BIOS has been updated throughout the years to support larger and larger drives. Table 6.14 shows the most important relative dates when drive capacity limits were changed.
BIOSes dated September 2002 or newer should support drives larger than 137GB. Table 6.14 gives only general guidelines; to accurately determine the capacity limit for a specific system, you should check with your motherboard manufacturer. You can also use the BIOS Wizard utility at www.unicore.com/bioswiz/index2.html, which can tell you the BIOS date from your system and specifically whether your system supports the Enhanced Disk Drive (EDD) specification (which means drives over 8.4GB). Generally, any server currently in use should support at least the EDD (8.4GB137GB) standard. You should upgrade the motherboard BIOS on a server that cannot support a hard disk greater than 8.4GB. Although other fixes such as using a BIOS upgrade card with onboard ATA/IDE ports or a software fix have been used on desktop systems, they are not suitable for servers. Increasing ATA Drive Size: CHS and LBA ModesThere are two primary methods to address (or number) sectors on an ATA drive. The first method is called CHS (cylinder head sector), after the three respective coordinate numbers used to address each sector of the drive. The second method is called LBA (logical block address), and it uses a single number to address each sector on a drive. CHS was derived from the way drives were physically constructed (and is how they work internally), whereas LBA evolved as a simpler and more logical way to number the sectors, regardless of the internal physical construction. CHS access limits the size of a hard disk to 528MB (decimal) or 504MiB. To overcome this limitation, the EDD specification was released by BIOS maker Phoenix Technologies in 1994. It specifies three ways to overcome the 528MB CHS barrier:
The method for dealing with the CHS problem was called translation because it enabled additional subroutines in the BIOS to translate CHS parameters from ATA maximums to BIOS maximums (and vice versa). In an effort to make its methods standard among the entire PC industry, Phoenix released the EDD document publicly and allowed the technology to be used free of charge, even among its competitors, such as American Megatrends (AMI) and Award. The T13 committee in charge of ATA subsequently adopted the EDD standard and incorporated it into official ATA documents. Although a few vendors standardized on the bit-shift method of translation (also known as Large, or Extended, CHS in BIOS Setup), LBA-assist (better known as LBA mode) became the de facto standard for translating drives greater than 528MB. Note that a BIOS configured in LBA mode cannot properly read a drive prepared using Large mode because the methods of capacity translation are different. Problems with the implementation of Extended CHS translation caused several additional drive capacity barriers, including the 2.1GB barrier and the 4.2GB barrier. LBA mode avoids these problems. For drives over 8.4GB, CHS geometry is no longer translated into LBA geometry, but the drive is accessed in a purely LBA mode. This feature was introduced in 1998 as part of the EDD standard. The 8.4GB BarrierAlthough CHS translation breaks the 528MB barrier, it runs into another barrier at 8.4GB. Supporting drives larger than 8.4GB requires leaving CHS behind and changing to LBA addressing at the BIOS level. Although, the ATA interface had always supported LBA addressing, even in the original ATA-1 specification, it had been optional, but the main problem was that there was no LBA support at the BIOS interface level. You could set LBA-assist translation in the BIOS Setup, but all that did was convert the drive LBA numbers to CHS numbers at the BIOS interface level. Phoenix Technologies recognized that the BIOS interface needed to move from CHS to LBA early on and, beginning in 1994, it published the BIOS Enhanced Disk Drive Specification (EDD) specification, which addressed this problem with new extended INT13h BIOS services that worked with LBA rather than with CHS addresses. To ensure industrywide support and compatibility for these new BIOS functions, in 1996, Phoenix turned this document over to the InterNational Committee on Information Technology Standards (INCITS) T13 technical committee for further enhancement and certification as the EDD standard. Starting in 1998, most of the other BIOS manufacturers began installing EDD support in their BIOSs, enabling BIOS-level LBA mode support for ATA drives larger than 8.4GB. This support arrived just in time because ATA drives of that size and larger became available the same year. The EDD specification describes new extended INT13h BIOS commands that allow LBA addressing up to 264 sectors, which results in a theoretical maximum capacity of more than 9.44ZB (zettabytes, or quadrillion bytes). That is the same as saying 9.44 trillion GB: 9.441021 bytes, or, to be more precise, 9,444,732,965,739,290,427,392 bytes! This is theoretical capacity because even though by 1998 the BIOS could handle up to 264 sectors, ATA drives were still using only 28-bit addressing (228 sectors) at the ATA interface level. This limited an ATA drive to 268,435,456 sectors, which was a capacity of 137,438,953,472 bytes, or 137.44GB. Thus, the 8.4GB barrier had been broken, but another barrier remained at 137GB because of the 28-bit LBA addressing used in the ATA interface. By using the new extended INT13h 64-bit LBA mode commands at the BIOS level as well as the existing 28-bit LBA mode commands at the ATA level, no translation would be required, and the LBA numbers would be passed unchanged. The combination of LBA at the BIOS and ATA interface levels meant that the clumsy CHS addressing could finally be laid to rest. This also means that when you install an ATA drive larger than 8.4GB in a PC that has an EDD-capable BIOS (1998 or newer), both the BIOS and the drive are automatically set to use LBA mode. An interesting quirk is that to allow backward compatibility when you boot an older operating system that doesn't support LBA mode addressing (DOS or the original release of Windows 95, for example), most drives larger than 8.4GB report 16,383 cylinders, 16 heads, and 63 sectors per track, which is 8.4GB. For example, this enables a 120GB drive to be seen as an 8.4GB drive by older BIOSes or operating systems. It sounds strange, but having a 120GB drive being recognized as an 8.4GB drive is better than not having it work at all. (If you want to install a drive larger than 8.4GB into a system dated before 1998, the recommended solution is a motherboard BIOS upgrade.) The 137GB Barrier and BeyondBy 2001, the 137GB barrier had become a problem because 3.5-inch hard drives were poised to breach that capacity level. The solution came in the form of ATA-6, which was being developed during that year. To enable the addressing of drives of greater capacity, ATA-6 upgraded the LBA functions from using 28-bit numbers to using larger 48-bit numbers. The ATA-6 specification extends the LBA interface such that it can use 48-bit sector addressing. This means that the maximum capacity is increased to 248 (281,474,976,710,656) total sectors. Each sector stores 512 bytes, so this results in a maximum drive capacity of just over 144PB (petabytes, or quadrillion bytes)which should be sufficient for years to come. Because, according to Moore's Law, hard disk drives have been doubling in capacity every 1.52 years, and considering that 200GB+ ATA drives were available in late 2003, it will probably take us until between the years 2031 and 2041 to reach the 144PB barrier (assuming that hard disk technology hasn't been completely replaced by then). The 137GB barrier has proven a bit more complicated than previous barriers because, in addition to considering BIOS issues, we must also consider operating system issues. Internal ATA drives larger than 137GB require 48-bit LBA (logical block address) support. This support absolutely needs to be provided in the OS, but it can also be provided in the BIOS. It is best if both the OS and BIOS support it, but it can be made to work if only the OS does. Windows versions that are suitable for server use and include 48-bit LBA support include the following:
To have 48-bit LBA support in the BIOS requires either of the following:
If your motherboard BIOS does not have LBA support and an update is not available from your motherboard manufacturer, you can use a card to provide 48-bit LBA support. Vendors that offer 48-bit LBA support plus additional ATA, SATA, or ATA/SATA RAID host adapters include SIIG (www.siig.com) and Promise Technology (www.promisetech.com). These cards provide 48-bit LBA support for connected hard disk drives. Note that if you have both BIOS and OS support, you can simply install and use the drive as you would any other. If you have no BIOS support but you do have OS support, portions of the drive past 137GB are not recognized or accessible until the OS is loaded. If you are installing the OS to a blank hard drive and booting from an original Windows XP (pre-SP1) CD-ROM or earlier, you need to partition and install up to the first 137GB of the drive at installation time. After installing the OS and then the SP1 update, you can either partition the remainder of the drive, using standard partitioning software, or use a third-party partitioning program such as PartitionMagic or Partition Commander to resize the first partition to use the full drive. If you are booting from a Windows XP SP1 or later CD-ROM, you can recognize and access the entire drive during the OS installation and partition the entire drive as a single partition greater than 137GB, if you want. Finally, you should keep in mind that the versions of Windows 2000 and Windows XP prior to those listed earlier in this section do not provide native support for ATA (PATA and SATA) hard drives that are larger than 137GB. However, Windows Server 2003 has native support for 48-bit LBA. Operating System and Other Software LimitationsIf you use older software, including utilities, applications, or even operating systems that rely exclusively on CHS parameters, they will see all drives over 8.4GB as 8.4GB only. In this case, you need not only a newer BIOS but also newer software designed to handle the direct LBA addressing to work with drives over 8.4GB. Table 6.15 lists server operating system limitations with respect to drives over 8.4GB.
In the case of operating systems that support drives over 8.4GB, the maximum drive size limitations are dependent on the BIOS and hard drive interface standard, not on the OS. In those cases, other limitations come into play for the volumes (partitions) and files that can be created and managed by the various operating systems. These limitations are dependent on not only the operating system involved but also the file system used for the volume. Table 6.16 shows the minimum and maximum volume (partition) size and file size limitations of the various Windows server operating systems. As noted in the previous section, the original version of Windows XP, as well as Windows 2000/NT or Windows 95, 98, or Me, does not currently provide native support for ATA hard drives that are larger than 137GB. You need to use Windows XP and ensure that you have SP1 or later installed to use an ATA drive over 137GB. This does not affect drives using USB, FireWire, SCSI, or other interfaces.
|