SuperMicro X8DTN+
It turns out to be possible to get used SuperMicro servers fairly
easily locally in Santa Clara. The U4 variety are quite bulky to lift,
so you need to be quite strong to handle one by yourself,
and they're a little too noisy for home use (see below),
at least if you don't want to replace all of the internal fans
(which are designed to provide high static air pressures,
to keep the drives in the system cool, so not a straightforward thing
to replace with anything quieter while preserving similar cooling
properties), but at least they're reliable, well designed,
easy to manage remotely (via an added IPMI card, the F
motherboards
have the IPMI feature builtin), made of solid steel, and easy to work
inside because there's plenty of room. Overall, quite a lovable design,
especially if you've come to dislike small PC cases for servers.
These SuperMicro 4U cases are just the opposite of "small":
they're basically like really large PC cases, except made from steel
rather than the typical flimsy materials that are often used
in PC cases to keep their weight down.
The server I'm putting together here is a 4U 24-drive
SuperMicro 846A-R900B, with a BPN-SAS-846A backplane,
a X8DTN+ motherboard, 72GB ECC memory, dual E5520 Nehalem CPUs,
dual gigabit ethernet, an IPMI card for remote management.
- Motherboard: X8DTN+ (a better choice might be the X8DTH-6F,
as it has IPMI and a LSI 6Gb/s SAS 2008 controller onboard, as well as
seven x8 PCI-E 2.0 slots, but it seems much harder to find at a low
price. X8DT-6F also has IPMI and a LSI 6Gb/s SAS 2008 controller onboard, but only has three x8 PCI-E 2.0 slots and one x4 PCI-E 2.0 slot).
- Case: 4U 24-drive SuperMicro 846A-R900B (this case is incompatible with the hot-plug 2.5" drive optional unit, unfortunately).
- Fans:
Three San Ace 80 Model 9G0812P1G09 12V 1.1A Sanyo Denki in the center
(SuperMicro part number FAN-0095L4). Two San Ace 80 Model 109P0812P2C031
12V 0.55A Sanyo Denki (SuperMicro part number FAN-0062L4) at the back.
SuperMicro describes these as three 5000 RPM Hot-swap PWM Cooling Fans
and two 5000 RPM Hot-swap Rear Exhaust PWM Fans. But later on in the
"parts list" section, SuperMicro mentions that the three cooling fans
are part number FAN-0127L4 which is a Nidec 7000 RPM fan V80E12BHA5-57
which seems to be a slightly more efficient and powerful fan.
- Power Supply Modules: Dual PWS-920P-SQ (920W, 80 PLUS
Platinum, "Super Quiet"). Output: +12V @ 75A, +5V Standby @ 4A. PFC:
Yes. PM Bus: Yes. Backplane: Yes.
- Network: Intel 82576 Dual-port Gigabit Ethernet Controller.
- CPU: 2x E5520 QC 2.26Ghz (Nehalem-EP, 80W TDP, 8MB L3 Cache, 5.86GT/s QPI, 1066MHz DDR3 Clock, 4 Cores, 8 Threads, has "Turbo-Boost").
- CPU Socket: Dual LGA 1366 (Dual 1366-pin LGA sockets), the
X8DTN+ motherboard supports up to two Intel 64-bit Xeon® processors of
the following types: Intel Xeon Processor 5600 Series (Westmere) and
Intel Xeon Processor 5500 Series (Nehalem-EP). Maybe can scavenge some
5600 Series processors from some "for parts" Dell Precision T7500?
- Backplane: BPN-SAS-846A Direct Attached 24x 3.5" SAS/SATA (connects via six "iPass" connectors).
- Three IBM M1015
cards (connected to the six iPass connectors, two going to each of the
M1015 cards). Note that the iPass ports are vertical, not horizontal, so
these cards seem mainly intended for use in a 4U case.
- Chipset: Intel 5520 chipset (aka Tylersburg chipset), including: the 5520 (North Bridge) and the ICH10R (South Bridge). The Intel X58
(codenamed Tylersburg) is a chip designed to connect Intel processors
with Intel QuickPath Interconnect (QPI) interface to peripheral devices.
Supported processors implement the Nehalem microarchitecture and
therefore have an integrated memory controller (IMC), so the X58 does
not have a memory interface. The X58 chip also supports Nehalem-based
Xeon processors.
- Graphics: ATI ES1000 controller with 32 MB of video memory.
This is somewhat supported by Debian Jessie, but apparently can only run
at 1280x1024 (an 5:4 aspect ratio) which is a fairly low resolution.
Although it is fairly slow, it's sufficient for running KDE when the
desktop effects are turned off. Surprisingly, it's even able to playback
DVD-resolution video fairly well. Just for fun, you can even put a
sound card into one of the PCI-X slots. I noticed some audio
interference that gets picked up whenever the hard drives on the M1015
controller next to the sound card are being accessed, so you can listen
in on your hard drives.
- Memory: 72GB ECC registered memory (eighteen Micron
MT36JSZF51272PZ-1G4F1DD 1032 4GB 2RX4 PC3-10600R-9-10-J0 PRODUCT OF
SINGAPORE CBNE7JB008) which gets down-clocked by the BIOS to 800MHz.
- PCI-Expansions slots:
- SIMLP IPMI (not much space between this card and the airflow cover, be careful).
- Slot 6: x8 PCI-E 2.0 (physically, looks like a x16 slot, but
actually runs as an x8 slot). Currently using an IBM M1015 in this slot.
- Slot 5: x4 PCI-E (physically, looks like an x8 slot, but runs as a 4x slot). Currently using an IBM M1015 in this slot.
- Slot 4: x8 PCI-E 2.0 (currently using an IBM M1015 in this slot).
- Slot 3: 64-bit 133MHz PCI-X.
- Slot 2: 64-bit 133/100MHz PCI-X.
- Slot 1: 64-bit 133/100MHz PCI-X (currently using an LSI Logic SAS3801X PCI-X 3Gbs SAS HBA in this slot).
- Slot 0: PCI-U aka UIO slot (this is basically an
"upside-down" PCI-E 2.0 x8 slot, i.e. the components are on the opposite
side of the board, quite a weird proprietary design by SuperMicro).
The BPN-SAS-846A backplane accepts both SATA and SAS hard drives,
although it's tricky to find inexpensive used SAS drives, not sure why.
An example of an inexpensive used SAS drive is the Seagate 2TB ST32000445SS
which
can be had for around $25 these days in lots of ten drives. It's
actually a SED, which is one acronym used to describe self-encrypting
drives.
See here on how to use the SED feature with hdparm
with SATA drives.
Since the Seagate 2TB ST32000445SS is a SAS drive and hdparm
only works with SATA drives
(see here),
I'm not sure yet if there's any way to encrypt the disk encryption key using Linux.
It seems it might only be possible to perform a secure erase of the Seagate 2TB ST32000445SS drives
using proprietary software
(see section "13.7 LSI MegaRAID SafeStore Encryption Services" of the "MegaRAID SAS Software User Guide" manual) and
a different controller card with SafeStore software pre-installed,
which wouldn't be of much use except for secure-erasing the drives
prior to disposing of them, as we obviously want to use the M1015 card
with Linux.
The Seagate 2TB ST32000445SS has a sector size of 512 bytes, so you have to use ashift=9
when creating the ZFS pool, which is a little old-fashioned compared to the modern "Advanced Format" drives
which have 4k sector size and use ashift=12, but these Seagate 2TB ST32000445SS SAS drives seem reliable
and fairly speedy and run at a temperature of less than around 40C even in the hot summertime.
Since it's a SAS drive, remember that in smartmontools
you have to use the -A
flag to scmartctl
read the drive's S.M.A.R.T. info.
In Debian Jessie, the drives show up as /dev/disk/by-id/scsi-35000c500342222cb
which is not their serial number
(perhaps it's the drive's WWN),
making things a little inconvenient when it comes to locating a specific drive.
I replaced the scary-noisy power supplies that came with the case
(PWS-902-1R, my goodness, avoid these, they use 40W with server
off, and make a sound like a jet engine!!) with dual
platinum 920W PWS-920P-SQ power supplies.
The excellent support team at support@supermicro.com
(who have been doing a phenomenal job answering my queries and are
surprisingly kind enough to provide this sort of technical advice to home users),
provided me with the information that the PWS-920P-SQ power supplies were
compatible with my 846A-R900B case and its power distribution module
(albiet not as a supported configuration).
In the PWS-920P-SQ model number of the power supply,
the "SQ" part apparently means "Super Quiet", which they really are,
and they pull quite a bit less power than the PWS-902-1R
(about 4W when the server is off, 80W each
while the server is idle with four drives). I'm running the wall
power through two APC BackUPS Pro 1000 units.
Based on apcupsd
if seems that I need to run one of the UPS units in network mode.
I need to look into this aspect some more, so as to get apcupsd
into a configuration such that if either path of the redundant power supply
chain fails, the system could shut itself down safely, there's more
hints on this kind of setup here: running two separate instances of apcupsd.
The total cost of the system (without hard drives) ended up being
around $800, and $250 of that went toward replacing the power
supplies with quieter ones. Perhaps that could be done more cheaply
by using an ordinary ATX power supply, if you're prepared to
sacrifice the power supply redundancy aspect, but for now
I've decided to avoid doing that, so as to at least keep the
system in a configuration where it is still using proper
server-grade components.
When running idle, the system uses around 170w with
four drives installed, and the internal fans are running at 3500RPM
so provide quite a bit of sound even at the "Energy Saving/ES" setting in the BIOS,
but at least it's an expandable setup. The memory can be reasonably expanded by
adding more 4GB sticks in the future (the motherboard can take up to 18 of them).
It's handy to have so many hard drive slots, they can be used to do things like
making backups, as the drives are hot-pluggable.
To get the drives in the backplane working, I needed to
add an M1015 card cross-flashed to Initiator Target (IT) mode
with the P16 firmware, which turned out to be quite an adventure,
described here.
To connect the drives to the M1015 controller card I also needed to hunt
down the proper Mini SAS to Mini SAS SFF-8087 "iPass" connectors
(with sideband SGPIO, whatever that is) which turned out to also be
quite tricky, I resorted to reading the Molex data sheet to find the
magical part number: 79576-2104.
These elusive 79576-2104 cables are apparently what's needed to
connect the M1015 cards to the backplane, they're basically
like four SATA cables "rolled into one", and the one meter
length connectors are an eye-popping $16 each.
I can't believe they even consider them to be "enterprise" connectors:
they seem very flimsy compared to proper SCSI connectors,
but I guess this is how things are in the SAS / SATA world -- they
need to keep the costs down however they can.
With this kind of server, since the motherboard and CPU both
implement VT-d properly, you can do fun things like running
vmware's ESXi and "pass through" the M1015 disk controller
card to the guest virtual machine, which is kinda neat,
giving your guest virtual machine direct access to the
drives in the backplane. It seems a little risky to depend on
virtualization for any data that really matters, though:
the freeNAS forums have lots of threads warning against it,
and I tend to agree. Best to avoid the temptation...
IPMI client
Earlier, in the "olden days" of Java, before all the security fixes, it
used to be possible to run SuperMicro's IPMI client
from a web browser: it was implemented as a Java applet which loaded
automatically when you connected to your server's IPMI card.
As you can imagine, this Java applet-based approach, even on the best of
days, was quite unreliable.
These days, this Java applet-based approach has become quite a nightmare to even get working,
because Java has had many security fixes and you'll likely find that your operating system's default
Java configuration disallows SuperMicro's IPMI client tool's applets from even being loaded,
never mind risking running them in your browser.
So instead of attempting to get SuperMicro's browser-based applets to
work, it's best to give up (while you still have your sanity),
and instead spend your time more wisely on attempting to get their
standalone Java tools downloaded and set up on your favorite
client operating systems. I haven't made much progress on the Microsoft
Windows 7 yet, but so far I've been successful in getting
SuperMicro's standalone IPMI client running on both Ubuntu Linux and
Apple OSX, see below for details.
You'd think that SuperMicro would make it straightforward to find the
correct standalone client-side software for their IPMI card,
but unfortunately there seem to be quite a few different downloads and
names for the client software. I'm still not entirely sure which
one is the most recent, or why SuperMicro uses two different names for
their standalone client tool.
The SuperMicro IPMI client tool that works for me on both Linux (Ubuntu 15.04) and Apple OSX (Yosemite 10.10.4) is the
Java based bundle here.
It allows auto-discovery on the LAN of your IPMI card, authentication to your IPMI card
(username and password default to ADMIN
in uppwecase, you should use a physically
separate network and assume that security on this IPMI channel is "basically non-existent"),
keyboard and mouse graphical remote control (slowish but usable) of the server if you click on the KVM Console
tab,
remote media provisioning to the server, and remote power control of the server,
remote viewing of the sensors via the Sensors
tab, etc., all in one tabbed window.
This IPMI client tool's interface feels very old-fashioned, but at least it works.
The IPMI client tool sometimes loses its connection to the server, and to get it back I need to quit from the IPMI client tool
and start it up again, then log back in again to restore the graphical access, which is quite tedious.
wget ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_V2.10.2_bundleJRE_Linux_x64_20150203.tar.gz
tar zxvf IPMIView_V2.10.2_bundleJRE_Linux_x64_20150203.tar.gz
cd IPMIView_V2.10.2_bundleJRE_Linux_x64_20150203
java -jar IPMIView20.jar
There's also an other older tool called SMCIPMITool the download links are
Linux x64 version,
Apple OSX version (pure Java) and
Microsoft Windows 7 (untested),
using which you can run the "kvm access" component like this:
java -jar SMCIPMITool.jar 192.168.2.153 ADMIN ADMIN kvm
Note that from Apple OSX and Ubuntu Linux, you can use the native ipmitool
program which allows remote power on and sensor readings, e.g. as follows (it'll prompt for the password, by default it's ADMIN
):
ipmitool -U ADMIN -H your_ipmi_card_ip_address power status
ipmitool -U ADMIN -H your_ipmi_card_ip_address power on
ipmitool -U ADMIN -H your_ipmi_card_ip_address power off
Introduction to ZFS
Aaron's guide to ZFS is a good place to start. Also, his article about parchive is interesting.
For this SuperMicro server, I'm using three-way mirroring. The zpool is
of size 16TB and consists of eight three-drive vdevs. If a single
controller fails, only one group of eight drives would fail out of the
24 drives, so each vdev would still have one mirror drive of redundancy
remaining. Admittedly, on the surface, using three-way mirroring seems
wasteful of both power and storage, as only a third of the raw storage
is available, but the eight additional drives don't use much power, and
having a proper "enterprise-level" of redundancy with a simple
configuration which also provides very high performance is a requirement
for this system. The use of a three-way mirror also allows for the
technique of "splitting the mirror" to create an immediate off-site
backup (resilvering the replacement drives only takes a few hours).
The steps to setting up the zpool are here.
Looking for something physically smaller than a SuperMicro server?
While trying to figure out how to put together a low-cost
NAS server for running ZFS, I came across iX system's
"FreeNAS mini" which seems to be a very nicely balanced design in a neat small size.
There's a good review of it here:
apparently it idles at around 43w with four hard drives installed, pretty frugal!
There is some discussion of its components here
(the motherboard is an AsRock C2750D4I, so a large chunk of the "FreeNAS mini" system's expense comes from this and the memory).
There is a thread here about stability problems with this AsRock C2750D4I motherboard, though,
so it may have issues if you want to run Ubuntu or Debian on it rather than using it only for FreeNAS.