NAND flash has its own set of terminology, pros, and cons. It has generated a proverbial gold rush by Dell, HP, EMC, and many startups. As only a new technology can, it is becoming the focal point in solution development.
Datacenter administrators once had to manage hundreds or thousands of disk drives, along with LUN groups, shelves, RAID types, unit allocation, hotspots, complex software, and tiering. Now we can place all data into a single all-flash array (or a few of them) and enjoy amazing speed with little or no tuning or advanced planning. Even for systems with a moderate I/O workload, NAND technology can be cheaper once you factor in the software elimination, power reduction, and administration time.
Here are 10 key features of NAND-based all flash arrays that differ from SSD deployments. (Click on any photo to scroll quickly through all of them.)
No. 1: Reads, writes, and erases
NAND flash is a great invention similar to an Etch-a-Sketch.
(Source: SanDisk/Intel and Rex Sorgatz on Flickr)
NAND can be randomly read with no impact on performance, regardless of what part you want to read next. When it comes to writing again, writes within a block must be in order, but the different block in a die may be written in any order. Once a block has been fully written, there is only one way to write to it again: Pick it up and shake it. No, not really. You use the erase command, erasing the whole block -- but picking it up and shaking it seems more dramatic.
No. 2: Garbage collection
Garbage collection is the worst-named part of the NAND flash ecosystem, because it does not do that. It's all about collecting everything that is not garbage from a block of flash and finding somewhere new to write it. It should be called recycling.
(Source: Jordon Cooper and David Smith on Flickr)
With general garbage collection (GC), all data is recycled together in a block. Hot and cold GC -- data with different rates of change -- are recycled into different blocks. If your NAND GC does not happen fast enough to handle what you have put out for collection, you will not be happy.
No. 3: Controller
The NAND flash controller in an SSD or PCIe card has two roles. It's responsible for managing the flash (read, write, recycle), and it interfaces with the user to handle requests for the flash.
(Source: NAIT on Flickr)
Flash controllers are similar to chefs and waiters in a restaurant. The waiter speaks your language (PCIe), and you may need a translator for the menu (SAS/SATA SSDs). The chef could be out of sight (over the SAN) or behind the counter (SAS). Sometimes, the chef will cook right in front of you (PCIe).
And while the latency from the stove to your plate can't be beat, the chef may want to involve you in the cooking process, calling it a "feature," much as some PCIe cards brag about involving the CPU in managing the flash via a software stack. This works when you are dining with the kids, but it's not so great when you are trying to have a business dinner.