understanding the 2 tb limit in windows storage

Upload: pawanbattula

Post on 08-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 Understanding the 2 TB Limit in Windows Storage

    1/3

    1

    Understanding the 2 TB Limit in Windows Storage

    There are actually three different 2 TB limitations that are commonly hit...

    Partition size

    Number of clusters

    SCSI goo

    Partition Size Limitation

    The partition size is pretty straight forward. On an MBR (Master Boot Record) disk, the

    locations where the partition sizes are stored are only 4 bytes long. Since this is in

    hexadecimal, the largest value we can stuff in there is all F’s. So the max value would4,294,967,295 in decimal.

    FF FF FF FFh = 4294967295d

    This maximum partition size is not in bytes, it is in number of sectors. Since currently

    sectors are limited to 512 bytes, the maximum size ends up being 2 TB.

    4,294,967,295 sectors * 512 bytes/sectors = 2,199,023,255,040 bytes or 2TB.

    Number of Clusters

    The second limitation is harder to spot. It is a limitation of NTFS. NTFS is limited to

    (2^32 -1) clusters….no matter what.  The smallest cluster size possible is 512 bytes (1sector). So again the math leaves us at 2,199,023,255,040 or 2TB.

    (2^32)-1 = (4,294,967,296)-1 = 4,294,967,295 clusters

    4,294,967,295 clusters * 512 bytes/cluster = = 2,199,023,255,040 bytes or 2TB

    Here is a quick reference chart to help you see the maximum NTFS size for each cluster

    size.

    Cluster size  NTFS Max Size 

    512 bytes  2,199,023,255,040 (2TB) 

    1024 bytes  4,398,046,510,080 (4TB) 

    2048 bytes  8,796,093,020,160 (8TB) 

    4096 bytes  17,592,186,040,320 (16TB) Default cluster size 

    8192 bytes  35,184,372,080,640 (32TB) 

    16384 bytes  70,368,744,161,280 (64TB) 

    32768 bytes  140,737,488,322,560 (128TB) 

    65536 bytes  281,474,976,654,120 (256TB) 

  • 8/19/2019 Understanding the 2 TB Limit in Windows Storage

    2/3

    2

    Cluster size really depends on your needs. While 512 is fine if you just have a bunch of

    tiny files, it isn’t as efficient for say a volume with just SQL DBs.  Also, a tiny cluster size

    can adversely affect VSS. But that is a topic for another time.

    SCSI Goo

    This is by far the hardest to understand as it requires some basic SCSI knowledge.

    Microsoft Windows operating systems support two different SCSI standards when it

    comes to reads and writes. There is a third but it is very old and is mostly just used on

    tape devices. So let’s just forget about that one and stick to the two that are relevant.

    These two standards are Read10/Write10 and Read16/Write16. This all has to do with

    the way the CDB (Command Descriptor Block) is structured.

    Read10/Write10  –  This standard reserves bytes 2-5 to define the LBA (Logical Block

    Address). Think of LBA as sector numbers….it makes it easier on your brain. So wehave 4 bytes that can define the addressable sectors. Just like in the ‘partition size

    limitation’ we are back to dealing with a 4 byte number used to define all the addresses

    on the drive.

    FF FF FF FFh = 4294967295d

    And just like before, the above is just the possible number of address (number of

    sectors). Multiply by the standard sector size of 512 bytes and we get…

    4,294,967,295 sectors * 512 bytes/sectors = 2,199,023,255,040 bytes or 2TB.

    What this all means is that when Windows is using the Read10/Write10 standard, then

    the biggest drive that will be supported is 2TB.

    Read16/Write16  –  Sometimes called LBA64 by some vendors, this standard reserves

    bytes 2-9 to define the LBAs. That would be 8 bytes, each byte being 8 bits in size. Now

    here is where we start getting into some really big numbers. The approximate size

    comes out to be around 8ZB (zettabytes). Here’s a quick chart to put it in some

    perspective.

    1024KB = 1MB (megabyte)

    1024MB = 1GB (gigabyte)

    1024GB = 1TB (terabyte)

    1024TB = 1PB (petabyte)

    1024PB = 1EB (exabyte)

    1024EB = 1ZB (zettabyte)

    So it is going to be a while before we have to worry about running into the limitation ofRead16/Write16.

  • 8/19/2019 Understanding the 2 TB Limit in Windows Storage

    3/3

    3

    Exceeding the limitations 

    Each limitation has a way of getting around it. Otherwise we’d still be stuck at 2TB.

    Partition size limitation – There are actually two ways around this. The first way is to

    convert your disks to dynamic disks and create volume sets. This functionality has beenaround since Windows 2000. This doesn’t really allow you to increase the partition

    size. What it does is give you the ability to chain your partitions together to form larger

    volumes. So I could use two drives of 2TB and create a volume of roughly 4TB in size.

    The second method to bypass the partition size limitation is to use a GPT (Guid Partition

    Table) configuration. In Windows 2003 SP1 Microsoft introduced its implementation of

    the GPT. A disk configured to be GPT rather than the MBR style would have a 32 sector

    partition array instead of a tiny 64 byte partition table.

    NOTE: 32 sectors is equal to 16,384 bytes

    The partitions that can be defined on a GPT disk can be up to 16EB in size.

    Number of clusters – There really isn’t a way around this limit ation. NTFS is currently

    still limited in its number of clusters. However, you can get past 2TB by making sure

    your cluster size is larger than the minimum size of 512 bytes.

    It is important to note that for the most part, if you create a FAT partition and then

    convert it to NTFS the cluster size will come out as 512 bytes. There are ways around

    this but most of them require that you know ahead of time that you are going to beconverting your FAT partition to NTFS.

    SCSI goo – There isn’t anything in Windows you can do to get around the limitation of

    Read10/Write10 as Windows is already able to use Read16/Write16. However, the

    hardware MUST support it as well. Windows will query the storage devices and

    negotiate if Read10/Write10  or Read16/Write16  is to be used. When in doubt, check

    with your storage vendor.