Linux – PERC 6/i RAID on Dell R710: Slow disk… RAID10 on single controller

dell-poweredgelinuxperc6performance

There are multiple questions here – but it starts with this: we've a Dell PowerEdge R710 with a PERC 6/i RAID controller (or controllers) in a RAID10 configuration.

The system is running Ubuntu Server 10.04 LTS with MySQL doing a read-intensive workload.

I increased readahead using blockdev --setra ### /dev/sda to increase readahead (the reads are, at least in theory, sequential reads). This does not seem to have had a significant impact. I've not changed the disk elevator (I've seen noop and deadline recommended).

The load on the system skyrockets and it appears to be related to disk I/O waits. The system can be waiting up to 50% of the time for disk I/O – while CPU % is at about 7-10%. A comparable system with a RAID5 and a write-intensive MySQL installation smokes this system entirely.

The RAID10 system appears to have two PERC 6/i controllers given what Dell OpenManage reports; however, only Controller 0 has an enclosure and only Controller 0 has the RAID on it. The RAID is made up of four disks (slots 0-3 I believe) with two free slots.

The system is also running in a PowerSaving profile that lets the operating system manage the CPU speeds.

The system is also afflicted with the fsync() bug found in some Linux kernels.

Lastly, the PERC 6/i is reporting that the firmware is out of date: it has 6.2.0-0013 and wants 6.3.0-0001.

Now the questions:

  • Is it possible to move one part of the RAID10 array to a second controller?
  • Are there actually two controllers that can be used in the same backplane or am I missing something?
  • Would a firmware update fix the disk speed issue?
  • Would the RAID level have anything to do with the large disk IO wait?
  • How much of an effect would the PowerSaving mode have? (Some reports seem to say it slows the kernel down.)

I strongly suspect that there is some kind of configuration that will zap the disks into frighteningly high speeds, but I can't seem to pin it down.

Update: The four disks used here are the Hitachi HDS721010CLA332 model, which is listed as having a SATA "Bus Protocol" but having a "SAS Address" as well? Are these disks those SAS-impersonating drives I've heard about that are supposed to be quite slow? In any case, these are 7200 RPM drives apparently.

The comparison system has SAS drives in it: the Seagate ST31000640SS – also 7200 RPM. This comparison system also has both RAID controllers utilized and with "backplane" entries associated with them.

Best Answer

The PERC 6/i is a dual-port controller; each port has 4 SAS lanes. On the 8x2.5in R710 chassis, that's a one-to-one mapping of front-panel disks to SAS lanes. On the 3.5in chassis, ports 6 and 7 are unused. With a 4-disk array, you could move 2 disks to slots 4 and 5 to split the workload between channels, although there's still the single processor and memory on the PERC card.

Updating firmware is typically a good idea, and is a fairly painless process (although it does require a reboot.)