My Raspberry Pi cluster
blog.erratasec.com
blog.erratasec.com
About 20 years ago I got started using a dozen or so surplus Pentium75 desktops and by combining the working parts and best/largest parts I ended up with eight or so nodes with a reasonable amount of memory and local storage.
A write up would have been pointless it was pretty much standard like you'd read in any linux magazine of the era.
I used one of the PBS options for batching and some homemade stuff to rip audio CDs to mp3 in a distributed manner and completely unproductively fooled around with PVM and MPI. In the old days PVM was stable and easy to use although MPI was predicted to be the wave of the future. In fact today PVM is pretty much dead and everyone uses MPI or the ever popular NIH homemade stuff. "Back in the old days" we did things like spawn off ray tracing jobs semi-manually with bash scripts and perl scripts. You'd write perl that output animated povray files given a frame number and then queue up like 120 ray tracing jobs and then stack them into video and thats how you got a minute of bad ray traced animated movies. Not being much of an artist my animated ray tracing was limited to bad physics demos like mirrored ball bouncing. As most other cluster ops do I calculated a lot of "X+1" and "Is X a prime" to test. Like most screwing around, honestly I just turned a lot of KWh into heat.
The wife acceptance factor was incredibly low. Although admittedly I'm still married, to the same awesome woman even. Eventually I got rid of all the machines. But for a year or two it was a lot of fun. I thought the noise level was bad... then I replaced all the boxes with dell towers a few years later that sounded like jet engines. Then IBM 1U rackmount servers P4 surplus around 2010-ish which did a pretty awesome job of running LXC before containerization became "cool". Portability ha ha ha the size of a closet in the middle of my home office, looks like an organized disaster zone. Really looking forward to building a pi cluster to screw around with that'll fit in a shoebox with room to spare. OMG I could build a toy cluster so small I could drop it into my desk drawer when I'm not playing... Oh if I had more time this summer I'm feeling the urge to build another cluster...
Power doesn't matter as long as the circuit breaker doesn't pop. At one point I figured I was burning 1100 watts using the dell towers (and yes the room does get warm) which implies running 24x7 would cost me $1100/yr (which is very cheap compared to a training class or many other hobbies, but I digress) however I suspect I never powered up that cluster more than maybe 300 hours. I spent 10x more money on a then new technology 100 meg ethernet switch than I did on the power the system used. Back in the dinosaur era we mostly used hubs which were unswitched one big broadcast region, probably sounds very weird to modern young kids.
I can't even begin to list all the stuff I learned. The jump from admin'ing one unix box to admin'ing a cluster is almost as big as the jump from being an appliance user to being a cluster admin.
What I didn't learn was the scalability problems of having 10000 nodes, having less than ten generally, I did a lot of setup by hand. Although I did all the OS level stuff automation like homemade scripts, puppet, etc. A lot of cluster admin is related to the "fun" of physical hardware support for 10000 individual boxes and I miss out on that. Also running 24x7 how do you handle dusty air filters or whatever at that scale for day to day operation? Power failure recovery must be non-trivial.
Its hard to say "well I'd never have gotten job X except for..." because I might have anyway. As a hobby its been tangentially tied in with my day job on and off since at least the turn of the century.
Edit: I just had an idea and detached this post from https://news.ycombinator.com/item?id=12149396 so more people would get a chance to see it. (It originally appeared in an off-topic subthread.) Maybe the first time we've pruned a comment from its original parent because it was so good.
The boxes are long gone but the pictures remain:
It even ran powered straight off my router's usb port, although I just put in a VM now: https://github.com/benlowry/pihole-extended-hosts
I don't know enough about how this works to figure out how to work around it so I reverted to blocking ads at the router with a hosts file. NoScript provides too many other benefits so I had to keep it and stop using pi-hole.
I'm not a dev but looking very quickly at pihole it seems it serves an index.html file (https://pi-hole.net/faq/is-it-possible-to-change-the-blank-p...) in place of ad content, you might make that a link to /dev/null or just make it a blank file, and see if that works? I suspect it won't as the ABE is checking for the correct origin of content and pihole is spoofing the origin.
This might work, using https://noscript.net/abe/abe_rules.pdf, but I'd ask at the NoScript forums. The rules cascade so it would need to go at the top.
#ABE rules
# ALL matches any URI
# accept lets it happen, sandbox and anon probably would be fine too
# INCLUSION is any sub-page level part, like images and such, can specify further which inclusions
# LOCAL is any local address including those in noscript.ABE.localExtras (see about:config);
Site ALL
Accept INCLUSION from LOCAL
# Deny # probably only needs that if you're not prepending already made rules??
That might negate much of ABE though as you're letting external sites reference anything that they find on the local domain.Let me know if it works!
Unfortunately it's probably a chicken-and-egg thing, where POE is too expensive until a lot of boards support it, and boards won't support it because it's too expensive.
Ex: https://www.amazon.com/gp/aw/d/B019BLMWY0 (note, I haven't actually used this product).
A quick ebay search shows some that are ~$5, so I'd imagine it wouldn't be all that hard for an experienced board developer to get the price lower at higher production rates.
https://www.amazon.com/gp/aw/d/B003CFATQK/ref=mp_s_a_1_1?ie=...
The only downtime has been a result of power or Internet outages at home.
Anecdotal, but I now have some 36 different Raspberry Pis at my house, and while I've had two (cheap) MicroSD card failures, I haven't had an issue with any of the Pis themselves.
As long as you use quality 2A power supplies (1A for older Pis) and quality MicroSD cards, I don't think you should worry too much about reliability, and if you have a cluster with redundancy... That's kind of the point ;)
They both had the same MAC address on the NIC, which was not impressive and more importantly have about a .5% (consistent) outbound Ethernet error rate. Not ideal for a service utilizing UDP.
I now use Pi's, which work flawlessly.
Now that I look, there are some receive errors reported by ifconfig on the X2, but I've never investigated them. The X3 is on a different network, and reports zero errors. (I don't know how much data either has transmitted, the counter will have wrapped as it is only 32 bit.)
But, I wouldn't recommend them to anyone not thoroughly familiar with Linux. Compared to the Raspberry Pi, there's not much documentation, and the kernel is pretty old.
http://hackaday.com/2016/01/25/raspberry-pi-zero-cluster-pac...
Like others, I have a stack of Pi systems doing file storage, DNS ad blocking, webservers, home control monitoring, XMBC, etc. A clean mount would be cool
You can follow along here:
Maybe when the new Compute Module comes out, someone will come up with a way to put a stack of them on the same board.
http://www.friendlyarm.com/index.php?route=product/product&p...
But,it has two problems. 1) you still need to do all the cables to connect them to the outside world. 2)Allwinner support for weird boards is often a problem. I've gotten a few of them in the "wow, look at all the features" to find that the drivers and support underneath has real problems.
The Pi / Beaglebone ecosystems have one key thing, lots of very smart people are working on the hardware/software interface level. This means that things just work. The Pi team has multiple person-decades of software improvements.
Now a days with the pi3 you can run your cluster on wifi (kills performance, but performance was never the point anyway...)
So with pi3 hardware its possible to get a length of wood 2x4 and screw the pi array to the 2x4.
Of course if you want to do stuff with the hardware other than crunch bytes you'll need the stacking anyway to access all the ports.
I'm pleased with the article. Just last week I was looking at the GeauxRobot stacking hardware. Its nice hardware, although around twice the cost.
It's my 3rd beowulf, but the first that fits in my hand and runs over USB. I use it mostly for exploring fractal space and attempting to (but usually failing) to approximate pi.
Both problems are well suited to doing something in the slow lane. We know Pi to trillions of places, so there's little benefit in a fast machine to calculate it to billions. It's more a great exercise learning problem solving approaches.
So far I've managed to get a working monte-carlo based approximation across the node, but it's a terrible approach to approximating pi to anything more than a few places. I've also had some luck with implementing ramanujan-type formulae, and am still working on implementing chudnovsky in distributed forms within the bounds of the zero's RAM limitations.
On the fractal side I've only really had time to look at mandelbrot, but I'm looking forward to using it to render animations for julia and to explore henon attractors.
[1] - http://clusterhat.com/
That's not a fair criticism of the atime feature. There are lots of use cases where it is desirable.
Also note that his prices are listed per unit, and the products are not always sold "per [rpi] unit". For example, a 7 port USB hub powers 7 RPi units, so unit price = (item price) / 7.
There's nothing wrong with conversation pieces. Many stories here are, and funnily enough they tend to lead to good conversation. May there be more of them!
Real Pi clusters get posted every month or so, there is more required than an albeit cute rack case and improvised small PDU and switch.
Probably one of those.
* Have you done a write up?
* What software do you run to make it a cluster?
* What problems are you running on it?
* What have you learned by building it?
* What problems did you have?