New hardware is good.

Posted: May 20th, 2010 | Author: | Filed under: computing | Tags: , , , | 1 Comment »

The time has come for a new machine to take over duties as the home server. Instead of stuffing together the normal patchwork of old workstations I’ve decided to pick up some proper hardware that can reliably support a few concurrent virtual machines running on Proxmox VE.

A few combo deals on Newegg later…
* 1x ASUS RS100-E5/PI2 1U Barebone Server (P5BV-M/RS100-E5 mobo)
* 1 x Intel Xeon X3220 Kentsfield 2.4GHz LGA 775 Quad-Core (SLACT, G0 stepping)
* 4 x Kingston ValueRAM 2GB 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400) ECC
* 2 x Western Digital Caviar Black WD1001FALS 1TB 7200 RPM SATA 3.0Gb/s 3.5″ Internal HDDs
* 1 x Intel EXPI9402PT 10/100/1000Mbps PCI-Express PRO/1000 PT Dual Port Server Adapter
* 1 x Nippon Labs eSATA Bracket Two SATA II internal cable to 2 port ESATA bracket for SATA I and SATA II Hard Drive Model ESATAB-2P

That leaves me with 4-cores, 8G of ECC memory, 2 TBs of storage and 4 Gigabit NICs for a little over a grand. Hardware commoditization is a Good Thing™.

Assembly begins:
ASUS RS100-E5/PI2 barebones

 

1 beer. Everything fits easily. Note the 90 degree PCI riser will allow you to install a 16x PCI-e card but the riser only provides an 8x connection to the MB.
ASUS RS100-E5/PI2 partial build

 

2 beers. A little mod to remove the Sata2/eSata cables from their stock bracket and install them neatly with a little cutting to the slim-cd cover plate on the front of the server.
ASUS RS100-E5/PI2 built

Hardware is done and initial testing goes smoothly. BIOS was already up to date for me.

Grabbed a fresh copy of Debian Lenny and installed via USB stick with the debian-504-amd64-netinst.iso image.

lm-sensors 3.1.2 shows me running a steady 57-60°C at idle which seems high to me, but checking the Intel specs it appears normal for the G0 stepping version of this chip. On the plus side, the G0 is actually a 95W thermal design instead of the 105W advertised on Newegg. Under load it climbs well into the 60’s but the fans spin up a little and keep it holding steady within range.

So far I’m impressed. This thing has some nice features for the price point:
* The MB provides 4 SATAII ports, so using the Nippon Sata/eSata connectors I can toss on an additional 2 external mounted drives as long as they have their own power supply.
* Easily expandable for KVM/IPMI with purchase of a module
* The serial console supports remote management so you can skip IPMI if you choose
* 4 (2 front/2 rear) USB connections and legacy PS/2 ports
* Onboard GPU for VGA display
* Quiet for a 1U rack mount. Not silent, but certainly not distracting. Volume picks up with the fans under heavy load, but nothing unexpected.

A few quirks:
* The slim-cd/dvd connector looks like an old style molex. I haven’t bothered to look for a drive.
* Doesn’t include rails and it’s a bit heavy for mounting just by the ears

Following a short burn-in with Debian I converted the system Proxmox VE running the proxmox-ve-2.6.24 kernel. I started with proxmox-ve-2.6.18 but couldn’t get lm-sensors to work due to the outdated “w83627ehf” module. So far everything is running smooth with a mix of a few KVM VMs and OpenVZ appliances. (Edit 10/15/2010 -- I’ve since reformatted this machine to to a bare metal Untangle box as I was able to accomplish everything I’ve needed by hacking up the Untangle/Debian distribution without the overhead of virtualization).

lspci output for the curious:


00:00.0 Host bridge: Intel Corporation 3200/3210 Chipset DRAM Controller (rev 01)
00:01.0 PCI bridge: Intel Corporation 3200/3210 Chipset Host-Primary PCI Express Bridge (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.4 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (rev 01)
00:1c.5 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation 82801GR/GH (ICH7 Family) SATA AHCI Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:03.0 VGA compatible controller: XGI Technology Inc. (eXtreme Graphics Innovation) Volari Z7
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express (rev 21)
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express (rev 21)
05:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
05:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)

My homemade /etc/sensors3.conf file for lm-sensors. Lots of guesswork in here. I welcome suggestions or validation from someone more versed on lm-sensors.

# Winbond W83627EHF configuration
# This is for an Asus P5BV-M mobo.
# w83627dhg-isa-0290

chip "w83627ehf-*" "w83627dhg-*"

label in0 "VCore"
label in1 "+12V"
label in2 "AVCC"
label in3 "3VCC"
label in6 "+5V"
label in7 "VSB"
label in8 "VBAT"

# +12V is in1 and +5V is in6 as recommended by datasheet
compute in1 @*(1+(56/10)), @/(1+(56/10))
compute in6 @*(1+(22/10)), @/(1+(22/10))
set in1_min 12.0*0.9
set in1_max 12.0*1.1
set in6_min 5.0*0.8
set in6_max 5.0*1.2

# Set others
set in4_min 1.75*0.95
set in4_max 1.75*1.05
set in5_min 1.4*0.9
set in5_max 1.4*1.1

# Set the 3.3V
set in2_min 3.3*0.95
set in2_max 3.3*1.05
set in3_min 3.3*0.95
set in3_max 3.3*1.05
set in7_min 3.3*0.95
set in7_max 3.3*1.05
set in8_min 3.1*0.95
set in8_max 3.1*1.05

# Fans
label fan1 "Case Fan"
label fan2 "CPU Fan"
label fan3 "Aux Fan"
set fan2_min 3020
ignore fan1
ignore fan3
ignore fan4
ignore fan5

# Temperatures
label temp1 "Sys Temp"
label temp2 "CPU Temp"
label temp3 "AUX Temp"
set temp1_max 95
set temp1_max_hyst 80
set temp2_max 80
set temp2_max_hyst 75
ignore temp3