jules - Fotolia

Which types of flash make the most sense for virtualization?

Flash technology can help improve performance of virtualized workloads, but choosing the right type will help you get more out of your investment.

Flash-based storage can fix a wide variety of performance problems, especially those caused by the virtualized server environment. But there is still plenty of mystery surrounding these devices: Can they be trusted and which types of flash make the most sense for a virtualized environment?

Flash is a memory technology that, unlike RAM, retains information stored on it even when there is no power. While flash is not quite as fast as RAM on write and read operations, it far exceeds the performance of a typical hard drive. More importantly, data can be accessed from it without any rotation of media, which means almost no latency. The technology is ideal for random I/O, which virtualized server environments have in abundance.

The one major concern with flash storage is the way it handles writes. Flash has a finite number of times to which it can be written. This means that the vendors of flash storage need to develop sophisticated controller technology that manages the way to which flash modules are written so that each flash cell receives the same number of write requests.

There are three types of flash at present, and each has differing levels of durability. Single-level cell (SLC) flash writes one bit per cell and is the most durable. Multi-level cell (MLC) flash writes multiple bits per cell and has a medium level of durability. Triple-level cell (TLC) writes three bits per cell and is the least durable of the three. More bits per cell means higher capacity per cell, which lowers the cost per GB. It also means a shorter life expectancy.

SLC was the standard for data centers, but continued enhancements to the controller technology make mainstream MLC acceptable for most use cases. This is especially true when there's some form of data protection in place, such as mirroring or RAID, for the flash tier being used.

Understanding flash form factors

With flash, there are generally three form factors to consider for a virtualized environment.

The most common is the solid-state drive (SSD), which has the same form factor as a hard disk drive (HDD). This type of flash can be installed easily inside a server or into a storage array leveraging the same drive bays that HDDs use.

The downsides to the SSD form factor are performance and density. Putting flash memory into the SSD form factor means that all storage I/O is routed through the SCSI stack. Compared to other form factors, this routing adds some latency. Even so, these systems, especially arrays, deliver hundreds of thousands of IOPS, so few environments will actually be impacted by SSDs that require use of the SCSI protocol. Density is also less of a concern than it used to be. Flash SSD vendors have developed ingenious ways to cram as much flash as possible into a drive form factor and typically now offer greater capacity per form factor than does an equivalent HDD.

There are environments where the latency added by SCSI is an issue, although with one exception these are not typically virtualized environments. When latency is a concern, the SSD form factor of choice is Peripheral Component Interconnect Express (PCIe) SSD. These are flash devices integrated onto a PCIe board. They often avoid the standard storage protocol stack (SCSI) and have native access to the CPU. This means they require a driver, but drivers for the three most popular virtualized environments are commonplace.

PCIe should be considered for virtual server environments as an extension to RAM memory. Because of its low latency, PCIe provides an extremely high performance virtual memory pool, so much so that dynamic RAM (DRAM) to "storage" page outs have almost no impact on performance.

The other form of flash that is gaining popularity is memory bus flash. Memory bus flash is installed in the server's memory slots instead of in the PCIe bus. They look like DRAM dual in-line memory modules, but actually contain flash. This implementation method reduces latency even further than PCIe SSD and provides a private, high-performance path to the CPU. The use cases in virtualized servers are limited, but using memory bus flash as virtual swap memory instead of expensive DRAM can be beneficial. This form factor is also ideal for blade, 1U and 2U servers, where PCIe slots are hard to come by.

Next Steps

What you need to know about flash

Making the most of flash storage for virtualization

Dig Deeper on Virtual machine performance management