Innovation with Flash Drives – part 1

This is an article I wrote a while ago (mid 2009), a while after EMC introduced Enterprise Flash Drives (EFD’s) and albeit a bit outdated, it is a valid introduction to Enterprise Flash Drive technology.

It also explains the differences between consumer grade flash (the SSD drive in your laptop or tablet) versus enterprise grade (the stuff that makes business applications screamingly fast)


Enterprise Flash Drive technology

Over the last 30 years, we have seen an enormous improvement in hard disk capacity. Back then a gigabyte drive was quite something and using a state-of-the-art SCSI interface, it could transfer a whopping three megabytes per second!

Currently modern disk drives are smaller and can easily store a terabyte of capacity or more – a 1000-fold improvement! (And the 1.5 and 2 terabyte drives are on the way). With modern fibre channel interfaces, a disk can transfer up to 4 Gigabit (about 400 megabytes) per second which is a 133 times improvement over 30 years!

Fortunately disk drive technology has more or less kept up with Moore’s law for microprocessors regarding capacity and channel bandwidth.

There is a problem, however. First of all the hunger for computer storage is outpacing the increase in disk capacities, so we have to buy more and more disks to satisfy our needs (IDC findings show that the worldwide information created yearly is increasing by about 60% each year).
The second problem is that the access performance of disk drives has not improved that much. In other words, to find information on a disk drive it still requires mechanical movements. The drive arm has to be moved into position over the right disk track and then the disk has to rotate until the data can be accessed by the arm. This takes a few milliseconds and depends largely on the rotational speed of the disks – and this has not improved that much. 30 years ago the regular rotational speed was 3600 rpm, where today’s high-performance drives offer 15,000 rpm – a 4-fold improvement resulting in access times from 24 milliseconds 30 years ago to 6 milliseconds today (note that this is the average time to read data on a random location on the disk if the disk is idle). An important negative side effect of increasing rotational speed is that the power consumption of the drive increases almost exponentially – this is why there were experiments with 20,000 rpm drives but these are not widely adopted into the market. Any faster and the drive will overheat or require special cooling.

Because the data density on the drives has increased 1000-fold, the number of drives that are required to store, say, one terabyte of data is only two (assuming mirrored 1 Terabyte disks).

To make the problem more visible, this picture illustrates the time it would be required to read a complete disk, but only using random 8K reads across the disk (so you would have to wait for disk arm positioning and rotational effects for every 8K block – which is a large part of the workload in typical OLTP applications – but also for RAID rebuilds and other processes).

 

Random reading a whole disk

Random reading a whole disk

To read the 30 year old 1GB drive this process would take 49 minutes. The modern 1 Terabyte SATA drive would take 32,552 minutes (about 22 days!) to complete the process.

In other words, the capacity/performance ratio is largely out of balance. A 400 GB database could be placed on a single disk where it would require much more disks only a few years ago. As the processors, memory and other components are increasing in performance the physical disk has become more and more of a bottleneck. Of course, companies like EMC have added intelligent features to their disk arrays like striping, load-balancing, cache optimizations, I/O ordering and a lot more, but this turns out not to be enough to keep in line with application requirements. As a result, we often see application architects using smaller capacity drives with high rotational speeds (such as 73 GB 15,000 rpm disks) or using only parts of a larger disk (for example, they only use the fast outer-edge part of every 300 GB disk). This is clearly not very efficient in today’s cost-restricted (Dirty Cash ;) economy, where also the power and cooling capacity of datacenters is limited – and the problem will be even worse as disk capacity increases but rotational speed stays the same.

EMC has foreseen this problem some years ago, and started development of Flash drive technology (comparable to the Flash chips in the average USB memory stick, but using very different technology).

Flash memory typically suffers from a potential problem: you can only write to the same memory area only so many times. The average USB stick will wear out and break down after re-writing the same blocks a few thousand times. The Enterprise Flash drives however, use Single Level Cell technology that is much faster in read/write operations, and also allows much more overwrites before wearing out. Also, a technology called “wear-leveling” is used so that a subsequent write to the same logical block address will physically go to a different area on the chip – so that all areas are wearing out evenly and thereby largely increasing useful lifetime. On top of that, the enterprise class drives have normal RAM cache to allow writes to be kept in memory as long as possible before writing to the actual flash memory. In an enterprise class storage system like those from EMC, extra measures are taken in caching even more writes in the storage system (before writing to the drive). Using the combination of enterprise class Flash with the right storage architecture, the reliability of flash is currently even higher than standard fibre channel disks in RAID-5 (note that mechanical drive arms and ball bearings also wear out after a few years, more so under heavy workload).
Also there need to be quality-of-service (QoS) features in the system to avoid regular drives being choked by the high-performance flash. EMC has spent several years developing the architecture and microcode features to make flash drives perform as required, reliable enough for even the toughest workloads and working with all existing storage functions and tooling such as local and remote replication.

Over one year now, EMC is shipping these Enterprise Flash Drives now and the second generation since several months. Flash drives offer extremely high performance at modest energy consumption levels;  if an application needs a certain number of IOPS (I/O’s per second) then flash drives can deliver them at 1/10th of the response time (important in a transaction processing environment), at 30 times the iops and 2% of the power consumption of a regular fibre channel drive configuration (that has similar performance). On top of that, a Flash drive is not sensitive to varying workloads, so administrators don’t have to worry about data placement, striping, I/O sizes and so on. Compared to the regular drives (now sometimes referred to as “spinning rust” ;) – the time it would require to read the whole disk is reduced to 34 minutes (for a 73GB flash drive)!

This is an article I wrote a while ago (late 2009), a while after EMC introduced Enterprise Flash Drives (EFD’s). Although more tooling is available these days to automate the tiering of storage, the basic concepts are still very valid, and the article might be a good explanation of the basic concept of database storage tiering and what we want to achieve with this strategy.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: