Build a Ubuntu fileserver: The Planning
If you have multiple computers in the house, you can probably benefit from a single system with centralized storage. A fileserver, as it is usually known, is a computer with multiple hard drives that often sits unattended somewhere and simply gives file access to other computers. This can be an older model, with a minimal amount of computing power, or a fairly up to date system with dual cores and lots of memory.
I decided to build myself one of these systems, so what I hope to do here is explain what I did to get up and running, and hopefully help you solve some of the same problems I encountered on the way.
Since this computer will mostly work as a file server, a high end system is not really necessary. In fact, an old computer sitting in your basement with Windows 98 on it will probably do just fine.
There are things to remember, however, that might swing you in favour of building a new system.
- Processing power for other jobs
- Network connectivity
If you want to be able to do other tasks with the system outside of serving files, you might want some more power. For instance, I’ve set up my box to act as a video conversion system, which frees my MacBook from churning through videos all night.
Disk drives will always be improving, so don’t limit yourself to a case with only 1 or 2 3.5″ drive bays. Look for something with at least 3 or maybe 4. For example, my original plan was to use the shell of a Dell computer, so that I wouldn’t need a new case, but I quickly learned there was very little internal storage, which would have crippled the setup right out of the box.
You’ll definitely not want to go wireless with a server like this. Wired ethernet is the only way to go, and Gigabit is certainly preferable. This of course means you’ll either have to put the computer near your main network station, or run a cable to another part of the house.
Finally, you must take into account the cooling/noise requirements for a system like this. It will be on 24 hours per day, 7 days a week, unless manually shut down, so you won’t want a case that makes living next to it unbearable. Look for a case with 120mm case fans, and use a high quality CPU heat sink that dissipates heat with a large fan that moves air while turning slowly.
The second half of the equation is the software to run the hardware, and do what you want it to do. I suggest using a Linux variant: it is free, very stable, and has a very enthusiastic support community. From there, depending on your level of knowledge, you need to choose a GUI version, or command line version. The benefit of a GUI is that configuration and usage is significantly easier, but it also means you more or less need to physically be at the computer to make changes. A command line version, however, allows complete control over all aspects of the system, but can be done remotely via SSH (the terminal).
I chose to use the command line server version of Ubuntu Jaunty Jackalope, because it had come out just days before I set up my system. It is available at Ubuntu.com in 64 or 32 bit versions. The command line ensures that all processing power available to the computer is used for productive computing instead of running the interface. With the OS in place, you must plan what software you’ll run to do the serving.
Ubuntu Server contains numerous packages that can be configured out of the box to create a working server. This is a list of packages I installed immediately after setting up the computer (* denotes a package installed after the build):
- LAMP (Linux Apache MySQL PHP web server)
- SAMBA (Windows file sharing)
- Mediatomb* (UPnP media sharing)
- Netatalk* (Apple file sharing)
- Webmin* (Web interface for administering computer)
- ProFTPD* (FTP server)
These servers provide services to the entire network, which means I need to do little or no interaction with the server once they’re running.
A Ubuntu file server can provide centralized storage for a large network and provide many other services to all the computers connected. It can store and stream media, backup important files and even process files, all while sitting unattended under a desk or in a closet.