Recently, I inherited a project which caused a bit of nervousness. I inherited a custom compiled application with a set of dependencies that can’t be fulfilled with modern Linux distributions. This program needed to compiled against MySQL headers for version 3.23. To compile the program, it was determined that the best solution was FreeBSD 6.2. This was the last version of FreeBSD which supported the required libraries. I did try other distributions included Suse, Gentoo and Redhat, but I ran into circular dependencies issues which precluded this use. However, the HCL for FreeBSD 6.2 is a little old at this point.
After several attempts, I was unable to find a single network card in my inventory, which functioned with FreeBSD 6.2. This could be the cards in my inventory are limited, but more likely that 1000M cards where just not available in 2005 and will never be supported in the Kernel. To summarize my dilemma, the network software component I have, requires really old version of network enable services, but will not function using a modern network card. To solve this problem, I turned to virtual machines. As most IT professionals will know, a virtual machine is a computer operating system, which is run in a virtual environment on the host computer or server. The virtual machine appliance is therefore divorced from the hardware on which it runs. As a Linux user, I have a lot of experience with Oracle’s VM Virtualbox and use it daily for various projects and testing.
However, in my production environment, I opted to run VMware ESXi server. This server was already setup, and the server hardware had clock cycles to spare. It was a simple matter the get FreeBSD 6.2 running on the VMware server. Out of the box, FreeBSD used the network card with no problems. Once this hurdle was overcome, it was a simple matter of the getting the software dependencies resolved, and compiling the software. So, I now have a really old operating system running in a virtual environment, with hardware specs that would have blown away the FreeBSD people when version 6.2 was released.
My favorite part of this exercise, is that now that I have the system in as virtual appliance, having a hot spare, or imaged backup ready to deploy at a moments notice. However, that is a story for another day,