Kehoe Server and Network Overview

Self Hosted

After I had completed my Linux, Networking, and A+ courses I wanted to use what I learned to help with my partners work. I worked with her to find out what her work flow was like and how technology could save time and expand her capabilities of analysis. They key issues found:

With all this in mind I set out to provide a tech solution. I gave myself a month to procure the parts and configure the setup.

Below is a list of features I created to solve all these issues:

Below are images of each component with a list of parts, configuration, and functions.

Server

Server with Tesla K80 and it's power supply

The server has 3 16 terabyte hard drives in RAID 0 with a 512GB cache drive attached to it. The drives are IronWolf Pro with a Mean Time Between Failure of 6 years given they are always running. I am not worried about drive failure in the near future, but a future upgrade will be to add two more drives and run the hard drives as a RaidZ2 for redundancy. The cache drive is a Western Digital 500GB WD Red SN700 NVMe. As a cache drive the most important factor is write endurance, this drive is rated for 5,100 Terabytes Written. I used the Linux tool Bcache to attach this drive as a cache drive to the Raid0 Hard Drives. This improved write speeds from 80Mb/s up to 250 Mb/s.

Services that run on this server:

I used a 12th gen i5 for the processor. I orignally had an I3 with no video output. When I installed the Tesla K80 graphics card the server would not run its services. With the i5 I could read the output and diagnose the issues (it just needed me to select the kernel) It is a little slower than her laptop which is a 13th gen i7. I was limited to the 12th gen i5 because I used a mATX case and the CPU fan could only handle the TDP of the 12th gen i5. The benefit to using this CPU is that she can run the analysis on it and still use her laptop for other work.

Tesla K80

Tesla K80 with stand and fan insert

I got a Tesla K80 which is a 6 year old server grade graphics card. It has the cuda cores equivalent to a NVIDIA 3070TI which is a $500 graphics card. Since the Tesla K80 has no video output and Bitcoin Mining crashed the price for this card fell drastically to $60. It has no internal cooling mechanism, consumes 300 watts of power, and does not fit inside the mATX case. I got a 3d printed fan insert and GPU mount off eBay and found a cheap power supply to use for the card. When the card needs to be used I plug in a riser cable to attach it to the server. We do not keep it like this permanently for safety as well as the fans being very loud.

Router

I previously used this Micro Firwall Mini Pc as the router. It uses pfSense as the OS which has a lot of documentation,features, and is often used in small to medium sized companies.

It had hosted the VPN with the OpenVPN service. OpenVPN was used for ease of use and great compatibility. It can run on all OSs and phones.

The router provides DynamicDNS updates to CloudFlare so my kehoe.pro domain points to my changing Dynamic IP. It also provides Network Address Translation to route website queries to the Raspberry Pi.

The SSD on this router had died. It took weeks for the vendor to send a replacement. In that time I got the dynamic DNS updater and OpenVPN service to run on the server. Now I no longer need this device. I am going install linux and set up services for it and give it to a friend.

Raspberry Pi 4

The Raspberry Pi provides local DNS resolution so we can refer to the network resources with friendly url names. It is also what is being used to host this website.