We have a HP Proliant DL380 G9 server. We have a separate data drive which consists of 4 x 1TB 7.2k 6Gb hot-swappable SAS drives RAID 5'd to provide a 3GB logical drive. We've noticed the performance of the server is quite slow and after running various tests I've noticed disk IO on the SQL database isn't very good. I wanted to try and speed it up.

Can anyone answer these questions please: -

(1) As I don't want to rebuild the server from scratch, can I just get 4 identical drives as above but the 12Gb (double the speed) ones and have them running along side-by-side. My plan would be to remove one of the drives from the array, replace it with the faster one, leave it to rebuild, then swap the next one, and the next one, and so on until they are all replaced with the faster ones?

(2) The same scenario as above but replacing the drives, one at a time again, with SSD drives. Can SSD and SAS drives co-exist in the same array? and,

(3) I've noticed there are 15k spindle speed drives, which would improve further the speed, however I can't get a 1TB one only 1.2TB. Can I put a slightly larger drive into a RAID 5 array and it will build OK, or does it have to be an identical size to the others?

Hope this all makes sense. Any help gratefully received.

Many thanks.

DGC.


Solution 1:

  1. You absolutely can do such a "rolling" update, but it's going to ...

a) ... take lots of time!

b) ... provide really bad performance as your array will stay in "degraded" state during the whole rebuild process.

c) ... be dangerous as during rebuilds chances for second concurrent fault are high due to extra load put on the disks and your configuration can't tolerate multiple failures during rebuild.

Good idea would be to create a brand new virtual LUN from your new set of drives and simply migrate your old data there. BTW, don't forget about backups!

  1. SSDs and HDDs can co-exist within the same RAID group, virtual LUN etc, but remember, fleet speed is limited to slowest ship, so you'll get slowest HDD performance in RAID group of HDDs and SSDs mixed.

  2. 15K spindles are waste of money, they are on the death row these days. Stick with SATA SSDs as they will cost similar figures but will outperform "spinning rust" on seeks 1000x times. See SSD vs HDD

P.S. Don't use RAID5 with anything above maybe 600GB SAS drives. See RAID5 versus RAID10 (or even RAID3 or RAID4)

Solution 2:

First you should know how much IOPS you want to achieve. As soon as you know it, then focus on the solution, which can give it to you at reasonable price.

Your current solution probably tops at ~120 IOPS (50/50 Read/Write).

You can calculate IOPS you can get with various options with RAID IOPS calculators, for example:

https://wintelguy.com/raidperf.pl

If 2GB space would be sufficient for you, you can move data somewhere else and create the RAID as RAID 10. In that case, you'd get ~200 IOPS.

With 4x15k HDDs and RAID10 you can achieve up to ~450 IOPS. That's where rotation disks end for you.

Eventually you can use SSDs instead, you can easily get tens of thousands IOPS even with RAID1. There is link to calc:

https://wintelguy.com/raidperf.pl/?formid=2

The RAID controller equiped with cache can improve I/O, however just as long as the cache is sufficient. You haven't specified which controller you have, that's a pity.

Regarding 6Gb/12Gb SAS speed, it's just link speed. In fact HDDs, even 15k, can't get even close to 6Gb limit. Many SSDs can. It would only matter in case of reading from disk cache (which is usually disabled as RAID controller cache is much larger and writes couldn't be considered 100% trusted).