After 5 years, I'm finally getting a server again

Ok, so it's not a real server but based on my research, it should be enough to meed my modest needs for a home lab setup. Back in the day, I had my gaming rig dual- and triple-booted with Windows and a flavor or two of Linux but I also had this old Pentium III eMachines PC with Win2k and 256Mb of RAM. My step-brother was getting rid of it so I took it. I added a PCI NIC I had laying around, installed Debian and that was my server. I setup DHCP3 and Apache on that machine and it was running for months. I had a "Hello World" site with DynDNS setup and somehow Comcast found it.It didn't take long to get a C&D letter. I should've learned HTML and did something with it but I never made it that far.


Shortly after that, other circumstances forced a "reduction of assets" (aka, I had to get rid of a lot of shit) and a move. I tried labbing it up with VirtualBox and VMWare server but it just wasn't the same. After moving again (and reducing assets even further), I got my first job in IT and decided to focus on other things in life. When your hobby becomes your work, one tends find new hobbies.

I've learned a lot since then and believe I can do much more with a home server. My goal is to start a lab that's a very small version of the infrastructure at my current work. We've got 2 Data Centers, about 40-50 servers and about 1600 users. It's about 70% Windows and 30% RHEL across the servers with Windows across the workstations. We provide directory, storage, print, mail, HTTP, PBX, FTP, DHCP, DNS, groupware and building access services for our users. We're also basically an ISP for 15,000 students who live in our residence halls. AD, Exchange, Apache, IIS, CUCM, Sharepoint, Facility Commander... There's a lot to manage.

Building a tiny version of that is no easy task. Then again, it's only for 2 users; Myself and my girlfriend. She's my test of a normal user. If it's not easy to use, she'll tell me to go fuck myself (much like users do in an actual business). However, unlike at work where up-time is paramount, this won't be a mission critical setup. It's purely for personal development. It's hard to say I'm an expert on AD when all I've done is unlock accounts, reset passwords and create user accounts. I want to say that not only do I know how to do basic day-to-day tasks, I also know how to design and deploy these services as well. Here's my plan:

  • A hyper-visor will be covered by ESXi. VMWare seems to be one of the biggest names in virtualization, it's what my current employer uses and I've liked VMWare products in the past (Player and Server). My backup is Microsoft's Hyper V running atop Windows Server 2008r2 or 2012.
  • Directory services will be handled by Microsoft's Active Directory. I'd previously underestimated Microsoft's business and enterprise products but I've learned that Active Directory is the base of almost every other service. When AD is configured properly, the possibilities are endless. 
  • Mail will be handled by Exchange. Love it or hate it, it seems to be the usual mail server found in the business world. Huge and CPU-heavy, it's probably the most resource intensive service I'll be running. My backup is Postfix. 
  • I'd like to setup an IP-phone system with soft-phones and Asterisk. Asterisk is no Unified Communications Manager but a lot of the underlying technologies are common. Hunt Groups, Translation Patterns, etc. Cisco or not, it's all there. 
  • Ticketing will be handled by Spiceworks. I like the interface and I've always wanted to play more with it. My backup is Hesk, which we use at work. It's not the most polished option but it has a lot of features basic features that other ticket systems I've used lacked. Plus, when my girlfriend wants me to fix something around the house, I'll tell her to put in a ticket. ;)
  • Network Monitoring will be handling by Nagios. It's one of the most common names in network monitoring and a universally known Linux service so I figure the most popular option is a good place to start. My backup is Cacti since we use it at work so I've got a little experience with it already. Spiceworks also has network monitoring functionality but I'd still like to play with Nagios anyway.
  • Database services will be handled by MySQL because it's common and it's free. My backup is Postgres but only because it's the only other database I know of that isn't Oracle or MSSQL. My database experience is virtually none at this point but I'd like to learn.
  • DNS services will be handled by Bind. Another popular Linux service, I'd like to know more about DNS in general and, again, the most popular option seems to be a good place to start. 
  • HTTP services will be handled by Apache. It's the most popular, has an endless array of modules and I've already got some experience with it. My backups are nginx or lighthttpd. I've heard good things about both and they're also very popular. 
  • File storage services will be eventually handled by a Synology NAS but for now, data will just sit on the local storage of the server and I'll figure out a way to back stuff up to a portal HDD. Synology seems to be at the top of it's game in the NAS market and their Disk Station Manager software looks extremely polished. My backup is sticking HDD in a tiny Linux machine and using something like OpenFiler.
  • Groupware will be handled by MediaWiki. My wiki experience is limited so far in my career but it like it so much more than Sharepoint. Plus, Sharepoint isn't free. 
  • I'd also really like to try OwnCloud (once I have some real storage). It's a self-hosted, self-managed cloud storage solution. Much like several VMWare products, the product is free but actual support costs money (and lots of it). It's basically a private Dropbox. Setting up something like this is a project I currently have at work but it sounds like something that'd be great to know how to do for other organizations as well. Most people want the ease of storing and sharing files like they do with Dropbox or Google Drive but it's a company security nightmare as far as the IT department is concerned. 
