As 2π is proposed to be named τ we’ve chosen the name “Raspberry Tau” for this proof-of-concept.
We’ve connected two Raspberry Pis via their on-board ethernet interfaces (via a switch, so we can simply SSH into them), booted via 2GB SD-cards with a Raspbian image on them. After upgrading to a kernel that has kernel-headers available we built DRBD modules, and voilá! A Raspberry Tau cluster is born.
We’re replicating the data on the USB-Sticks; their performance nicely matches the available network. Here’s
/proc/drbd (shortened and line-wrapped for readability):
root@raspberry-alice:~# cat /proc/version Linux version 3.2.0-3-rpi (Debian 3.2.21-1+rpi1) (email@example.com) (… Debian 4.6.3-1.1+rpi2)…) root@raspberry-alice:~# cat /proc/drbd version: 8.4.2 (api:1/proto:86-101) GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by root@raspberry-bob, 2012-09-18 12:58:08 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:805304 nr:0 dw:348628 dr:818596 al:127 bm:70 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0
As Raspbian is Debian-based, there are Pacemaker (and Heartbeat resp. Corosync) packages available … so a cheap, low-power, High-Availability cluster is easily built.
Disclaimer: for a real HA-cluster you’d need a few more things.
- a STONITH device (if power is supplied via a Linux-PC, you could turn off the USB port by software), and
- redundant network connectivity (USB ethernet adapter).
Of course, if you’re just clustering your media library these things might not be mandatory.
Packages are available for everyone – just drop an email to firstname.lastname@example.org, and we will be happy to provide them. Please note that the upstream kernels already include the DRBD kernel module, so there’s no need to compile your own – unless you want to test the cutting edge; in that case, good luck 😉