Drobo

From Finninday
Revision as of 23:18, 13 November 2010 by Rday (Talk | contribs)

Jump to: navigation, search

The drobo showed up yesterday. The unboxing was as cool as with an Apple product. And it is really easy to setup and start using... as long as you are plugging it into a Mac or PC. The instructions don't say anything about how to get it to work on Linux. Luckily I found this via google:

[root@192.168.1.1]# lshw
[root@192.168.1.1]# /sbin/mke2fs -j -i 262144 -L Drobo -m 0 -O sparse_super,^resize_inode -q /dev/sdc
[root@192.168.1.1]# mkdir /drobo
[root@192.168.1.1]# mount -t ext3 /dev/sdc /drobo
[root@192.168.1.1]# vi /etc/fstab
       /dev/sdc   /drobo  ext3    defaults     0 0


That was all I needed to get me going. I thought I had a bunch of old hard drives lying around that I would be able to wedge into drobo until I could afford to buy real drives, but none of them are SATA. Darn. Another bummer is that my server has a firewire plug that is heart-shaped and resembles a mac firewire, but the firewire plug on drobo is square. So I think I'm stuck with USB. My first speed test writing to drobo shows 14.8MB/sec. That feels pretty lame.

Another weird thing is that the drobo shows the full capacity of the array, not the actual capacity. That is, I put two 1TB drives in it and it looks like this with df -h:

/dev/sde         2.0T   155G   1.9T   8%   /drobo

I expected drobo to report the capacity of the array to be about 1TB instead of 2TB.

I added a few more drives to the drobo to give it the capacity to hold our vacation videos.

Interestingly, after adding two 1TB drives, drobo still reports the same capacity to df. Even more reason not to trust df numbers for drobo.

drobo performance on usb 2.0

But still the drobo is just too slow.

Drobo claims to have these throughput stats:

Max Sustained Transfer Rate:
FireWire 800: Up to 52MB/s reads and 34MB/s writes
USB 2.0: Up to 30MB/s reads and 24MB/s writes

How slow is it for me? Bonnie says this:

rday@weasel:/drobo/bonnie$ bonnie
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
weasel           6G   249  74  1019   0   500   0   876  63  1111   0  58.3   2
Latency              1516ms   21811ms    1552ms   76164us     261ms     727ms
Version  1.96       ------Sequential Create------ --------Random Create--------
weasel              -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  1387   6 +++++ +++  1815   4  1615   4 +++++ +++  1811   4
Latency             63932us    1261us     725us    2761us    2696us     121us

I care most about block reads and writes. Those come out at 1,111 and 1,019 K/sec.

Hmm, what units is bonnie reporting? I'll guess bytes since bits would be silly. So I'm getting 1MB/sec on drobo. Bleck. That's a lot worse than the 24MB/sec that drobo advertises. I wonder what I'm doing wrong? I'm getting slightly faster reads than writes, which seems reasonable.

native internal disk performance on the same machine

Compare that to bonnie running on an internal drive on the same machine:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
weasel           6G   347  98 33362  24 17006  10  1311  95 46774  13 115.1   7
Latency             83296us    2552ms    1958ms   97333us     412ms    1399ms
Version  1.96       ------Sequential Create------ --------Random Create--------
weasel              -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  2238  86 +++++ +++ +++++ +++  2691  97 +++++ +++  6854  97
Latency             35917us     410us     319us   53088us     119us     874us

That means block reads and writes at 46 and 33 MB/sec. About 30 times better. And curiously close to what drobo claims to be able to do. So I have to presume that the "block sequential read" that bonnie is measuring is a different metric than the "max sustained transfer rate" that drobo is measuring.

But if I just need to find the right firewire cable to switch off of USB, then I'm a dummy for using USB all this time.

Wikipedia says that USB 2.0 generally performs at 240Mbit/sec and 1394 does 800Mbit/sec with less CPU load. I've got to find that cable.

Hopefully, I'll be able to post bonnie stats for drobo over firewire soon.

drobo over firewire 400 (1394a)

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
weasel           6G   265  98 16951  14 10546   6   961  97 28571   8 123.6   7
Latency               110ms    6345ms     537ms   67886us     230ms     796ms
Version  1.96       ------Sequential Create------ --------Random Create--------
weasel              -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  8777  28 +++++ +++ 16891  46 14137  43 +++++ +++ 15867  47
Latency             87774us   12285us   13658us   13962us   11168us   13427us

So let's see, that means 17MB/sec block writes and 28MB/sec block reads. Wow, that's much better. And if I wanted to invest in a $25 1394b card, I could probably double that. Well, I'd have to buy another $37 cable too. So maybe I'll save up for awhile.

Watching movies now seems much better. I only saw one stutter on a dvd served by the drobo and that was while the cache was still filling right after starting VLC. Now I just need to watch more movies and gather much more data.