While I could easily source some second-hand rackmount servers from work or Craigslist, I don't want to deal with the space, cooling or noise requirements that "real" servers come with. These aren't going to be running in a datacenter somewhere; It's gonna be sitting in my home office and running on my electric bill so I need something as quiet, low power, and small as possible. When it comes to hardware, you can get incredibly tiny but there's a limit to how low-power and small footprint you can go before you start looking at ARM and FreeScale chips. As cool as a cluster of tiny Linux rigs would be, I wouldn't get to run a lot of the programs I'm wanting to get experience with. I want to keep this in the x86 architecture so I was looking at building a MicroATX or a MiniITX form-factor machine. Initially I was looking at AMD's E350 APU since it seems to have good performance for a low-power architecture. Power-wise, they're comparable to Intel's Atom but the Atom-based machines get stomped in terms of performance. There's a few people using E350-based hosts for ESXi home labs and even one system can spin up 3 or 4 Windows VMs if you max out the RAM (which usually maxes out at about 8Gb on those systems). Most people have at least 2 of these hosts so they can utilize load-balancing and high-availability features of ESXi (which is my eventual plan as well).

Then Intel's NUC, or Next Unit Computing form-factor came along. It's running a dual-core, hyper-threaded Core i3 CPU sourced from ultrabooks, up to 16Gb DDR3 SODIMM RAM, Mini PCIe slot, mSATA port for an SSD, and that's pretty much it. It's less than half the size of the MiniITX standard, uses less 20w at full load are more than capable for a speedy desktop. The barebones cost about $300 and depending on how much RAM and how big of an SSD you go, you can configure a maxed out NUC for about $600. Sure, it won't play Call of Duty well but with enough RAM, a super quick SSD and a decent power CPU, a couple of people have successfully used these as ESXi hosts for home labs. Best of all; Intel has Core i5 and i7 based NUCs coming down the pipe for hopefully not much more. If the current set of units could handle hypervisor duties, just imagine what a low-power quad-core, hyper-threaded chip with twice the RAM could do. 

As cool as I find these tiny titans of computing to be, if one of these units doesn't work for what I need then I can always re-purpose such a small low-power PC for a number of things. My 6yr old gaming rig is finally dying so it's due for replacement. The girlfriend wouldn't mind a computer and I'd just need to get her a monitor (backstory: When she moved in, she brought her netbook which she hates and I love so we basically swapped. I installed Linux and all of my apps on her Acer Aspire netbook and she uses my once-awesome gaming rig for Facebook games and internet browsing. Since we've gotten iPhones, actual computer usage has gone down significantly anyway). Should I need to fall back to another build for a server, I have one specced out. 
  • SuperMicro MBD-X9SCM-F-O LGA mainboard - It gets good reviews, has ESXi compatibility, it's got everything I'm looking for and, for a server mainboard it's easy on the wallet. 
  • Kingston 16GB (2 x 8GB) 240-Pin DDR3 SDRAM ECC Unbuffered DDR3 1333 RAM - ECC, unbuffered server RAM and I can always double-down on RAM later to max out this ESXi host. 
  • Intel Xeon E3-1230 V2 CPU - Low TDP, quad-core, hyper-threaded, plenty of horsepower; What's not to love?
  • Western Digital VelociRaptor 250GB 10000 RPM HDD - Admittedly, I'm not 100% dead-set on this drive but I want something faster than a standard HDD without the storage-hit of the SSD. The Raptor drives offer great performance at a much better cost/Gb ratio over SSDs still.
  • SeaSonic M12II 520w PSU - SeaSonic makes some of the best PSUs on the market and no crazy power requirements are needed here. I just need something reliable, efficient and quiet.
  • Fractal Design Define Mini microATX case - I'm normally an Antec guy when it comes to computer cases. Their P180 case is still iconic and I plan to build my next gaming rig in their P280. My special edition Antec Solo 550 case has served me well for years and is a great case. However, Fractal Design has some similar design aspects of the Px80 cases from Antec, sits at a great price point, employs many techniques to allow for a quiet machine and gets great reviews. 
Grand total = $875.

While my spec list above is a notable amount more expensive than a maxed out NUC, it allows future expansion in all areas, uses hardware from the ESXi Hardware Compatibility List (HCL) and would allow for a proper RAID card with HDDs rather than using a NAS, thus allowing my entire home lab to fit in one quiet, energy efficient and still relatively small box.

I'm still waffling on which way I want to go (though I keep coming back to the spec-list above over the NUC) but whatever I do, I'm getting a server again and these words can't capture how happy I am about it. 

Comments

Popular posts from this blog

Installing CentOS 7 on a Raspberry Pi 3

Modifying the Zebra F-701 & F-402 pens

How to fix DPM Auto-Protection failures of SQL servers