Chapter 3: Creating Disk Arrays

In cases where you are performing larger writes to the controller, you could go up to 2 MB for a stripe size, since you have more data to cluster. Never exceed 2 MB for a stripe size, since the controller cannot cluster over this size.

We recommend that you keep the stripe size to 1 MB or less for general use, perhaps increasing it for specific applications. This stripe size is actually the substripe size in RAID 50 cases. A 4+1 array (4 data and 1 parity drives) with a 256 K chunk has a 1 MB stripe size, as does an 8+1 array with 128 K stripe size, and an 8+2, RAID 50 array with 256 K chunk size.

Although 8+1 gives an even stripe size, this does not really matter for an operating system (OS) that writes in significantly smaller chunks. So, 8+1, 10+1, or 11+1 with a chunk size of 64 K would be fine for an OS that does 64 K writes. If the OS does much larger writes, you may want to increase the chunk size. With writeback cache enabled, the controller can keep data and do a full stripe write.

For a single enclosure example - best all around performance:

11+1 with 64 K chunk size would yield a 704 K stripe (11×64=704)

10+2 with 128 K chunk size would yield a 640 K stripe (5×128=640)

When using more drives, 14+2 (64 K), or 12+3 (128 K) should be as good as 12+4. However, we recommend that it be kept to a minimum of 4 data drives for a subarray.

For most sequential accesses, the difference may not be too much for different configurations. However, for large block random writes, it can help if the stripe size is similar to the I/O size. This lets the controller perform a partial full stripe write, where it has most of the data for a full stripe, and can just read some from the drives to complete the stripe.

While Windows NT, Windows 2000, and Windows 2003 do 64 K accesses, these are not aligned. If the chunk size is 64 K, every access crosses a chunk boundary and so involves two read/modify/write commands instead of one. However, since the controller can cluster, this problem is somewhat offset since the controller usually can cluster sufficiently to do full stripe writes. If it is a completely random 64 K access on Window NT, Windows 2000, or Windows 2003, a 64 K chunk is not the best. A chunk size of 128 K or 256 K is better to minimize the number of commands that cross chunk.

Larger chunk sizes should be used if the OS is writing large blocks, or with large sequential writes where the controller can cluster sufficiently. Always keep the stripe size below 2 MB.

30

www.gateway.com