Disk geometry

Disk subsystem bottlenecks cause more performance problems than server-side CPU or RAM deficiencies, and a poorly designed disk subsystem can leave your organization vulnerable to hardware malfunctions.

This is so true! As memory chips become cheaper and consolidation dictates more users per server, the disk subsystem turns into the main cause of performance problems. The key to a system without problems is a proper planning and design. The document from which I extracted the beginning sentence, Optimizing Storage for Exchange Server 2003, is a good source of information.

One of the improvements you can make on your storage is to align the disks. Microsoft provides a tool, Diskpar, which allows to align the disk tracks with sector tracks. For partitions created by Windows 2000 and Windows Server 2003, the default starting sector for disks that have more than 63 sectors per track is the 64th sector, causing one out of every eight blocks of data written to your disk to span two disk tracks. Diskpar can increase disk performance as much as 20 percent, but you should always consult your hardware vendor before using this tool. Some disk configurations will have no benefit from the tool.
One fine example of information provided by the storage vendor is HP. Just take a look at this document: HP StorageWorks Enterprise Virtual Array 5000 and Microsoft® Exchange Server 2003: storage performance and configuration — white paper.

The Diskpar utility can be found in the Windows 2000 Server Resource Kit. With the release of Windows Server 2003 SP1, diskpart now includes this functionality. The new syntax for creating partitions with diskpart is:

create partition primary [size=N] [offset=N] [ID={Byte | GUID}] [align=N] [noerr]

Of course, you can still use diskpar:

Usage: diskpar [ -i | -s ] DriveNumber
  -i: query drive layout and partition information
  -s: set partition information (only used on raw drive please)

3 thoughts on “Disk geometry”

  1. First of all, you should check with your hardware vendor to see if you will experience any benefits from using Diskpar. If they don’t provide any information about the subject you can do your own testing by copying large files or using Jetstress.

    I think a good setting to start with will be 64, since 64 x 512 = 32KB, which is divisible by 4KB.

    C:\>DISKPAR.EXE -s 1

    Set partition can only be done on a raw drive.

    You can use Disk Manager to delete all existing partitions

    Are you sure drive 1 is a raw device without any partition? (Y/N) y

    —- Drive 1 Geometry Infomation —-

    Cylinders = 261

    TracksPerCylinder = 255

    SectorsPerTrack = 63

    BytesPerSector = 512

    DiskSize = 2146798080 (Bytes) = 2047 (MB)

    We are going to set the new disk partition.

    All data on this drive will be lost. continue (Y/N)? y

    Please specify starting offset (in sectors): 64

    Please specify partition length (in MB) (Max = 2047): 2047

    Done setting partition.

    —- New Partition information —-

    StatringOffset = 32768

    PartitionLength = 2146435072

    HiddenSectors = 64

    PartitionNumber = 1

    PartitionType = 7

    You now should use Disk Manager to format this partition

  2. Rui J.M. Silva is correct, you should certainly check with your storage manufacturer. For example if you are using the EMC CLARiiON Array there are two ways to set the offset. **Note: If a host based utility is available it should be done from the host and not the array. 1. ON THE ARRAY: During the creation of a LUN set the LUN Offset to 63 blocks (because 63 x 512 bytes is 31.5 KB) **Note: this is not advisable if you are using layered applications including MirrorView, SnapView, or SANCopy. 2. FROM THE HOST: Instead of modifying the LUN Offset on the array you should use diskpar (or diskpart with W2K3) and set the value to the stripe element size used to bind your LUN (typically 128 blocks). If you own a CLARiiON Array and are looking for a Microsoft Exchange Storage Healthcheck please let me know seasonaladjustment@yahoo.com

Leave a Reply

Your email address will not be published. Required fields are marked *