advertise
« Paper: MillWheel: Fault-Tolerant Stream Processing at Internet Scale | Main | Sponsored Post: Apple, Couchbase, Evernote, 10gen, Stackdriver, BlueStripe, Surge, Booking, Rackspace, AiCache, Aerospike, New Relic, LogicMonitor, AppDynamics, ManageEngine, Site24x7 »
Wednesday
Sep042013

Wide Fast SATA: the Recipe for Hot Performance

This is a guest post by Brian Bulkowski, CTO and co-founder of Aerospike, a leading clustered NoSQL database, has worked in the area of high performance commodity systems since 1989.

This blog post will tell you exactly how to build a multi-terabyte high throughput datacenter server. A fast, reliable multi-terrabyte data tier can be used for recent behavior (messages, tweets, plays, actions), or anywhere that today you use Redis or Memcache.

You need to know:

  • Which SSDs work
  • Which chassis work
  • How to configure your RAID cards

Intel’s SATA solutions – combined with a high capacity storage server like the Dell R720xd and a host bus adapter based on the LSI 2208, and a Flash optimized database like Aerospike, enables high throughput and low latency.

In a wide configuration, with 12 to 20 drives per 2U server, individual servers can cost-effectively serve at high throughput with 16T at $2.50 per GB with the s3700, or $1.25 with the s3500. Other SSD offerings – from Crucial (Micron) and Samsung (S843) – are at other densities and price-performance points.

This is in-memory computing at a stunningly new, accessible price level – but there are some details you need to know.

How fast? How about 250,000 network database transactions per second against that multi-terabyte store. You’ll also need to properly configure your network layer as Russ Sullivan disclosed in the following High Scalability blog post

In order to achieve low latency and high performance, add more SATA devices. A customer of ours who is deploying this calculated a 12 drive minimum. A 2U system with front panel attach is the way to go – and the Dell R720xd has 24 2.5” drive bays on the front, far more than systems that are still 2U but allow only 8 drive bays.

Enterprise SATA SSDs have supply problems – simply because popularity. Currently, I see supply problems at higher densities (like the Intel s3700 800G). Using more and smaller drives gives higher performance at the same price per byte, and the smaller drives (200G) are available now – and at 22 bays per 2U, that’s still 4.4T per server.

When deploying wide SATA Flash solutions, the RAID card (HBA and Host Bus Adapter) easily becomes the bottleneck. We struggled for months with performance problems created by the RAID card before finding the following recipe. High performance cards, like the Dell H710p, use the LSI 2208, which has a “fast path” that must be invoked. Without invoking the fast path, the LSI 2208 will bottleneck at 4 drives. With the “fast path”, you’ll get the full speed of your wide SATA system.

The LSI fast path is discussed here: http://www.lsi.com/channel/products/storagesw/Pages/MegaRAIDFastPathSoftware.aspx

Steps to high speed:

  1. Get the right SSDs.
  2. Make sure your card has an LSI 2208 or similar.
  3. Get the MegaCli configuration tool.
  4. Configure each drive as a separate RAID0 volume, and Write Through (WT) and NO Read Ahead (NORA).
  5. Use a database which directly uses devices and manages parallel IO (like Aerospike). The Right SSDs

This blog post focuses on the Intel S3700 and S3500. Other exciting SATA drives are the Samsung 843 and the Crucial (Micron) M500. Drives from integrated Chip / Drive providers turn out to have the highest integration, and quality.

Our ACT (https://github.com/aerospike/act) latency results (which stabilized after the 3rd hour of testing) for the 400G S3500 with 20% overprovisioning (required!) with “3x” profile (6,000 1.5K reads per second, 18MB/second streaming writes) are:

Hour % < 1ms % < 2 ms % < 4 ms
3 1.6 0.67 0.00

 

Intel S3700 (400G) did not require overprovisioning, thus allowed all capacity, and had similar but slightly higher performance with the same profile:

Hour % < 1ms % < 2 ms % < 4 ms
6 1.58 0.12 0.00

 

With a properly configured wide system, these numbers scale laterally. LSI 2208 or similar

The LSI 2208 is used in the Dell H710p, which is available for the R720xd. Other Dell cards, notably the H310 series, are particularly bad. Get the MegaCli configuration tool

The MegaCli tool is sometimes hard to find. We were able to find it eventually with Google. You can search at LSI’s website for the tool, by going to this URL: http://www.lsi.com/support/Pages/Download-Results.aspx?keyword=MegaCli.

From here, open the "Management Software and Tools" bar and the latest MegaCLI shows up. Configure drives properly

The commands to configure RAID0 volumes are:

     MegaCli64 -CfgLdAdd -r0 [:] -a

           is likely 32
           will vary depending on the SSD you wish to set up as RAID 0.
           this is the ID of the RAID adapter (likely 0)

Then, you need to put the drives in no write-through and no read ahead:

 
     MegaCli64 -LDSetProp WT -L -aALL; MegaCli64 -LDSetProp NORA -L -aALL
           will vary depending on the SSD you wish to set up as RAID 0.

 

These speeds are available when using direct device access. When you go through the Linux page cache, and through any of the Linux file systems, latency increases. Latency deviation increases dramatically.

These tests also require a high level of parallelism. The software layer must be capable of a high level of parallelism – levels of 128 to 512 simultaneous IOs per device is required.

Reader Comments (3)

Seems like a complex installation. Have you tried automating the fastpath enablement? A suggestion would be to use two open source products from Ubuntu: MaaS (metal as a service) to manage bare metal as if it were a cloud and Juju, to automate configuration/deployment and scaling.

September 5, 2013 | Unregistered CommenterMaarten Ectors

The installation requires one extra command --- that one command should certainly be automated with whatever tool your deployment system uses.

November 1, 2013 | Unregistered CommenterBrian Bulkowsli

Friendly warning. We run into deep problem with that kind of installation because of Dell certified drives policy. We've got Dell 720 with 710P RAID and Micron M500 drives. Servers disconnects drives randomly with write failures after some time. All the drives come back with zero errors after reboot. So cool to discover it in production then all three nodes in cluster die simultaneously because of "failed" hard drives.

March 24, 2014 | Unregistered CommenterAlexey

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>