Freebsd – Bare metal or virtualize

bare-metalfreebsdupgradevirtualization

I am looking to upgrade servers and am trying to figure out a good plan.

We currently have 4 servers:

  1. OpenBSD firewall/VPN server
  2. FreeNAS backup servers (local) that receives ZFS snapshots
  3. FreeNAS backup servers (remote) that receives ZFS snapshots
  4. The workhorse FreeBSD server below.

FreeBSD Server

~2010 FreeBSD 8.4, 32gb ram, dual Xeon E5520
ZFS (8 disks, zraid of disks in mirrored pairs, 8TB)

Services:

  • Samba
  • Netatalk (Apple filesharing)
  • Apache (mostly internal, some external facing sites)
  • MySQL
  • VirtualBox (Windows 2k3 instance)
  • ZFS snapshots

My Plan (basic)

I am planning a server upgrade that would have us switch from one primary server to two servers that would each take some of the server duties from the list above (and would replicate to each other) so that if one goes down, I could rapidly activate all features on the second. Something like:

Server 1:

  • Samba
  • Netatalk (Apple filesharing)
  • VirtualBox (Windows 2k3 instance)
  • ZFS snapshots

Server 2:

  • Apache (mostly internal, some external facing sites)
  • MySQL
  • ZFS snapshots

I've only ever run bare metal, and I have no experience with VMs other than running Windows 2k3 on VirtualBox. Should I look at running my server instances as VMs? I thought that might make restoring from a crash easier. In general, does this seem like a good plan?

I've been looking at ixSystems servers and Dell rack hardware, if that makes a difference. (I also have never used any rack mount equipment.)

Best Answer

No question, virtualize. The benefits and flexibility afforded by virtualization far outweigh the negligible performance hit.

Your plan, though is sub-optimal, primarily because Virtualbox is a desktop-grade virtualization solution and is not intended for server usage.

Here's what I'd suggest: install (free) VMware ESXi on both servers, then create VMs on them as needed. If you don't care for ESXi, then consider Hyper-V or KVM. Leave the host OS/hypervisor as "clean" as possible, responsible only for running your VMs, and create VMs as needed. Don't run any application processes on the host OS.

If you have some budget for this, pick up the VMware Essentials Plus bundle, which gets you vCenter, which will allow you to do things like live VM migrations between hosts, centralized management, backups using tools like Veeam, etc.

Once you move to a virtualized environment, you'll never go back.

Related Topic