43

If computers were much simpler, there would be less points of failure which in turn might improve stability and simplify maintenance.

This got me thinking - for a smallish team of about 25 people, does anybody have experience with running certain lightweight services straight off a Raspberry Pi 2? I'm thinking of things like

  1. IRC servers
  2. Webmail (e.g. Roundcube)
  3. VPN servers
  4. DNS servers
  5. Maybe LDAP?

These little machines require no moving parts (and no cooling whatsoever, they can happily operate in an air-tight casing) and they require very little power (about 2W). They are also very cheap - having one Pi per service would be no problem at all.

  • 2
    Good intentions or no, it's a question about hobbyist hardware that is marketed as hobbyist hardware. Hobbyist hardware in a business IT environment invokes a much stronger reaction on this SE site than, say, Superuser. (though I still wouldn't be surprised by a few downvotes over there either) – Andrew B Dec 29 '15 at 16:12
  • 11
    My coworker recently moved from a company where the network admin ran some corporate network functionality off a Raspberry Pi because "he thought it was cool". Last month, the Raspberry Pi died, and caused financially catastrophic downtime (I don't know details, though). Nowhere is the old adage "hardware is cheap, programmers are expensive" more relevant than here. – DumpsterDoofus Dec 30 '15 at 5:12
  • 3
    @ThorbjørnRavnAndersen There is more to a server than an OS. – Iain Dec 30 '15 at 14:45
  • 2
    @ThorbjørnRavnAndersen I didn't say they can't it's just that they're not right for a professional business environment which is when all is said and done the purpose of SF Q&A. – Iain Dec 30 '15 at 19:09
  • 3
    For what it's worth: I'm a moderator at RPi.SE (I don't monitor SF, someone pointed this out) and I would agree with the general tenor of the evaluation here. I think @DumpsterDoofus summed it up pretty well with the "hardware is cheap but..." scenario. While this is probably possible, as various anecdotes from the disappointed here imply, it would require a disproportionate amount of know-how to pull off. It certainly is not the intended use value of the device. It's for experimentation and education, not plug n play. – goldilocks Jan 2 '16 at 1:51

10 Answers 10

44

A few more reasons against I haven't seen yet.

Single company of failure. I could replace a Dell x86 with an HP fairly painlessly. I could not replace a rpi with a beaglebone black or other arm as easily, especially if I was using non-USB peripherals. It's not as easy as "plug in install disk and go." You need a plan for when they stop making or supporting your part. Embedded systems are not standardized like pc-compatibles.

No integrated server management. I mentioned it in a comment, but the lack of IPMI or similar is a pain; someone must physically be there to service it whether it is the middle of the night or on Christmas morning.

No hardware/OS support available. Have a problem running a COTS application? Driver issue causing crashing? You're probably on your own. Replace computer and/or application.

ARM architecture. If it's not FOSS, it probably won't run here. No driver blobs for many printers either.

SD/microSD-based storage. Try compiling something. Anything. Bring a book. This is a pretty big problem for any RDBMS with even low/moderate activity.


And now for something completely different.

Here are a few reasons you should use a raspberry pi as a server.

You have non-traditional requirements

  • You need a server that only runs on batteries.
  • You need a disposable server that you won't mind getting broken or lost.
  • You need a (cheap) server that is vibration tolerant.
  • You need a lightweight server.
  • You need a volumetrically small server.

Potential applications.

  • Your server must fly. By itself. You've got it mounted on an aerostat, a high altitude balloon, or a UAS. It coordinates with your Swarm-Drone OS and provides a convenient cli for multi-user remote control. All under 400' unless granted FAA clearance, of course.
  • Your server is actually an urban art project on the omnipresence of technology in modern life. It's ziplocked and taped to the apex of the clocktower where it will remain until someone goes up to scrape it off. It's about time the old tower was ntp-enabled anyway.
  • Your team takes words like "agile" and "velocity" way too literally. Your idea of a scrum is the 15 seconds it takes to make an 8-way skydiving formation and you only to commit to mercurial while moving >90mph. It's just easier if the server is moving at the same speed.
  • Your company is actually a band of nomads in the northern sahara providing IT solutions to other nomads. Everything must be solar-powered and pack on a camel.
34

I totally would not do this.

While my experiences with the RPI have been with the early model, I've had a fair number of installs die when the SD card got corrupted. The cards themselves seem fine, and I had it running well on an external HDD.

Secondly, there's a certain degree of false economy with systems like this - You'll need storage. oh, and maybe a USB hub and... yeah.

Thirdly the RPis are ARM-based systems. When you do outgrow them, you'll essentially need to reinstall and reconfigure most of your applications to move over to x86

The old model RPi was as slow as a one legged dog for many tasks as well. The new one's supposed to be better.

There's being frugal and right-sizing, and there's being silly.

For low end use, something NUC class, or for that matter a desktop class machine would give you more expandability, more speed, more ram, and when you do outgrow it, you can just migrate into a proper, no training pants server that runs the exact same software.

They are a little more expensive but you better storage options (SSDs or 2.5 inch drives, depending), more ram (I got 4 gb on my home server) a gigabit port that isn't hanging off the USB driver chip, handles reboots gracefully...

It's just a much better behaved system than my RPi was.

  • 3
    Even NUCs aren't sensible use a proper server. – Iain Dec 29 '15 at 15:40
  • 6
    And don't forget RPi are basically hobbyist machines and not meant for professional use. – Iain Dec 29 '15 at 15:42
  • 1
    Relevant link on IT uses for PI networkworld.com/article/3016805/hardware/… – Jim B Dec 30 '15 at 14:48
  • 3
    Micro SDs are known to fail due to overheating. – Deer Hunter Dec 30 '15 at 19:10
  • 1
    As well as problems related to heat, apparently corruption when writing to the SD card is common when the power supply is not able to provide as much current as the rPi wants at the time. This is especially common when powering several rPis of the same power adaptor or hub. – David Spillett Jan 1 '16 at 20:03
13

As the designers/manufacturer say: (emphasis mine)

The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It is a capable little computer which can be used in electronics projects, and for many of the things that your desktop PC does, like spreadsheets, word-processing, browsing the internet and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.

A Raspberry PI is not designed to be a server that reliably runs 24/7.

Of course you don't always necessarily need run your operations with specifically designed equipment but in a business environment the (always debatable) TCO calculation make that the hardware purchasing cost is still only a tiny fraction of the expense and often only a minor consideration. Even half an hour loss of productivity for an office of 25 people or a couple of hours tinkering by you as the hired sysadmin quickly adds up too...

In a small office a number of the light weight services are often already shifted to other devices, the router will already be capable of supporting a number related services (I.e. Firewall, DHCP, DNS, VPN), the multifunctional printer will already be running a its own print spooler, support wireless printing and a host of other features.

The remaining services that you might still want an on-premise server for probably do require more performance or reliability, I.e. RAID for a file server and more IO performance than you'll get out of an external disk connected by USB 2.0

7

If computers were much simpler, there would be less points of failure which in turn might improve stability and simplify maintenance.

Maybe so, but...

  • rPis are not simpler; they are off-the-shelf ARM computers which run Linux. The fact that they don't have a fan or similar doesn't make them significantly simpler in terms of maintenance or points of failure. OK they won't have a hard disk fail, but they can still have power supply failure, mainboard failure, memory errors, software errors, human errors...

  • You say "no moving parts"; if a machine has 10 parts and a new design has 4 parts, that's simpler. If you switch a hard disk for Multi-Level-Cell (MLC) flash storage, is it simpler? When MLC flash works, electric charge is pushed into and out of the cells, and a physical barrier holds it there in one of several states. One failure mode is when the barrier breaks down and can no longer hold multiple levels distinctly. What does it mean to say "no moving parts" when electrons are the moving parts, and the parts which work with them can physically break?

  • rPis are a product from a small company, squeezed into an uncommon and small form factor, designed for low-cost markets, and made from consumer-grade parts; these forces push against reliability and stability, which tend to come from not pushing boundaries of size or performance, standard designs used by lots of people (preferably companies which demand reliability and will give their requirements in advance and feedback during use), big manufacturing runs that allow for lots of feedback over long timescales (which the rPi is getting now, with ongoing model revisions), larger budgets which allow more careful designs, more testing and higher quality materials/components, and more effort in Q&A. You get stability and reliability from a tank, a jumbo jet or a plain basic car, not from a sports car, or a world's smallest car, or a world's cheapest car.

  • "Failure" itself isn't always a concern, it's the consequences of failure, and recovery from it, which cause problems - and rPis have no error correcting RAM, no RAID storage, no IPMI boards to help you diagnose and troubleshoot. You say "simpler means less points of failure" but then why do we use checksums and message authentication codes, and Merkle Trees, and data striping and redundancy, and TCP instead of UDP and so on? They are more complicated therefore more prone to failure ... except overall they add more failure-protection than failure, don't they? Recovering from Cryptolocker is a big problem, or it can be company-ending. But the complexity of "having a backup" makes recovery possible, even easy.

  • For working hardare, 'maintenance' means software maintenance, and rPis are no different from other servers in that respect.

  • Are you still going to put them on a UPS? Behind a locked door to protect them from tampering? Insured against theft? Backed up? Configured / maintained by paid employees? You still save, but costs are adding up.

Virtual machines are invisibly small, heatless, silent, and approximately free. If you already have a virtual machine host, they are. If your rPi switches off and doesn't switch on again, how long are you going to spend troubleshooting it? How much time could you rent a DNS service or a hosted virtual machine for that cost of your time troubleshooting home hardware?

Ten rPis costs you $200? A traditional x86 server to use as a VM host, with dual hot-swap power supplies, dual Xeon processors, 128Gb ECC RAM, 10k SAS RAID with 10 disks, even throw in a Windows Datacenter license, you're talking $15k - no-brainer, isn't it?

A 25 person company is going to be spending $32,000/month on salaries assuming an $8 minimum hourly wage, not counting any employee overheads. Actual outgoings will be much higher covering office space, computers, phones, insurances, healthcare, any other employee benefits. Some employees will earn much more than that.

Your savings will keep your company going for another ... week?

You probably could build a redundant array of inexpensive computers - the concept is sound, Google is the big poster-child of using software redundancy to build reliable services from commodity PC hardware - but in the case of rPis, wouldn't they be a better fit in a company with one or two people working from home, funding with a credit card, not a company of twenty five people?

  • 2
    I find it interesting that many answers to my question address the comparatively poor reliability of RPi systems, but you also mention that "Failure" itself isn't always a concern, it's the consequences of failure, and recovery from it, which cause problems. With this in mind, maybe a malfunctioning RPi could simply be replaced with a spare one, i.e. I'd have five ready-made "VPN" RPis and another five which all can act as IRC servers etc.? – Frerich Raabe Dec 30 '15 at 11:05
  • 1
    Another thing - if any of our servers would stop working, of course that wouldn't bring the entire company down. In fact, most people could continue working -- we actually had that in the past and it turned out that a malfunctioning SQL server and a loss of Internet connectivity for 48 hours summed up to be mostly an annoyance (though, maybe it would have been a bigger issue if the outage persisted). – Frerich Raabe Dec 30 '15 at 11:07
  • 1
    5 rpi2s and 10 microsd cards is something like 300 usd of spare parts you'd have on hand; not a lot in the grand scheme of things, but at some point, it's more sane to use regular servers and VMs. Manpower costs are going to affect your rpi cluster much more than your VM host. Not to mention that someone must physically be there to manage your RPis, rather than use IPMI or other server management technology. – Andrew Domaszek Dec 30 '15 at 11:15
5

Short answer:

Maybe.

Long answer:

Pros:

  • Small, low profile device, no 19" rack servers or large towers.
  • No moving parts!
  • Low energy consumption.
  • Hardware access is easily secured, a small vault or metal box with a lock will do.
  • Silent (the S is silent just as the RPI).
  • Cheap.

Cons:

  • Power cable can easily be accidentally pulled.
  • Storage reliability, sdcard is used as system disk.
  • RPi model B and others don't not come with a case and available cases are often made of plastic.
  • It's for hobbyists, not system administrators.
  • Some may like x86 or x64 over ARM.
  • RAM and LAN port not scalable, no expansion slots except GPIO.
  • Not exactly lightning-fast.
  • You often need a usb hub.

My experiences:

I got a RPi model B for my birthday three years ago. I experimented with it at first, breaking the OS a few times. After a while i decided i should do something useful with it, i stumbled across Kodi (former XBMC) and i started to use it for multimedia-purposes like IceFilms (link is broken, mirror containing icefilms) to stream movies and series (no payment or account necessary, it's technically piracy).

After literally breaking my first SD card i started using BerryBoot (boot menu that could install from internet to usb and allows you to boot from usb). A few months later my pi landed in the drawer. I got it out about a year ago, when i felt the need for a cheap home-server. It is up right now with the same setup as a year ago.

I would describe it as relatively reliable seen it's situation.

My setup:

  • One RPi model B.
  • One semi-transparent plastic case
  • One 8Gb microsd in a microsd>sd adapter (to avoid breaking the storage part).
  • OS: Debian.
  • No berryboot anymore.
  • Micro-usb cable plugged into router (now i can remotely power cycle router and pi using router panel from a pptp connection).
  • Ethernet cable plugged in to router.
  • 120/12 wan connection to router.
  • No usb devices.
  • Running services:
    • sshd
    • php
    • mysqld
    • apache
    • tightvncserver
    • pptp vpn server

htop screencapture:

htop screencapture

My advice:

You could run some servers such as the ones i mentioned, but you should not use a raspberry pi to operate door locks or other important stuff since it's made for hobbying and not for reliable servers.

Apart from that it will run just fine under moderate load. You will be able to run irc, vpn and webmail. But if you are going to run dns you may want to set a secondary dns in case the pi breaks down.

I would recommend usage of berryboot to have the OS and data on a usb or a usb hdd so when your sd card fails you can simply insert your backup berryboot sd and it will boot with all data still intact.

The choice is yours

3

Apart from the other reasons mentioned here in the answers, an important one hasn't been mentioned: security.

If it's WAN-facing, you shouldn't run it without regular software updates, SELinux, regular kernel updates, etc. Since the Raspberry Pi 2 just boots whatever is located at /boot/initrd7.img, it's not trivial to have multiple kernel versions present. GRUB or another boot loader would enable you to have multiple kernel versions present, giving you the option of booting a different kernel if an update went bad.

Most of the distros that can run on RPi2 have been proof of concepts, not distros focused on being 24/7 available servers.

2

For home use - sure, I run an IMAP server on an RPi2+Raspbian, it's adequate for my own use.

For commercial use - given the amount of downtime I've had at home, not a chance!

1

This is certainly possible. It would obviously depend on the load caused by the mentioned services. The Roundcube service is a little tricky, because you would need a webserver+php+sql. If you plan this carefully (maybe use Lighttpd and SQLite because of their lower footprint) it might work.

There are even companies offering RaspberryPi colocation for a few bucks per month.

1

Short answer: yes, but with reservations. I have around 8 Pi(e)s now, each running 1 or 2 basic servers as you mention. With a careful choice of software you should be able to run IRC, XMPP, web (Nginx), mail (Postfix+Dovecot), Tor proxy, and I'm also running a Gopher server. I also have another Pi2 in a professional aluminium case running Arch as a desktop machine works surprisingly well (see how I did it - PDF I'm particularly proud of the mail server which supports around 12 users and handles several hundred emails daily.

Now, re "reservations". You obviously won't be able to support lots of users, or anything that needs high throughput because of the 100Mbps limitation of the network. The "B" is rather under-powered but will still work, although a model 2 would be better. I swapped out a Pi for an Odroid XU4 recently as the web server was a bit sluggish, and this has more memory and a gigabit ethernet port.

Overall, the Pi represents an ideal way to try software out, safe in the knowledge that if something breaks you won't lose everything.

-2

You can make a RPi rock solid if that's what you set out to do.

OTOH, current models are aways going to be slow.

I see a great deal of value in these small computers going forward and we have an endless supply of things we'd like to use them for. There is no reason they can't be more reliable than the typical file server: You have total redundancy in one small package.

  • Please consider your answer within the scope of business computing when compared against cost-comparable alternatives. What advantages does it have against a 3k USD server doing 30 (or more) times as much work? How would you make it rock solid without doubling or more the price in either parts or labor? How do you negate the intrinsic problems of the platform (embedded system with NDA-walled documentation, limited peripheral selection, limited compute performance, poor IO performance)? – Andrew Domaszek Dec 30 '15 at 20:44
  • Sometimes you don't need 30 times as much work so it is a waste to spend 3k when you could spend a great deal less money. Even with the Broadcom NDA there is plenty of information available to permit use in a business situation. Whatever limitations there are on peripherals and compute performance are simply a function of a $50 computer. You're not buying a $3k computer because you don't have a $3k job to be done. I think over the coming five years we will see a proliferation of similar such devices performing much more difficult tasks than the ones mentioned by the OP. – RegularExpression Dec 30 '15 at 20:58

protected by EEAA Dec 31 '15 at 19:56

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.