There are a number of ways that data is stored on solid-state storage that differ that differ from traditional hard-disk storage. One process that differs significantly is the way that data is deleted. On traditional hard drives, deleting a file simply erases the pointer to that file in the file system. The data still remains stored on disk, but the operating system knows that chunk of disk space is free to be written to. Eventually, the data will be overwritten.
This is not the case with SSDs. Flash-memory devices require a cell to be empty before data can be written to it. When data is left in cells after being deleted, the program/erase process has to run before new data can be written. This, of course, slows down write time.
However, there are a number of options available today to address this SSD write penalty.
"For ATA or SATA interface devices, there is this thing called TRIM," said Dennis Martin of Demartek at a recent Storage Decisions event. "When a file is deleted, the operating says, 'Oh it's an SSD? Kick off the garbage collection process right now, so those cells will be clean when it is time to write to them.'"
However, not every operating system supports TRIM. "The operating systems that take advantage of TRIM today are Windows 7 and Windows Server 2008 R2 by default and Red Hat 6 as long as you have the Ext4 file system and its not enabled by default," said Martin.
And what if you aren't using SATA interface drives? Are there options available to address the SSD write penalty? According to Martin, SAS [vendors] have come up with a similar function called UNMAP, but it hasn't been implemented anywhere yet.
"Also, many flash vendors offer a utility that will kick off garbage collection in advance," he said.