Saturday, May 28, 2016

Planning on building a new home server.

All my computer hardware is ancient at this point.  The old server that I got second hand blew up on me, so I am looking at getting back up to the trailing edge of technology again.

Start with an 8 core AMD processor with 16GB  of RAM, an over-sized power supply, a small 128GB SSD for the OS, and a 4 or 5 TB hard drive stuck in a tower case. Over time I want to double the RAM and add 5 more hard drives of similar size. If needed I can add a PCI hard drive controller with 4 more connections. Later I could copy the OS to a bigger SSD and put the smaller drive in a laptop whose hard drive just died.

The plan right now is to install Debian Linux and use LVM to mange the drives. This way as I add more drives in the future I can add new partitions and expand/move existing ones. I plan on creating partitions to store data the same size as the external usb drives I am currently using to store my files. This way I can always easily back up the data to the external drives as needed.  I can store the back up drives at other people's houses in case my own location suffers some sort of badness.  And everything should be encrypted on disk.

Use SMB to share files on my local network. Setup a media server on the box to share media files to my portable devices. Connect the OSMC raspberry pi box to the main server to see all its files.  This gets rid of a bunch of usb hard drives that sit behind my TV right now.

Use KVM to create virtual machines so I can run a dozen other operating systems at the same time.  Setting up development environments for different versions of windows and Linux.  Things like eclipse and rails have enough dependencies that conflict with other packages that they really need to be in their own bubbles of existence. I can't tell you how often doing some upgrade or install of one thing hosed another package on my desktop machine.  Not to mention just how bloated things get after a few years of constantly adding package after package to the same desktop.

Xen might be better.

And if I run a service like file sharing, that should be in it's own virtual machine.  In fact, I am actually leaning toward doing almost nothing directly in hardware and installing just a minimal operating system at the hardware level and actually running my own desktop as a virtual machine.  Open stack might be interesting to try out for these services.

And finally I want to use thin clients to access this server and the operating systems running on it.  A raspberry pi, even the $5 one, should have more than enough power to run a desktop as an X-terminal server.  And the $30 one now has wifi built in and bluetooth for a keyboard.  I would love to have a half dozen terminals scattered around my place, able to log into my desktop and access the virtual machines. There are actually some distros that give thin client access to many different systems.

The beauty of thin clients is that you save so much time by not having to configure and manage multiple laptops and desktops. If the terminal server dies, you can just switch to another screen and keep working.   Everything is done directly from the main server, so you only have one system to manage and backup.  And if you have multiple users on that same box and each user runs similar programs, the binaries only have to be loaded once, so that once one person runs a Chromium browser, that is in memory so for the next person their browser starts almost instantly.

No comments:

Post a Comment