Building a Raspberry PI cluster


Motivation

Partially for learning, partially because it might come handy, I decided to build my own Rasbperry PI cluster that would run HypriotOS and Kubernetes. If you search the web you'll see others doing it and I used them as a knowledge source. Some are outdated and perhaps sharing my experience might help somebody. Anyway, here is my story starting with

Hardware

  • 4x Raspberry PI 3
  • 4x 32GB microSD - the faster the better
  • 4x network cables
  • 4x USB cables
  • Anker 5 port USB charger
  • Mikrotik hEX router
  • partially self-designed, self 3d printed stack (open source)
I've decided to go with 4 Raspberries because I have got hEX router which has 5 ports and 4 of them seem enough for experimenting anyway. Make also sure to get short USB and network cables. The later should be flat to consume less space. Those are sadly hard to get in Slovenia, perhaps your best bet is an online shop somewhere (in the EU). Anker is a good USB charger that shouldn't have problems feeding the hardware but any powerful enough would do. Also if you manage to find an USB powered router, you don't need second 220V outlet for the router (currently I need two of these - one for the router and the other for the USB power charger) and have instead a short USB cable just like Raspberries do.

The biggest challenges

Getting short and flat network cables wasn't easy. Online shops outside of Slovenia will help.

Manufacturing and designing the stack that keeps everything together. I've based it on an existing one, but enhanced Raspberry holder and created a compatible holder for both Anker USB charger and mikrotik hEX. I missed one thing though - replacing microSD cards is not easy - I've ended up using tweezers. If I ever update the design, I'll definitely make it easier. But overall it is a solid stack and should do the job just fine.

Connecting the beast

Not much here, router and USB charger need to be powered trough an outlet, all Raspberries need both network cable connected to router and USB one to the USB charger and that's it. Lights will blink and that's it.

Next post will deal with HypriotOS nad Kubernetes installation.

Updated Righthand's utilities for managing Intel Rapid Storage Technology

I’ve updated my tools for managing IRST and dedicated page as well. Command line utility now displays arrays, volumes, disks, RAID support and ports.

It is also in line with the latest IRST 10.8.0.1003 drivers .

Noteworthy change is that the utilities require .net 4.0 – see the dedicated page for installation instructions and other info.

Expect much more in the future.

Here is a dedicated page to the tools.

Change the HAL of Windows OS

I am doing a presentation on Visual Studio 2010/.net 4 parallel programming enhancements in the near future. [MS] released Visual Studio 2010 CTP and that’s fine. The problem was that the one and only release comes in the form of a VirtualPC image. This is not a problem by itself but it is a problem if one wants to show parallelism. You see, VirtualPC supports only single processor guests ([MS] isn’t exactly pushing for VirtualPC enhancements, is it – at the time [MS] bought VirtualPC it was on the same level as [VMWare] Workstation, now it is lightyears away). How can one show performance enhancements of parallelism with one CPU?

Part of the solution is [VMWare] Workstation 6.5 (and earlier, don’t know exactly which ones): it supports multiprocessor guests. Great. However once I’ve imported VirtualPC image into Workstation the OS was still showing only one processor even though device manager recognized two processors. Even updating the computer driver (node Computer\Advanced Configuration and Power Interface (ACPI) PC) didn’t help – there were no choices. Luckily I’ve googled over this blog post: Hyper-V How To: Change the HAL on your vm. Oh, the joy, the trick just worked.

The other problem with this presentation is that Visual Studio 2010 CTP expired by the end 2008. The solution is to change date backwards (silly, isn’t it) but Workstation/Windows keep synchronizing the time with current and thus yielding all sort of activation and expiration warnings. The solution is a twofold one:

- add these lines to Workstation’s configuration file so the Workstation won’t synchronize the guest on every occasion (thanks to Virtual Time Freeze):

tools.syncTime = "FALSE"
time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"

- remove or disable guest’s network capabilities so the OS won’t synchronize as well.

Ah, the joys of presentations based on CTPs.

VMWare Workstation's Easy Install

When you think that [VMWare] invented everything they push the innovations even further. These days I've finally accomplished Windows 7 beta download and since I don't have a spare computer right now I've though of installing it under Workstation 6.5. I have to admit that I didn't install any new OS for a while now (thanks to Workstation's excellent snapshot management system). So I created a new typical configuration and entered the path to the Windows 7 beta x64 iso file. Workstation recognized it as Vista (W7 is enhanced Vista after all, but I am sure Workstation will be updated to reflect the proper name in the future) and notified me that it will be installed using Easy Install.

ei

I didn't know about Easy Install and I was pleasantly surprised about it. It lets you enter all the required data for the installation in the next next dialog:

eii

and that’s it. After you put in all the required configuration data Workstation will install the OS for you, no interaction required whatsoever. That’s right, after some time you’ll be greeted by running OS. A huge timesaver even if you don’t install a lot.