#memeconnect #fio
WATCH THE VIDEO EXPLANATION FROM DAVE FLYNN CEO OF FUSION-io
Contents |
Introduction
The initial implementations of flash have been simple; they have been used to emulate disk drives. The same is true on PCs and servers. In PCs flash thumb devices emulate a disk drive. On servers they have also emulated drives, and have been called Solid State Drives or SSDs. The reason for this was simple – it was an easy and smart way to use existing software layers to bring flash devices to market quickly. Flash memory is 'persistent', i.e. when it is turned off it retains the contents of the memory. It acted in the same way as disk storage devices, which were the only method of ensuring that data was stored safely.
Some will remember core storage from the early computers, as shown in Figure 1. It consisted of ferrite rings which represented ones and zeros that could be written to via the X and Y-axis wires and read via the sensing wires. It was also 'persistent'. They were the heart of computer memory systems in the sixties.
Ferrite rings were replaced by semiconductor memory which was cheaper and faster. But read/write (RAM) semiconductor memory is volatile. One of the forgotten challenges of early IT was the large investment in operating system technologies to ensure that data was not lost when power was lost to the system. The concepts of two-phase commits and log files were refined and deployed to overcome the volatility of RAM and ensure that data was written safely to tape and disk. The indirect result has been systems that have been very slow to recover from failure, because of the slowness of disk and tape access.
Flash Memory as an Extension of the Memory System
With the advent of flash memory, IT can go back to the future and simplify operating systems, hypervisors and database systems, because operating systems and applications can guarantee a write to persistent flash memory in a single pass. The announcement of VSL memory architecture by Fusion-io was an important step in providing a framework, which William Josephson has used to show the benefits of improving just the file system alone. There is enormous potential is to create operating and application systems with much better functionality, performance, availability and recovery.
Flash improving System Functionality & Performance
In transactional systems one of the major constraints on the amount of processing that can be done is the number of data-base calls that can be supported. Transactional systems require updates to be made, and updates require locks to ensure integrity. Updates have to be written to disk to secure them. The slowness of IO constrains the locking rate, which constrains the number of database calls made. With a seamless persistent extension to memory, the locking rate and number of database calls that can be made can be dramatically increased. This allows the functionality and ease-of-use of systems to be improved, and improve the productivity of the users. The impact of these ideas is already being seen in the applications being designed for the mobile platforms.
Flash improving Availability & Recovery
To secure and updates to a system, data must be written out to disk drives. To ensure consistency, log files are also required. If all the data required to recover can be held on flash memory, system recovery times can be an order of magnitude faster. In addition, flash memory has no moving parts and is expected to be more reliable than disk drives in the long term (failure rates are not as good at the moment).
Advantages and Disadvantages of Flash Architectures
There are three flash architectures that can be deployed. They are described in more detail in another article. The architectures are:
- SSD - Solid State Drives
- FOSC - Flash on Storage Controllers
- FOS - Flash on Systems
All these architectures have their place. The following lists the advantages and disadvantages of each of the architectures:
- SSD – emulating a disk drive
- Advantages:
- Very easy to emulate a disk
- Good random read/write performance
- No system change required to implement – low friction to adoption
- Readily available from all storage vendors
- Disadvantages:
- Poor sequential performance
- Reliability still not as good as disks (but expected to get better)
- Real-world IO response time only 1-3 milliseconds, ~ 5-10 faster than disk drives
- Expensive compared with disk except for high IOPS environments
- Works only with well mannered workloads, does not work with rapidly changing workloads (batch job required to re-adjust data held on SSD)
- Advantages:
- FOSC – Flash as an extension of memory on a Storage Controller
- Advantages:
- Acts as an extension to Array RAM cache split into read cache and write cache
- Can be expanded to much greater sizes than RAM storage (can address terabytes of flash)
- Responds in real-time to changes in workload
- Much less flash required to achieve the same performance as SSDs (1-3% of total storage required as flash)
- Much better sequential performance than SSD
- Real-world IO response time 500 microseconds, ~20-40 faster than disk drives
- Eliminates the IO storms that are prevalent in virtualization
- Disadvantages
- Significant rewrite of Array architecture
- More expensive than SSD
- Only available from FalconStor with Flash from Violin. NetApp has a PAM II flash card that is read-only) (other vendors expected to follow suit in 2010 and 2011)
- Advantages:
- FOS - Flash as an extension of memory on the server
- Advantages:
- Acts as an extension to server RAM cache split into read cache and write cache
- Can be expanded to much greater sizes than RAM storage (can address terabytes of flash)
- Can significantly improve the performance of hypervisors, operating systems, file systems and databases
- Real-world IO response time 100 microseconds, ~100-200 faster than disk drives
- Ability to design very fast recovery systems (10 x faster than disk based recovery systems)
- Disadvantages
- Needs dual porting for access from another server if the original server goes down
- Significant rewrite of hypervisors, operating systems, file systems and databases for maximum exploitation
- Uses slots on system bus (PCIExpress)
- Only available from Fusion-io (Sun Flash-Cache is a smaller read-only cache for IO.) Other vendors expected to introduce full read-write capabilities in 2010 and 2011.
- Advantages:
Action Item: Using flash memory as a disk drive is a stopgap technique. The use of flash as an extension of RAM memory, whether in the storage controller or in the server, will be functionally superior and enable very different system designs that will improve functionality, performance and availability. With that will come profound improvement in user productivity. Senior IT executives should understand the road map and commitment of vendors to new flash architectures that will be an integral part of Infrastructure 2.0.
Footnotes: