Stripe and cluster your RAID
RAIDs use multiple disks running in parallel to provide high throughput. The RAID drive itself uses an allocation unit, independent of the file system on it, called a stripe. Striping can be done either in software (Windows NT/2k has this built in) or in hardware, but hardware RAID is almost always much faster. The size of the stripe varies, but can be as high as 64K. Both the stripe and the cluster size will affect performance.
The cluster size on a disk partition is the smallest possible amount of information that can be transferred to the computer in one operation. In NTFS, the cluster size varies depending on a number of factors, primarily the size of the partition. Partitions smaller than 512 MB get a 512 byte cluster size, and partitions larger than 2 GB get a 4 KB cluster size, with variations in between. When a partition is formatted, Windows chooses the appropriate cluster size based on how big the partition is.
Applications may perform radically differently depending on how the drives are clustered and striped. A file server, for instance, would do best with the largest possible stripe size, while a database application might do better with a smaller stripe size. Database operations tend to work in smaller individual chunks than file serving. A smaller stripe size means less data is committed each time, thereby conserving I/O if you have a lot of parallel operations -- but reducing the individual bandwidth for each one. Part of the reason you may want to avoid software RAID in Windows is because the stripe size for software RAID is fixed at 64 KB and cannot be edited. For hardware controllers, the stripe size may be set through management software or firmware.
Formatting a drive with a cluster size other than the default has both positive and negative effects. On the good side, a larger cluster size means more information is transferred in one operation. On the bad side, cluster sizes larger than 4 KB are not compatible with certain NTFS functions -- defragmentation and file compression, to name two. If you don't plan on enabling disk compression or performing defrag operations on the drive, you can use greater than 4 KB cluster sizes. If you are dealing with files that are almost always larger than 64Kb, then setting the cluster size high may provide some benefit. Changing cluster sizes beyond the automatic value is not normally recommended, so it is best that you try this out provisionally before committing to it.
To format a partition and force a particular cluster size, use the command FORMAT <partition> /a:<size>, where <partition> is the partition to be formatted and <size> is the cluster size. If the partition in question cannot be safely formatted with the listed cluster size, the FORMAT command will abort with a warning.
It is not imperative that the stripe and cluster size be the same, but it is worth trying; many people report a significant performance boost from doing so.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.
This was first published in February 2002