Recently I've been experimenting with a Raspberry Pi (revision B) running different GNU/Linux distributions.
Since the Pi is a basically a mini-computer, I decided to take it for a spin and see what I could throw at it, and I have been pleasantly surprised. In fact, it's been so successful that I've decided to try setting it up as a mini server with various services. In doing so, I've come up with a list of advantages that I feel are very compelling.
- Power consumption - The Pi draws about five to seven watts of electricity. This is about one tenth of what a comparable full-size box can use. Since servers are running constantly night and day, the electrical savings can really add up. I have calculated that the basic Pi kit (Pi board, case, and power supply) will pay for itself with about one year's worth of electricity savings if it's left to run 24x7x365. I ended up with the CanaKit Basic Kit (ASIN # B00DG9D6IK) which is very affordable and good quality.
- No moving parts - The Pi uses an SD card for storage, which is fast and has no moving parts. There are also no fans and other things to worry about. A Class 10 SD card is usually the best performing compared to lower class cards, but this will mainly only affect boot time where there is the most I/O. There is a compatibility chart for SD cards here, results may vary but overall I've had very good luck with Transcend cards which provide a good value.
- Small form factor - The Pi (with a case) can be held in your hand. A comparable full-size box cannot. This means the Pi can be integrated inside of devices, too.
- No noise - The Pi is completely silent.
- Status lights - There are several status lights on the Pi's motherboard. With a clear case you can see NIC activity, disk I/O, power status, etc.
- Expansion capabilities - There are numerous devices available for the Pi, all at very affordable prices. Everything from an I/O board (GPIO) to a camera. The Pi has two USB ports, however by hooking up a powered USB hub, more devices can be added.
- Built-in HDMI capable graphics - The display port on the Pi is HDMI and can handle resolutions up to 1920×1200, which is nice for making the Pi in to a video player box for example. There are some converters that can convert to VGA for backwards compatibility. A list of HDMI to VGA converters can be found here. I ended up using the Sanoxy HDMI to VGA cable (ASIN # B0088K7QUQ) which has worked well so far.
- Affordable - compared to other similar alternatives, the Pi (revision B) offers the best specs for the price, at least that I've found. It is one of the few devices in its class that offers 512 MB of RAM. The Pi has come down in price since it first arrived, and is finally affordable as a hobby, business use, or whatever need there is.
- Huge community support - The Pi has phenomenal community support. Support can be obtained quite easily for the hardware and/or GNU/Linux software that runs on the Pi mainly in user forums, depending on the GNU/Linux distribution used. A good list of distributions can be found here.
- Overclocking capability - The Pi can be overclocked if there are performance problems with the application used, but it is at the user's risk to do this.
- Multiple uses - Having the storage on an SD card makes it easy to swap with other SD cards running other GNU/Linux distributions to quickly and easily change the functionality of the Pi. If you want to set up the Pi to run as a server to test it out, then later try something else, just swap the SD card and you're done. Using the "dd" command on a GNU/Linux computer, a backup of the SD card can be created and later restored if needed.
Drawbacks of the Pi
With all of the positive things about the Pi, there are a couple of items that I feel are very minor drawbacks:
- ARM architecture - While ARM is a highly efficient and low powered architecture, it is not x86 and therefore any binaries that are compiled to run on x86 cannot run on the Pi. The good news is that entire GNU/Linux distributions have been compiled for the ARM architecture and new ones are appearing all of the time. There are very few applications that absolutely need x86. The only one that I found so far to be a problem is Wine, which runs Windows programs. Unfortunately, Wine does not work on the Pi.
- RAM not upgradable - The main components of the Pi are soldered to the motherboard, including the RAM which is 512 MB. This is not a problem though as GNU/Linux can easily run on this. I've found the Pi uses about 100 MB of RAM while running as a small server (this is without running X11).
Software for the Pi
The Pi runs GNU/Linux and variants of similar operating systems. Running Windows is not such a success story, there are too many technical problems with Windows in getting it running on the Pi, so Windows has been deemed impractical on the Pi.
I am a huge user and supporter of Red Hat GNU/Linux derivatives. So, I found that RedSleeve is the Red Hat Enterprise/CentOS variant that runs on the Pi.
This opens the door to an entire world of uses for the Pi as a small server. The RedSleeve distribution has most of the binaries that are available on regular x86-based CentOS and Red Hat Enterprise Linux. With RedSleeve, the Pi can then become a DNS server, file server, web server, firewall, cluster, or whatever you choose that can run without hitting the maximum RAM. A single or multi-purpose server of these types or others will probably not be an issue with memory, with light use. Memory intensive applications generally become an issue with the X11 desktop and running end user applications.
Today virtualisation is very popular so some may say that the cost of spinning up a virtual machine is less than running a Raspberry Pi. But, calculate the power consumption for your hypervisor, and weigh out the differences to see which method in fact costs less overall. Sometimes, a physical box or physical segmentation is needed, or avoiding high costs of running a full hypervisor is a factor, and this is where the Pi can step in.