20.1. Array Performance Tuning

 < Day Day Up > 

Two main ways to optimize the performance of your array are as follows:

  • Choose a stripe size more suitable for the type of data transfer common to your system.

  • Change the read/write cache ratio in the Smart Array controller.

20.1.1 Disk Striping

To speed operations that retrieve data from disk storage, you can use disk striping to distribute volume segments across multiple disks. The most effective way to distribute volume segments is to do so equally across the disks. Striping improves disk response time by uniting multiple physical drives into a single logical drive. The logical drive is 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 array controller in use, 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 that indicate the status of the logical drives and arrays and display the completion percentage of the rebuild process. For NetWare, this utility is CPQONLIN.NLM and for Windows, it is the Array Configuration Utility (ACU). For Linux, you must run the ACU from the SmartStart CD.

Warning

On HP controllers released before the Smart Array 3100ES, changes to stripe size are data-destructive. In addition, any change to the logical volume geometry (such as striping factor, volume size, or RAID level) can be data-destructive.


If you stripe disks on two or more SCSI controllers (called controller multiplexing), the operating system must calculate where to place the 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 with multiple channels (a multichannel card uses only one interrupt) and specific circuitry for handling these calculations. The HP Smart Array 5300 and 6400 series controllers feature two or more channels for enhanced performance and capacity.

If a disk containing a spanned volume fails, the entire volume must be restored from a backup across all segments before you can use it again.

In Windows, the recovery process is automatic (as it is on hardware controllers). Windows also automatically rebuilds the volume when you replace the faulty drive. It begins the background process of reconstructing the data on the new drive the same way it handles I/O requests automatically. The process slows performance (more with software RAID than on an accelerated controller), but when reconstruction is finished, system operations return to normal.

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, you should mirror the segments of volumes that span devices.

When configuring RAID 5 on a Linux server, you must have at least one native partition that contains the /boot directory. The kernel must load the drivers that support RAID from a native disk before it can mount the RAID array. This requirement affects the way the drives in the array are partitioned and how you recover from a failure of the particular drive that contains the native partition.

20.1.1.1 OPTIMIZING THE STRIPE SIZE

Selecting the appropriate stripe (chunk) size is crucial to achieving optimum performance within an array. The stripe size is 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.

If the stripe size is too large, there will be poor load balancing across the drives.

If the stripe size is too small, there will be many cross-stripe transfers (split I/Os), and performance will be reduced.

Split I/Os involve two disks, and both disks seek, rotate, and transfer data. The response time depends on the slowest disk. Split I/Os 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, RAID ADG

Larger stripes for RAID 0, RAID 1, RAID 1+0


20.1.2 Changing the Read/Write Cache Ratio

The array accelerator on the Smart Array controllers dramatically improves I/O performance. Depending on the controller, it can have a size of 4, 16, 32, 64, 128, or 256MB.

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

By default, the array accelerator cache capacity is equally divided between reads and writes. If your server application has significantly more reads than writes (or vice versa), 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-dependent.

Whenever random-access patterns are detected, read-ahead is disabled because reading ahead data under random I/O slows down the system instead of making it faster.

If the disks are busy, new writes can be stored in the cache and written to the disk later when there is less activity (write-back). Some smaller blocks can usually be combined into larger blocks, resulting in fewer but larger blocks written to the disk, thus improving performance.

Note

The Smart Array 5300 and 6400 controllers are the only array controller families with upgradeable cache modules.


     < Day Day Up > 


    HP ProLiant Servers AIS. Official Study Guide and Desk Reference
    HP ProLiant Servers AIS: Official Study Guide and Desk Reference
    ISBN: 0131467174
    EAN: 2147483647
    Year: 2004
    Pages: 278

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net