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. The 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
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 200 Mb/s.
I used a 12th gen i5 for the processor. 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
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 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 hosts 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 device hosting this website.
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.