Handy Tech & Associates LLC

 

Array performance tuning

There are several ways to optimize the performance of an array:

Disk striping

To increase the speed of operations that retrieve data from disk storage, you can use disk striping to distribute volume segments across multiple disks. The most effective method of disk striping is to distribute the volume segments equally across the disks.

Striping improves disk response time by uniting multiple physical drives into a single logical drive. The logical drive is then arranged so that blocks of data are written alternately across all physical drives in the logical array. The number of sectors per block is referred to as the striping factor.

Depending on the type of array controller used, the striping factor can be modified, usually with the manufacturer's system configuration utility. Many of the HP Smart Array controllers can be modified online with online utilities. These utilities indicate the status of the logical drives and arrays and display the completion percentage of the rebuild process. The cpqonlin.nlm utility is used for Novell NetWare and the ACU is used for Windows. The ACU for Linux is installed with the ProLiant Support Pack (PSP).

Caution! With HP controllers released before the Smart Array 3100ES, changing the stripe size is data-destructive. In addition, any change to the logical volume geometry (such as striping factor, volume size, or RAID level) can also be data destructive.

RAID 0 striping improves volume I/O because you can read data and write data concurrently to each disk. If one of the disks fails, the entire volume becomes unavailable. To provide fault tolerance, implement a fault-tolerant RAID level that is supported by the Smart Array controller.

 

Optimizing the stripe size

Selecting the appropriate stripe size (chunk) is important for achieving optimum performance within an array. The stripe size represents the amount of data that is read or written to each disk in the array when data requests are processed by the array controller.

Note: The terms chunk, block, and segment are used interchangeably. Chunk is used most often when discussing storage.

The following table lists the available stripe sizes and their characteristics:

Fault tolerance method Available stripe sizes (KB) Default size (KB)
RAID 0 128, 256 128
RAID 1 or 1+0 8, 16, 32, 64, 128, 256 128
RAID 5 or RAID ADG 8, 16, 32, 64 16

The default stripe size delivers good performance in most circumstances. When high performance is important, you might need to modify the stripe size.

Selecting the stripe size can have the following impact:

To choose the optimal stripe size, you need to understand how the applications request data.

Split I/Os are stripes that are split across two disks, causing both disks to seek, rotate, and transfer data. The response time will be based on the slowest disk. Split I/Os also reduce the request rate because there are fewer drives to service incoming requests.

Type of server application Suggested stripe size change
Mixed read/write Accept the default value
Mainly read (such as database or internet applications) Larger stripe sizes work best
Mainly write (such as image manipulation applications)
  • Smaller stripes for RAID 5 and RAID ADG
  • Larger stripes for RAID 0, RAID 1, and RAID 1+0

If you stripe disks on two or more SCSI controllers, which is called controller multiplexing, the operating system must calculate where to place data in relation to the striping, in addition to other calculations that contribute to processor overhead. For best performance, stripe disks only on the same controller or use an HP Smart Array controller that has multiple channels and specific circuitry for handling these calculations.

A multichannel card uses only one interrupt. The HP Smart Array 5300 and 6400 series controllers feature two or more channels for enhanced performance and capacity.

Array accelerator (read/write cache)

The array accelerator on the Smart Array controllers dramatically improves I/O performance. Depending on the controller, the array accelerator can be 4, 16, 32, 64, 128, or 256MBs in size.

The array accelerator uses an intelligent read-ahead algorithm that anticipates data requests and reduces wait time. This algorithm detects sequential read activity on single or multiple I/O threads and predicts which requests will follow. The data is then gathered and stored in the high-speed cache of the array accelerator. As soon as the data is requested by the operating system, it is delivered approximately 100 times faster than a disk can deliver the data.

By default, the array accelerator cache capacity is divided equally between reads and writes. If your server application has significantly more reads than writes or more writes than reads, you might need to change this setting to improve performance. This change can be accomplished online without restarting the system. The optimal ratio setting is application-dependant.

Whenever random access patterns are detected, the read-ahead algorithm is disabled. Using the read-ahead algorithm with random I/O slows the system down instead of making it faster.

When the disks are busy, new writes are stored in the cache and then written to the disk later when there is less activity. This feature is called write-back. Some of the smaller blocks can usually be combined into larger blocks, resulting in fewer but larger blocks being written to the disk, thus improving performance.

Data protection

The data in a write cache requires special protection.

Battery backup and BBWC enabler

All Smart Array controllers with BBWC feature a removable memory module and a BBWC enabler that are usually connected by a short cable. In the event of a server shutdown, you can remove the memory module, BBWC enabler, and hard drives and install them in another ProLiant server that supports BBWC without using tools. When the new server is powered on, the initialization process writes the preserved data to the hard drives.

In the event of a general power outage, the BBWC enabler protects data in the memory module, which holds both the read cache and the write cache. The size of each cache can be allocated through the ACU.

Whenever the system power is on, the batteries in the BBWC enabler are recharged continuously through a trickle charging process. The batteries protect the data in a failed server for up to three or four days, depending on the size of the memory module. Under normal operating conditions, the batteries last for three years before replacement is necessary.

The BBWC enabler consists of the following components:

The BBWC enabler is a standard feature on some Smart Array controllers, or it is available as an option.

For more information on HP Smart Array controllers, go to:
 http://h18004.www1.hp.com/products/servers/proliantstorage/ arraycontrollers/

Comparing software RAID and hardware RAID

HP supports both software-based and hardware-based RAID. For example, HP now implements software RAID in embedded SATA controllers in some of the ProLiant servers and RBSU is used to enable it.

Software-based RAID

It is possible to have a RAID configuration without an array controller. This is known as software RAID.

With software-based RAID, the array management functions are implemented by software executing in a host environment such as the operating system.

Software RAID requires additional transfers across the I/O bus. Although software RAID is not as versatile as hardware RAID, it offers a cost-effective, entry-level, fault-tolerant solution.

The advantages of software-based RAID are:

 

Hardware-based RAID

With hardware-based RAID, the array management functions are implemented by the hardware and firmware within a RAID controller. The RAID controller orchestrates read and write activities in the same way a controller for a single disk drive does, treating the array as if it were a single physical or logical drive.

Hardware-based RAID is transparent to the host software and is self-contained within the storage solution. It does not interfere with the primary function of the host, which translates into higher overall performance and a potential for advanced RAID capabilities.

With a hardware RAID solution, there is no extra activity on the I/O bus, memory bus, or frontside bus after the data reaches the array controller. All RAID-related activities are local to the array SCSI bus. When a single sector is written to the disk, 64 transfers are executed on a 64-bit PCI bus.

The advantages of hardware-based RAID are:

Advantages of HP hardware-based RAID

HP implements RAID at the hardware level with value-added features in its Smart Array controllers. The advantages of HP hardware-based RAID are:

 

Comparing the two types

Software and Hardware implementation of RAID 5