This benchmark have three pool configurations: Single drive, a 2-way mirror, and a 3-way mirror. Please see the previous posts on testing methology and hardware specifications, if you haven’t already.
I expect the single drive to have the best write performance, followed by the 2-way then 3-way mirror. I also expect the mirrors to have better read performance, as there’s more drives to read from. I also expect there to be a noticeable performance penalty for record sizes smaller than ZFS’s configured recordsize of 128k. I expect error margins of +/- 10%. The random reads/writes should get almost linearly better performance with the larger record sizes.
There are many claims about the performance of ZFS. As I’m about to replace a nearly 4 years old file server, I decided to run thorough tests to see how the different pool configurations available to my 12-drive system will actually perform. I’ve tested all the vdev types (single drive, mirror, raidz[1-3]), and stripes thereof. For more information about the involved hardware, please see the full specifications of the server used for these benchmarks.
I’ve used FreeNAS 9.2-RC2 (x64), and IOZone v3.420 (compiled for 64-bit mode, build: freebsd) for these benchmarks. I disabled SWAP in the FreeNAS settings prior to creating any test pool, in an effort to prevent arbitary i/o from skewing results. I also disabled the ‘atime’ property on the test pool, to reduce unnecessary I/O. The benchmarks were run inside a 64-bit portjail, nullfs-mounting the test pool to /mnt inside the jail. SSHD is the only started non-default service. The jail was running on a ZFS pool consisting of a SSD mirror.
This is HOMER. His full name is Heavy Overkill of Mandatory Expectations and Requirements. His task is to store all the household files, including those of Sideshow Bob (my ESXi server) using a combination of iSCSI, NFS and CIFS. Once in production, he’ll be running FreeNAS.
With the SuperChassis 826BE16-R920LPB 2U storage chassis, he’s smaller than expected on the outside. But it’s the inside which counts:
These are Homers internal components. If you want a really good look, you should click the image to see it in full resolution.
Mainboard: Supermicro motherboard X9SRL-F (Single Xeon E5 6xSATA 8xDIMM LGA2011)
CPU: Intel Xeon E5-1620 v2 (4-core, 3.7GHz)
RAM: SM Hynix 16GB DDR3-1866 2Rx4 ECC REG DIMM x4 (64 GB total)
HBA: Supermicro PCIe SAS 6Gbps contr, 8int, IR, RAID 0, 1 & 1E, LSI2308
Extra NIC: Supermicro PCI-e 2-port Intel i350 Gigabit Ethernet LAN card, Low-Pro
SSD: 2x Samsung SSD SM843 Series 2.5″ 120GB SATA 6Gbps
HDD: 12x Western Digital RE Enterprise 2TB, SATA3 (comparison chart)
This is the back side of Homer’s chassis. There’s a redundant PSU, PS/2 ports for mouse & keyboard, 100Mbit/s ethernet port dedicated for the IPMI KVM over LAN feature, a serial port, VGA port, and two 1gbps onboard ethernet ports.
This picture shows a temporary hook-up of the server in a new rack. It’ll be much prettier once I get a hold of properly sized cables and do some cable management! But that’s for another post.
I’m currently in the process of doing many performance tests on him, which will be posted separately as they complete. Stay tuned!