NAS - hard drive and transfer speeds

Posted: Saturday April 5, 2008 at 9:32 p.m.

Okay, so I've got the general idea of what I want, now it is time to hash out some of the specs. Where to start?

The working parts of the device should be modern or at least based on modern standards. Since I will be going to all the trouble of building this device from scratch, I don't want to be put into a position where a significant redesign is needed in the event of a hardware failure of some kind.

Generally speaking, a NAS device doesn't require much processing power. The largest bottleneck in performance will most likely be the network itself. Most home networks will use wired fast Ethernet (100 Megabits/sec), wired gigabit Ethernet (1000 Megabits/sec), wireless g (54 Megabits/sec), or wireless n (248 Megabits/second). Note, however, that these measurements use the bit as the base unit of measure, not the byte (8 bits) that most of us are comfortable with.

Fortunately, Wikipedia has an excellent collection of device bandwidths available at http://en.wikipedia.org/wiki/List_of_device_bandwidths that shows data transfer rates in both bits and bytes. It also appears to be a fairly complete list of device interfaces that may be used in this system.

One important point to keep in mind is the perceived performance of a NAS device will be effected by the slowest point in the data transfer chain. This includes the network adapter on the machine using the storage device and everything between the two machines. I've configured my home network to support gigabit transfer rates, so my NAS device should take full advantage of this. This means I should be able to get a theoretical top transfer rate of 1000 Mb (megabits) per second, which is equal to 125 MB (megabytes) per second.

Here is a breakdown of possible hard drive transfer rates for this device. SCSI is a bit out of my price range and overkill for a home solution.

  1. Ultra DMA ATA 66 - 528 Mbit/s = 66 MB/s
  2. Ultra DMA ATA 100 - 800 Mbit/s = 100 MB/s
  3. Ultra DMA ATA 133 - 1064 Mbit/s = 133 MB/s
  4. SATA 150 hard drive - 1500 Mbit/s = 187.5 MB/s
  5. SATA 300 hard drive - 3000 Mbit/s = 375 MB/s

The last three interfaces are all faster than the maximum transfer rate possible over a gigabit network and should be suitable for such an application. As stated before, other technical merits (hot pluggable, no restrictions on writing to multiple devices at once, newer standard with stronger future) make SATA the ideal option. In the current market, you would be hard pressed to find large SATA hard drives that don't conform to the 300 standard, and the price differences between 150 or 300 aren't significant. You are more likely to find disk controllers on the motherboard or expansion cards (e.g. PCI cards) that use the slower SATA 150 interface. Fortunately, virtually all SATA 300 hard drives are backward compatible with the SATA 150 controllers, so compatibility is virtually a non-issue.

Speaking of expansion cards, it is quite likely one will be needed in my device. This adds a new interface to take into account when assessing bandwidth bottlenecks. According to the Wikipedia page, the 32 bit PCI expansion slot running at 66 MHz (the most common kind of expansion slot today) has a theoretical maximum transfer rate of 2133 Mbit/s, or 266.7 MB/s. This means that one should not expect the best performance from a single SATA 300 or multiple SATA 150 drives connected to such an expansion card. Still, for the needs of a NAS device, a PCI expansion card supporting two SATA 150 drives should work nicely for expanding a RAID configuration. Possibly using a PATA style configuration (pairing a motherboard controller with a PCI controller for RAID1 mirroring arrays) would optimize reads and writes when dealing with large files.

Tags: NAS

Comments

Greatings,
Thank you! I would now go on this blog every day!

Thanks
GlenStef

GlenStef commented on
March 17, 2009
6:26 p.m.

Nice collection of info, But in reality hard drive transfer rates are much lower!
I tested transfer speed between two SATA 300 hard drives:
Actual speed on average is 40MB/s which is 10 times lower. Max speed I ever seen is 70 MB/s.

Vista HOME 32bit
AMD Athlon 64 X2 4000+ 2.10
Gygabyte GA-MA770-DS3P BIOS F5
Ram (in Dual Mode) 8Gb DDRII 1066
Two identical WD sata 300 hard drives 7200 rpm

P.S I ordered PCI-IDE RAID expansoin card so I can use my old drives as backup. Will post with actual transfer rate through PCI between different drives

Vitaliy

Vitaliy commented on
April 24, 2009
6:38 p.m.

@Vitaliy - You make a very good point about theoretical maximums and real life performance. With a little digging online, I found some benchmarks for my model hard drives clocking 75 MB/s and 61 MB/s (two different models in two different software RAID1 arrays) on the upper bound. Performing a very basic performance test of copying a 2.5GB file from one array to another clocked in around 52MB/s. This falls quite a bit short of the 300MB/s theoretical maximum an SATA 300 drive should be able to achieve. The transfer rates must be related to communication to and from the device while most mechanical drives are incapable of processing that data at equivalent speeds. It appears that Western Digital's Raptor X 150GB (SATA 150 spinning at 10000 RMP) is capable of 136MB/s.

This would imply that, per the theoretical maximum bit rate of a PCI expansion card, one could support 4 or even 5 (if they make such a card) SATA drives without any degradation in performance. I am very interested in hearing your practical experience with the PCI-IDE card's performance. While I do have an PCI-SATA150 expansions card, my current hardware does not use it, nor do I have extra hard drives to play with now.

matlik commented on
April 25, 2009
10:37 a.m.

I recently ran into some hardware problems with my motherboard's SATA controllers. The two connections used for my RAID1 storage array seemed to disappear after a short period of uptime. All attempts at identifying the cause of the problem with the Linux smartctl utility and mdadm tool (I use software based RAID) simply generated error messages indicating the drives weren't available. So I installed my PCI-SATA150 card and moved the array over. On startup, everything worked as it used to, and the array has yet to disappear on me.

Now that I have one array on the motherboard and one array on the PCI expansion card, I figured I should share the performance difference from my previous test. Performing the exact same test of copying the same 2.5GB file from the motherboard managed array to the PCI managed array, I saw roughly 46MB/s transfer speeds.

Clearly there is a penalty paid for using the PCI interface, but I would consider this to be more than acceptable. Keep in mind that this single PCI card is supporting a full RAID1 array. I would guess performance could improve if the array was split across more than one PCI (effect on RAID0?), not to mention the redundancy in controllers would be good for higher availability.

matlik commented on
May 31, 2009
9:58 p.m.

Hey Matlik!
In your breakdown list, you mixed the parameters on the SATA interface.
Correction:
SATA 150= 1200Mbit/s - (150MB/S)
SATA 300= 2400Mbit/s - (300MB/S)

/Niklas

Niklas commented on
July 20, 2009
8:03 a.m.

by tag

recent posts

by date

feeds

recent comments