Setting up a Drobo in Linux

DroboUpdate: After writing this blog post, I ran into a number of problems and redid my setup in a different way.

Yesterday my brand new Drobo arrived. I ordered it online together with 2 Seagate ST31000340AS Barracuda 1TB drives. Even though the Linux support by Data Robotics is still in beta, I was able to get the Drobo up and running on my Ubuntu 8.10 server.

The hardware installation was straightforward. I inserted the two drives in slots 1 and 2, I attached the device to my server using a FW800-to-FW400 cable (because my server only has an original IEEE 1394 port) and a couple of seconds after I connected the power cable the LEDs of slots 1 and 2 turned green.

The sudo lshw command showed that Ubuntu recognized the Drobo as a single 2TB disk:

*-scsi
  physical id: 1
  bus info: firewire@001a620284222131
  logical name: scsi4
  *-disk
    description: SCSI Disk
    product: Mass Storage
    vendor: TRUSTED
    physical id: 0.0.0
    bus info: scsi@4:0.0.0
    logical name: /dev/sdd
    version: 2.00
    size: 2047GiB
    capacity: 2047GiB

Next I installed the drobo-utils package. I don't have any GUI installed on my server so I have to settle with the drobom shell command. The command sudo drobom status gave:

/dev/sdd 00% full - ([], 0)

By default, the Drobo uses a LUN size of 2 which means the whole Drobo is visible as a single 2TB disk. If I would fill the Drobo with 4 1TB drives (which probably will happen some time in the future), Drobo would show up as multiple 2TB disks. (At least that is my understanding of the limited Linux documentation that is available). I don't really like that because it is very convenient that the Drobo is just "one large disk".

The solution would be to change the LUN size to a larger value (for example 16 to allow 4 x 4TB drives). Unfortunately the command sudo drobom setlunsize /dev/sdd 16 PleaseEraseMyData resulted in a segmentation fault. Bummer.

As an alternative, I decided to avoid any future problems and wrap the Drobo device into an LVM logical volume using some instructions from the LVM HOWTO:

sudo apt-get install lvm2
sudo pvcreate /dev/sdd
sudo vgcreate drobo /dev/sdd
lvcreate -L2000G -ndrobo drobo
sudo mke2fs -j -i 262144 -L Drobo -m 0 -O sparse_super,^resize_inode
  -q /dev/drobo/drobo

If the Drobo generates another 2TB device when I add extra disks I'll just add it to the existing logical volume so I can keep using /mnt/drobo.

Next I edited /etc/fstab and added the following line:

/dev/drobo/drobo /mnt/drobo ext3 defaults,errors=remount-ro 0 1

After mounting all entries from fstab using sudo mount -a, the df command showed that /mnt/drobo is available.

Next I decided to test whether everything was working as expected. I copied a number of movie files into /mnt/drobo and shared them using Samba. While VLC on my laptop was playing one of the movie files I removed the disk from slot 2. VLC continued playing without any interruption while the Drobo started reorganizing the data on the remaining disk. The sudo drobom status command showed:

/dev/sdd 01% full - (['No redundancy', 'Relay out in progress',
  'no estimate yet '], 22)

After a couple of minutes the LED of slot 1 turned green again and I reinserted the drive in slot 2. Another couple of minutes later I was back up and running with full protection. Nice.

Topic: