Monthly Archives: May 2015

Home Environment

Hardware
microserver

HP Proliant Gen8 Microserver
Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
12GB ECC RAM
1x256GB Samsung 840 PRO SSD for operating system volumes
2x1TB HDD for data storage
2x1Gb Ethernet Ports

Operating System

XenLogoBlackGreen
This rig is acting as a virtualisation host running on Arch linux with a Xen 4.5.0 kernel.

The plan was to build a powerful enough home server that I could run a decent amount of virtual machines on top of the hypervisor and have different virtual environments to suit different purposes (media server, home theater, dev environment, network / VPN gateway).

Maintaining them as independent virtual machines gives you the benefits you’d expect – being able to use one physical server to provide you with as many virtual servers as you need. Overprovisioning allows you to allocate more CPU and memory resources than you actually have, and have them dynamically scale up and down to meet the needs of the workload running at that particular time. Transcoding? give the majority of the CPU time and memory resource to the media server for instance.

Storage

Tying in nicely with the choice to go down the hypervisor route is the use of LVM (Logical Volume Manager). This is essentially virtualisation of your physical storage. It allows you to provision your physical disks, which don’t have to be identical in any sense, into a pool of logical volumes. These can be assigned to a single physical volume, spread across many, moved resized etc. at will.

Physically I’ve got 3 drives in this server, a 256GB Samsung 840 Pro SSD, and 2x1TB standard SATA HDDs.

The SSD was designated for the operating systems root partitions to be sure they are as performant as possible. The HDDs are carved up between 1TB of data storage, and 1TB for snapshots to back up the virtual machines and to provide non performance critical generic storage (swapspace, local storage).

Operating System(s)

xentop

Dom0 Hypervisor
Arch linux running Xen 4.5.0
Running as lean as possible with 512mb of allocated RAM and a 40GB root partition.

Guest #1 Media Center (HVM)
Windows 8.1 running as a media center
* PCI passthrough of HD6850 video card for 3d acceleration
* USB passthrough of wireless keyboard

Guest #2 Media Server (HVM)
plex_logo
Ubuntu server 15.04 running as a media server
* Sickrage for triggering downloads of new episodes of TV shows
* Couchpotato for doing the same thing with Movies
* Sabnzbd for downloading from newsgroups
* Transmission for downloading from torrent sites
* Plex media server for indexing media, and making it accessable outside of the LAN (transcoding when needed)

Guest #3 (Still to build) Dev Server (HVM)
docker

Arch server running as a development environment / host for docker containers
* Home automation server will run here (servicing voice commands)

Guest #4 (Still to build) VPN/Network Management Server (HVM)
Arch server running OpenVPN to allow connections in to home LAN.
* Network monitoring (nethogs, iftop, tcpdump etc.)
* Quality of service to dedicate a percentage of traffic to BitTorrent / Newsgroups – so we don’t have to manually configure each client with a limit, and to prioritise things like Skype/SSH/OpenVPN
* Default gateway / Firewall – all traffic from LAN will enter via eth1 and leave via eth0 to router.

Services

SickRage
CouchPotato
Sabnzbd
Transmission