All disks are not equal, especially cheap consumer disks without temperature sensors (a.k.a HP DL380 G7 fan speeds running like a 747 on take off)

I’ve recently been enjoying the freedom of a homelab, creating VMs on VMware ESXi and installing all-the-things. I’ve had my HP Proliant DL380 G7 for a couple of weeks now and already accumulated a number of VMs for investigating a collection of things:

Prior to my DL380 arriving, I was pondering what type of disks to put in, and in particular whether I used go with cheap consumer laptop hard disks, more expensive (e.g. WD Red NAS disks), or named-brand HP disks. I went with a pair of HGST 500GB disks to start with, and ran into an issue with the cooling fans spinning up like a 747 taking off.  Googling for “dl380 disk fans” turns up many related posts, and it turns out that some non-HP drives in Proliant servers may not report their internal temperature correctly, resulting in the server thinking the drives are overheating, and cranking up the fans to compensate.

Here’s a couple of screenshots (from the iLO – Integrated Lights Out) showing the fans ramping up to near unbearable noise levels over about 5 minutes:

  • iLO reporting the drives overheating:

  • Only after a couple of mins, but still running faster than probably should be at idle:

  • Starting to ramp up:
  • Getting unbearable now:

If I’d spent some more time reading aound I would have found this excellent article detailing this issue, and more specifically drives known to work in the DL380 and drives known to have this issue. Turns out, most of the WD disks do work, so I replaced the HGST drives with 2 WD Black 750GB drives. Now the server at idle runs with the fans between 10-13% and is actually no louder than a regular desktop.

Back to creating some more VMs 🙂

Cloning an existing VM on VMware ESXi using command line vmkfstools

Apparently vCenter Server provides the ability to clone VMs via the Client, but not if you’re just using ESXi and managing your host directly with the web client. It is possible however to clone a VM’s disk using the vmkfstools commanline utility as described in this post.

Here’s a summary of the steps:

Enable SSH from the ESXi web console: Host / Manage / Services

In my case I wanted to create a copy of an existing CentOS7 VM. SSH into your ESXi host, then:

vmkfstools -i CentOS7-1/CentOS7-1_0.vmdk CentOS7-2/CentOS7-2.vmdk -d thin

Next, create a new VM as normal, but on the Customize Settings dialog, press the X on the right to delete the disk created by the new VM wizard:

Next, press ‘Add new disk’, select ‘Existing hard disk’, then point to the copy of the VM disk that you created with the vmkfstools command:

Credit to this post for the tip to configure using an existing disk.

Planning for a homelab with an HP Proliant DL380 G7

So I got caught up with the idea of running a rack mount server at home and setting up virtualization to run a ‘bunch-o-stuff’. As you do. Having never done anything with enterprise server hardware before (although I did recently set up Proxmox virtualization on my Mac Pro), naturally I have a ton of questions:

  • Should I run ESXi or Proxmox?
  • The DL380 has 8 hot-swappable 2.5″ drive bays. What’s the minimum number of disks needed to run, and do you need to configure a RAID array? Question here. A: Yes you do need to configure a RAID array, apparently it can’t be disabled. So you need 2 disks at a minimum for RAID0 (striped) or RAID1 (mirrored). See also HP Smart Array Controller docs here.
  • What about RAID10, what I understand is a combination of 0 + 1. See article here.
  • Can you run regular laptop 2.5 disks, or do they have to be ‘midline’ or enterprise? This seems like a hotly debated question with many varying opinions. The answer is probably ‘it depends’, at least on what you’re planning to use your server for. e.g. is it doing to be running 24/7, are you going to have more than 2 drives (more may cause vibrations that regular laptop drives may not be constructed to handle). A consistent answer if you’re not going to go with the HP branded/supported disks, is that WD Red drives, intended for use in NAS appliances, will work reliably in a rack server. Everything else is YMMV. I’m going with a pair of cheap HGST 500GB drives in RAID1 to get started, and then might add a couple of WD Blacks or Reds for more storage later.
  • 10k and 15k SAS drives are new to me, I’m more familiar with SATA. This might be something I’ll check out. The 146GB capacity seems a common size, but that’s rather small if I’m going to create a bunch of VMs. They’re pretty cheap at around $30 though, so could easily pick up a few for a RAID array.

So many options 🙂

 

Downloading Proxmox Container images

Before you can create a LXC container on a Proxmox virtualized environment, you need to download the template images first from an available list. You need to pre-download the images first befoe you can create new containers from them in the web ui.

From the docs here, there steps are (while ssh’d into your Proxmox server):

Update catalog of available templates:

pveam update

List the available templates:

root@pve:~# pveam available

system          alpine-3.3-default_20160427_amd64.tar.xz

system          alpine-3.4-default_20161206_amd64.tar.xz

system          alpine-3.5-default_20170504_amd64.tar.xz

system          archlinux-base_20170704-1_amd64.tar.gz

system          centos-6-default_20161207_amd64.tar.xz

system          centos-7-default_20170504_amd64.tar.xz

system          debian-6.0-standard_6.0-7_amd64.tar.gz

system          debian-7.0-standard_7.11-1_amd64.tar.gz

system          debian-8.0-standard_8.7-1_amd64.tar.gz

system          debian-9.0-standard_9.0-2_amd64.tar.gz

system          fedora-24-default_20161207_amd64.tar.xz

system          fedora-25-default_20170316_amd64.tar.xz

system          gentoo-current-default_20170503_amd64.tar.xz

system          opensuse-42.2-default_20170406_amd64.tar.xz

system          ubuntu-12.04-standard_12.04-1_amd64.tar.gz

system          ubuntu-14.04-standard_14.04-1_amd64.tar.gz

system          ubuntu-16.04-standard_16.04-1_amd64.tar.gz

system          ubuntu-16.10-standard_16.10-1_amd64.tar.gz

system          ubuntu-17.04-standard_17.04-1_amd64.tar.gz

For each of the templates you wish to use, download using for example for Ubuntu 14.04:

pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz

Now from the web ui, you should be able to click the ‘Create CT’ button and pick from your available templates: