The state of SSD storage for a database server

Note: The SSD market is moving quickly, so I’m sure by the time you read this, it’s probably out of date :)

As mentioned in another post, we’re looking for some new servers. These are to replace our existing database servers, which have had a long and productive life (over 6 years). They’re still running fine, but they’re starting to get a little more loaded than we’d like during backup runs. As an FYI, our database requirements are much smaller than you’d expect for our size. Our database holds information like the user list, domains, aliases, user address book, personalities, signatures, etc, but most of our storage space is used by emails and files, and those aren’t stored in the database at all. Because of that, we only need about 20G of storage now.

I’d really like to get some machines that will last at least 3 years, and scale to at least 20x what the existing servers can. To do that, I think we need to look at using SSD technology for storage. Unfortunately the SSD storage market currently presents a whole range of choices, all with their own annoying pros and cons. For the 20x scale, I’m looking at about 200-400G of storage. Looking over them I’ve found these.

Intel X-25e

Fusion-IO

RamSan-10/20

  • http://www.ramsan.com/products/ramsan-20.htm
  • PCI-e interface, there’s only a binary only driver for RH/SUSE at the moment, but apparently they’re working on an open source driver
  • Reasonably expensive (~$20,000 for 450G = $44/G, I’m guessing the 225G is about half that)
  • In theory fast. Claims “120,000 sustained IOPS”, but I haven’t seen anyone use them in a database benchmark
  • The RamSan and Fusion IO superficially appear very similar. According to TMS, here’s some claimed benefits over Fusion-IO.
    1. CPU and memory resources – Fusion-IO uses system CPU + RAM for flash management (up to 30-40% CPU + 5.5G RAM per 80G of flash), RamSan has onboard CPU + DRAM. “The RamSan-20 has an onboard processor and four FPGA controllers while the cards from Fusion use the server’s processor and memory to run and manage the card. The write management software that we have programmed into the RamSan-20 is far superior to the write management software on the cards from Fusion I/O. This is why our sustained performance is dramatically better”
    2. All SLC. Higher capacity Fusion-IO devices use MLC, which is slower and has lower lifetime
    3. Claim Fusion-IO IOPS are “burst” numbers, while theirs are “sustained”
    4. Super Capacitors – are battery back-ups on the RamSan-20 that provide enough power to shut down the card gracefully in the event of an unmanaged server shutdown. Fusion’s card does not have Supercaps. Data is not lost but the recovery time is incredibly long. After the server is rebooted, the Fusion card needs to rebuild their index tables showing where the data is located. The RamSan-20 data is immediately available after the server reboot, the Fusion card will take about 10 minutes to reload
  • There’s some benchmarks of a RamSan-500 (external flash based unit) here: http://www.bigdbahead.com/?p=139, http://www.bigdbahead.com/?p=140, http://www.bigdbahead.com/?p=141

Sun F5100

  • http://www.sun.com/storage/disk_systems/sss/f5100/
  • Multiple SAS interfaces, so doesn’t need a separate driver
  • Separate 1U rack mount box
  • Very expensive (~$45,000 for 480G = $93.75/G)
  • Fast, and the massive 2T system claims >1.6M IOPS
  • Seems a nice idea, but with a minimum price of $45k for one box, you need to be able to justify the amount and cost of that storage. For larger database users, this might be really interesting to try out

Violin Memory

  • http://www.violin-memory.com/
  • Multiple interfaces is seems: “Fibre Channel and Ethernet network attachments are supported via a network head and direct attachment through a low latency PCI Express (PCIe) connection. Operating systems supported via an open source PCIe driver include: Major Linux releases and distributions, Windows 32 and 64-bit Operating Systems, OpenSolaris”
  • I can’t find price information anywhere, I’m guessing it’s “if you have to ask, you can’t afford it” school of products? With up to 4TB support, it seems it’s aiming for a particularly high end market compared to what we’re looking for (100+G of storage)
  • Very fast. Interesting that you can choose between DRAM or Flash memory to vary performance/durability (http://violin-memory.com/Memory_Flexibility). But if you go DRAM, you need to be extra careful about power, because if power goes, you lose it all.
  • There’s some benchmarks here: http://www.bigdbahead.com/?p=334

Conclusion

There doesn’t appear to be a clear “winning” solution, as usual, it depends on your storage, IO, and cost requirements. When I first heard about Fusion IO, I was initially very excited about what it seemed to offer, but over time, I’ve become a bit more circumspect given the concerns over durability, system overhead (RAM + CPU), and recovery time requirements. The Sun and Violin options seem designed at considerably higher end (both storage space and cost) systems than what we’re looking for. I really wish the RamSan-10/20 had an open source Linux driver. Given TMS have a long history with NVRAM systems, I have a gut feeling of “they know what they’re doing”, but for us, an open source driver is mandatory. That really just leaves Intel drives in a RAID array at the moment, which is probably what we’ll aim for now. By starting with just 2 drives now (very cheap), we can at least replace them in the future with either more, or newer and faster drives, or another solution altogether if it comes along.

Posted in Technical. Comments Off
Follow

Get every new post delivered to your Inbox.

Join 5,754 other followers