I recently had a failure on my 4 TB RAID5 array. It happened when I moved the server from the rack to my office, in preparation for converting it to a desktop system. It would still host the RAID array, but it would no longer be running all the virtual machines.
During the move, I also upgraded the RAM. Shortly after powering the server on, I noticed that any access to my harddrives (RAID or not) was extremely slow. The kernel showed high load, with 98% being in system. Wow. Before I had time to realize it was the RAM I added, I lost a drive on the RAID array. I pulled the RAM, and things went back to normal. I added a new drive and started rebuilding the array. At 97.1% complete a second drive got a permanent read error. Good bye array.
I managed to get the array back up degraded, but I couldn’t rebuild it. Now I know I could probably have used dd to copy the disk to a new one, get another new drive, and rebuild that way. Oh well, hindsight is 20/20.
I needed to get my data off the degraded array. There was no critical data on it, so it had never been backed up. How am I going to back up 2+ TB of data anyway. It mostly contained over 1000 recordings from MythTV, some audio and video, and pictures. Still, if I could save the data, I really wanted to. So, I went out and purchased a Drobo. Drobo’s don’t really like Linux that much, so I hooked it up to my Mac Mini and started copying data over via rsync. Wow, was that slow!
It turns out the Drobo is a really. slow. device. Although it can handle watching live TV via MythTV, it barely keeps up. Anything else done on the Drobo kills the TV. Granted, the Drobo is a Firewire 800 device, but it still slower than that would imply. Knowing that I will be recording and watching 2 HD streams at the same time, I knew the Drobo wouldn’t cut it for me. For example, a Drobo rebuild could take days, and it’s all internal to the Drobo, no firewire used. But, during rebuild, live TV was impossible to watch.
I built a new 4 disk 2.8 TB RAID5 array under Linux, and started transferring live TV and recording to the RAID5 array. Things got much better I decided to do some tests.
The Drobo, connected via Firewire 800, writing a 16GB file took 628.89 seconds (10.48 minutes) ~25 MB/s
The Linux RAID 5, writing a 16GB file took 135.59 seconds (2.26 minutes) ~121 MB/s
25 MB/s is doable for two HD channels, except for the issue that nothing else could use the drives at the same time.
I then tested the connection via the network. My MythTV Server is a simple Pentium M 1.5 GHz system, and it uses remote Samba shares for it’s storage, over GB ethernet.
The Drobo via OSX SMB share, same 16 GB file took 1451.37 seconds (24.19 minutes) ~ 11.3 MB/s
The Linux RAID5 via Linux SMB share, same 16 GB file took 459.08 seconds (7.65 minutes) ~ 35.7 MB/s
Ummmm. Ouch! The Mac Mini is a Core2Duo at 2.6 GHz, the Linux is a Core2Quad at 2.6 GHz. Neither used any noticeable CPU during the file transfer.
Tweaking the OSX smb.conf file didn’t help any. What did help was specified here. That alone changed my speed to 16 MB/s. Still not good enough, but better.
The Drobo is a cool device, and has it’s place. But not in a media streaming type environment. I’ll use the Drobo to store my audio, pictures, and movies, but not my live TV recordings for MythTV.
I use a drobo in linux for mythtv. recording 3 HD shows at same time. commflagging 2, playing back1. no issues. You messed up somehow?
Interesting. I wonder if it’s a by-product of using HFS+ hooked up to a Mac?
What results do you get when you do:
time sh -c “dd if=/dev/zero of=ddfile bs=8k count=2000000 && sync”
Looked at your numbers and I think you’ve miscalculated HD needs.
I’m seeing around 2MB/second (or, and I think this is your issue, 16Mb/second
) for my HDHR feeds and a little less for the HDPVR.
So, the 3 of them add up to 6MB and we’ve tested out at 25MB.
Dunno, I can only say it works for me. 😉
I’m EXT3 BTW.
dd reports as MB/s (uppercase B), but not on OSX.
the exact out from dd gives me this…
dd if=/dev/zero of=ddfile bs=8k count=2000000
2000000+0 records in
2000000+0 records out
16384000000 bytes transferred in 617.999383 secs (26511353 bytes/sec)
Have you tried to do a rebuild while watching/recording TV?