Matt Pson Just another dead sysadmin blog


Proving a point – building a SAN

A few weeks back I noticed that patching a bunch of virtual machines running Windows felt slower than it used to do. Not that patching Windows servers ever felt quick and there was a big list of patched going onto these systems, but something was not quite right that afternoon. All these VMs had in common that they ran of a Sun Storage 7210 SAN that we got a few years back that has served us well. After some detective work using the awesome DTrace analytics of this box combined with the ESXi statistics it was quite obvious that write latency was suffering when patching several VMs in parallel.

As this SAN is using the ZFS filesystem I knew that there was an option when we bought it to add a "Logzilla", a SSD device to speed up and cache write requests which in combination with VMware ESXi always doing sync-writes over NFS should solve the write latency problems (well, there wasn't a problem with those just yet unless we did heavy random writes in multiple VMs at the same time - but it was a first indication that we would sooner or later have a problem with that). VMware provides a troubleshooting guide that recommends that the average write latency should stay below 20ms under load and let's just say that we saw numbers way higher than that when we patched.

Ok, so I dropped a mail to our Oracle dealer asking for a price on those SSD devices. They phoned back a bit later sounding really hesitant to give me a quote, telling me that the price obviously had went up a bit since Oracle bought Sun. Uh-huh, so what was the price then? Over €10000 for a 18GB SSD disk?! Wait? What? So, um, we were expected to pay big for something that, probably, could improve write latency on this SAN.

What to do? Our first decision was to figure out if that "Logzilla" would actually improve the situation if we were to add it (doubtful given the price, but anyway) . But how?  Why not build a SAN? To the batcave...

Using mostly equipment that we had spare I managed to get hold of a Cisco UCS C200 M2 server with 4GB RAM and 3 Samsung 1Tb consumer-grade desktop SATA disks. We picked up a €150 standard 60Gb SSD disk from the local computer shop (we picked a cheap one that had decent write speed according to the datasheet, probably around 220Mb/s). Adding the free version of NexentaStor (SAN-appliance software based on Solaris, good stuff) on top of that turning our equipment into something best descibed as a getto-SAN.

Doing a next-next-next install using one of the SATA disks as a single system disk, using the other two as a mirror with the SSD as a log device - all using the onboard SATA controller in the server. Hooking up the SAN to the storage network using a single gigabit port and using Storage vMotion to move a couple of, non-critical but live production, VMs to our testing SAN. They have been running there for almost two weeks now in order to gather some real numbers and the statistics tell us that the average write latency stay well below the 20ms level defined by VMware, most about 1/10th of that, 2ms. Throughput maxed out the gigabit connection more or less, we saw speeds around 80-100MB/s.

Hm, yeah, our getto-SAN that cost us less than €1000 to put together outperformed our €30000+ SAN from 2 years back thanks to a log device for the ZFS filesystem. Sure, the workload maybe wasn't comparable but we still regard this as proof that ZFS performance improves greatly if you give it a "Logzilla". Still, €10000 for a 18GB SSD disk feels a bit steep as it doesn't add anything else to the SAN. So next step for us is to build a "real" SAN to use in production to see what performance we can get if we use 'proper' hardware.

I'll write more when I have put together what I can get for my limited budget of €4-5000.