Saturday, February 28, 2015

Building a Home/Lab VMWare ESXi System

Summary

In this post I'm going discuss a recent lab hardware build.  I needed to upgrade my existing VMWare ESXi system.  The goals I had for this upgrade:
  • Relatively cheap hardware
  • Decent performance; it's just going to be a lab box
  • Smaller footprint than previous box
  • Quieter and more energy efficient than previous box
  • And more importantly - caveman-simple deployment.  I had zero interest in troubleshooting an ESXi install on non-compatible or barely compatible hardware.

Implementation

I did the typical Google research project to find hardware combos that others had got working with ESXi.  I focused on ESXi 5.5 Update 2 as that's the current release.  After the research, I decided to go with a SuperMicro bare-bones server.  

These type of systems are relatively complete.  The motherboard w/CPU and power supply are already installed (and fit) the chassis.  You provide the RAM and hard drive.  That motherboard 'fit'ting part is a legitimate concern in these little 1U, half-depth rackmount systems.  I'm all about building boxes from scratch, but I didn't want to deal with figuring out what motherboard would fit what chassis.  In general, this server checked all my requirements boxes:
  • Roughly $500 on the street, before RAM and hard drive.
  • 8-core/2.4 GHz Intel Atom processor.  The motherboard will accept up to 64 GB of RAM.
  • Tiny little rackmount box.  1U and only 9.8" deep.  Fits nicely in a small rack.
  • Low noise.  I can't hear it above the router that's in the same rack.
  • Low power.  That Intel C2758 Atom processor is quite efficient, only 20 watts.
  • Caveman factor - others have had luck with getting ESXi up on this box.

Picture below of the actual server after I took it out of the packaging:



Below is what a "bare-bones" system looks like on the inside.  As mentioned, everything but the RAM and hard drive is supplied.



For RAM, I decided on some fairly cheap Kingston SODIMM's that I'd seen others say work in this SuperMicro box.  I went with 32 GB of RAM (4 x 8 GB).  SODIMM picture below:


For a hard drive, I went the SSD route for performance.  I bought a Samsung 120 GB model.  120 GB is way overkill for me as I keep all my VM images on a NAS, but that size seems to be still the sweet spot as far as price on these drives.    One annoying thing with SuperMicro box - they don't include the mounting bracket for a drive.  You have to go buy that separately.  Only ~$7, but still an unnecessary pain in my book.  Below is a picture of that Samsung SSD mounted in the bracket.


Picture below of the bracket w/drive mounted in the SuperMicro chassis.


ESXi Installation

I don't have any stories of technical heroics employed to get ESXi installed on this box.  It just worked. 

I pulled down ESXi 5.5 Update 2 from VMWare's site and made a bootable thumb drive with UNetbootin.  There are multiple sites out there describing how to use that utility to make bootable ESXi images.  Simple.

Bill of Materials

Here's a consolidated list of the parts I used to build this box:




























Sunday, February 1, 2015

Combining MP4 files with avconv (updated)

Here's a shell script for combining .mp4 files into one (in chronological order).  Comes in handy for consolidating a bunch of short videos into a single file.


#!/bin/bash

count=1
cmd="cat"

for f in `ls -1rt *.mp4`
do
 PIPE="pipe"$count".mpg"
 mkfifo $PIPE
 avconv -i $f -c:v mpeg2video -q:v 5 -y $PIPE < /dev/null &
              cmd=$cmd" pipe"$count".mpg"
 count=`expr $count + 1`
done

$cmd | avconv -i pipe: -r 24 -vcodec libx264 -acodec libvo_aacenc -ab 61000 -ar 16000 -threads 0 -y final.mp4
rm pipe*mpg