by Paul Speciale, vice president of products, Amplidata, special to Network World

Erasure coding ensures storage durability in environments where RAID falls down

How-To
Aug 10, 20116 mins

This vendor-written tech primer has been edited by Network World to eliminate product promotion, but readers should note it will likely favor the submitter’s approach. 

Erasure codes are a form of forward error correction (FEC) technology that has been used in a variety of ways for decades and is now emerging on a new class of high-capacity storage systems to address the limitations of RAID.

RAID was never designed to protect data on multi-terabyte drives because it was invented before 1GB drives were even available. The basic idea was to spread data across these smaller drives so a single failure didn’t necessarily result in data loss.

Data protection is more complex with today’s high-density disk drives. Over the last two decades, drive densities have increased more than 20,000 times. We have commercial storage systems shipping with 2TB and 3TB individual drives. Moreover, the cost of this storage capacity has become incredibly affordable: a 2TB SATA drive cost about $100.

ANALYSIS: Larger disks poised to change the RAID playing field

The cost/capacity offered by these new high-density drives provides an opportunity to store huge amounts of data on spinning media at a much more appealing price than before. So what’s the problem with maintaining really large scale — say petabytes and beyond — on large-density drives?

With current 1TB and 2TB disk drives, RAID has significant vulnerability to data loss since RAID’s rebuild process is a lengthy one, requiring a day or more in some implementations. Rebuilds can be even more lengthy if the task is set as a low-priority to preserve normal I/O performance.

It’s not unreasonable to expect these rebuild times to extend to weeks as disk drive densities grow. As we increase the number of these drives under management, some users will experience a state of continual RAID rebuilds, based on standard annual failure rates (AFR) for disk drives in the 3% range.

The idea of adding a second level of protection to RAID-5 in the form of what is commonly known as RAID-6 came about to protect data against two simultaneous disk drive failures rather than one disk drive failure. This was in response to drive densities growing into hundreds of gigabytes.

A second drive failure (in a RAID-5 group), or a third drive failure (in a RAID-6 group), grows more likely when dealing with many disk drives, especially with long rebuilds. In addition, if the system encounters an unrecoverable read error (URE) while rebuilding the RAID group, data loss can result. Losing six or more disk drives, each with a terabyte or more of data, could be catastrophic for some businesses.

Enter erasure codes

Erasure codes enable data to be broken into multiple packets, encoded with additional bits of information, sent to a receiver, and then decoded and reassembled into the original data on the receiving side. The key is that the receiver can reassemble the data even if some of the packets are lost in the transmission phase (that is, the receiver has a subset of the original packets).

The notion of utilizing erasure codes for storage media originally came about with the advent of CDs, DVDs and Blu-ray discs, media sources that should be playable even with scratches or damage to the recording surface. The most common algorithms for erasure coding in these applications have become known as Reed-Solomon codes, which were developed at MIT Lincoln Labs in the 1960s.

The use of pure erasure-coding algorithms enables protection beyond the two-drive failures tolerated in RAID-6. Some implementations enable multiple levels of data protection against failures, and a few even allow the user (or storage administrator) to specify the level of protection as a policy.

For example, the administrator selects a policy that the data should survive four failures out of 16 disks, six out of 16 disks, or 10 failures out of 30 disks. Policies can even be constructed that tolerate entire sites becoming unavailable (“survive one out of three data-center failures”). This eliminates one key problem with traditional RAID, which is tolerance to more than two drive failures.

Storage durability can be achieved by a combination of erasure coding and distribution of the encoded data. Incoming data (for example, files or objects such as video or image data) are first decomposed into a series of data blocks. The erasure encoding mechanism then applies its transformation to these blocks, and generates a larger set of encoded check blocks.

The encoded check-blocks are then distributed across multiple drives on the storage system, so that the loss of one or more check-block due to drive or component failures still allows the storage system to successfully retrieve and decode the original data blocks, and thereby reconstruct the data.

Critically, we need to look not only at the durability of the data, but also the efficiency of the underlying storage. Several storage systems have been commercialized with traditional erasure coding techniques, and now some newer variants such as fountain codes, hurricane codes or online erasure codes are being employed.

Each has advantages in protecting data against multiple component failures, unrecoverable read errors and bit rot, and many provide this in systems that automatically heal the data in the event of component failures. Some of these systems can provide extremely high levels of storage durability, measured in the realm of “10 nines,” which implies probability of data loss lower than 1×10-9 percent per year (or better).

A common mechanism in today’s cloud storage environments is maintaining multiple copies of files (note the prevalence of “three copies in the cloud”-style storage service offerings). The cloud does provide high levels of storage durability, but by means of tripling all underlying resources and operational costs (disks, power, cooling floor space and capex).

While this wasn’t a concern at 300 terabytes, it can become a limiting factor when 100 petabytes of usable capacity require 300 petabytes of raw capacity to provide durability. This overhead is in effect higher than a mirrored RAID-6 set (200% storage overhead for three copies versus 150% overhead for mirrored RAID-6).

With erasure coding techniques, high levels of storage durability can be realized with relatively low storage overhead. In one implementation, a policy to protect data against four failures out of 16 disks requires 60% overhead. In other words, each petabyte of usable capacity would require 1.6 petabytes of raw capacity.

This can provide impactful savings in operational costs when compared to alternate approaches. Storage systems that utilize erasure codes therefore have an opportunity to leverage high-density disk drives to store data more economically and with the ultimate in storage reliability and durability.

Amplidata was founded in 2008 when a team of storage veterans started to develop the technology that would become the foundation of AmpliStor, an Optimized Object Storage system for unstructured data. The focus of the technology is to provide the highest storage reliability and availability levels at the lowest possible cost. AmpliStor scales beyond petabytes and requires 50-70% less storage capacity to protect data compared to traditional solutions.