# Building a Home Server: A Comprehensive Guide to Dell R720XD
Written on
Chapter 1: Introduction to Home Server Building
As a software engineer with diverse experience in system administration, network architecture, and digital communications, I've often utilized an old desktop computer as a server at home. Over the years, this machine has been transformed into various roles, including:
- A file server for backing up photos and videos
- A web server for hosting personal websites
- A Plex media streamer for accessing digital content from anywhere
- A Mythbuntu TV host and DVR for managing over-the-air television
- A project box for compiling and testing code
Despite serving its purpose well, this desktop setup became increasingly cluttered with configurations. Thus, I decided it was time for a comprehensive upgrade.
With guidance from friends, the community on Reddit's /r/homelab, and resources from Art of Server, I ventured into the realm of repurposed enterprise servers for home use. Surprisingly, these servers are relatively affordable, with the main cost coming from the hard drives, which I needed to purchase regardless.
Before diving into the details, I want to share my journey of exploration—highlighting both my successes and missteps. This isn't a tutorial from an expert but rather a personal account of my learning experience in home server conversions.
Chapter 2: Choosing the Right Setup
Initially, I faced a decision: should I opt for two servers to segregate the Network Attached Storage (NAS) from other services, or should I consolidate everything into a single server? Separating the functions can offer better data protection and easier upgrades, but it also leads to increased power consumption, noise, and cost.
My new plan was to utilize Docker containers for each project, allowing for streamlined management and isolation of configurations while enabling extensive storage options for personal media and backups.
Important Note on Backups:
While a home server is a step towards better data management, it shouldn't be seen as a standalone backup solution. Implementing redundancy through ZFS or RAID setups can mitigate the risk of disk failures. However, for critical data, it's essential to have offline or off-site backups.
After researching options, I found that the Dell "20" generation (420, 520, 620, 720) offered the best value. These servers are modern enough to support advanced CPUs and RAM but not so cutting-edge that they break the bank. I could acquire bare-bones models for a few hundred dollars, boasting ample cores, memory, and storage capabilities.
Chapter 3: Selecting the Dell R720XD
My exploration led me to the Dell R720XD, a robust server designed to accommodate multiple drives, making it an ideal candidate for my needs. It features a rear panel capable of housing additional drives, and while it’s not officially supported, this configuration allows for greater flexibility in storage management.
The R720XD can support numerous drives—up to twelve 3.5" drives in the front and two additional drives in the rear—providing more than enough storage for my home setup. With its powerful specifications, I realized it would be wasteful to limit its use solely to NAS functions.
I focused on creating a thermally efficient system to minimize noise, which often comes from powerful hardware. My chosen configuration included:
- 12 x 3.5" drives
- 2 Intel Xeon E5–2650v2 CPUs (8 cores each, 2.6GHz)
- 256GB RAM
- PERC H310 RAID controller for OS management
- Dual 1100W Platinum redundant power supplies
Choosing components wisely ensured a balance between performance and energy efficiency.
Chapter 4: Initial Setup and BIOS Configuration
Once the parts were assembled, setting up the server was straightforward due to the user-friendly design of enterprise servers. I powered it on without any drives to allow the power supplies to configure themselves. The initial startup was alarmingly loud, prompting concerns about my decision. However, I was determined to continue.
Next, I installed the RAID card and configured the drives. Although I encountered some challenges in getting the system to recognize all drives, persistent troubleshooting led to success.
Making the R720XD Quieter:
The R720XD is inherently noisy, but I took steps to reduce the sound levels. Updating the firmware and adjusting thermal settings helped minimize fan noise. I aimed to keep the server's operation within acceptable noise levels while maintaining performance.
Chapter 5: Installing Ubuntu Server
I chose Ubuntu Server for its widespread use and compatibility with ZFS. The installation process was seamless, and I was careful to install the OS on the RAID volume. I also configured network settings to decrease boot times, which had been excessively long during my initial setups.
To further enhance the user experience, I added a graphical environment for easier management and occasionally used graphical tools for disk operations.
Chapter 6: Implementing ZFS
Setting up ZFS was a straightforward process, and it provided the redundancy and performance I desired. I carefully mapped out my drives, ensuring accurate configurations to avoid complications down the line.
I created a ZFS pool named "tank" and adjusted settings based on best practices I had researched. The system automatically remounted on reboot without issue, demonstrating the effectiveness of ZFS in managing my data storage.
Chapter 7: Performance Testing
To evaluate the system's efficiency, I conducted speed tests for read and write operations. The results were promising, with impressive speeds achieved during various data transfer scenarios. The fans remained relatively quiet throughout these tests, confirming that my modifications had been successful.
Chapter 8: Managing Drive Failures
I proactively tested the system's ability to handle drive failures, which is critical for long-term reliability. Swapping out a failed drive was a smooth process, thanks to ZFS's efficient design, which allowed for swift resilvering.
Setting up notifications for drive health checks became essential, ensuring that I would be alerted to any potential issues before they escalated.
Chapter 9: Conclusion and Future Plans
After successfully configuring Docker, NGINX, and other essential services, I now enjoy a robust, scalable home server capable of handling various tasks. The server continues to serve as a learning platform for my ongoing exploration of technology.
Looking ahead, I plan to relocate the server to a dedicated networking closet to optimize space and manage noise levels effectively.
I welcome feedback from fellow enthusiasts and look forward to sharing more insights as I continue this journey.
The insights shared here represent a blend of personal experience and practical advice, aimed at anyone interested in building or upgrading their home server.