Steve Norall of the Taneja Group wrote an excellent article titled, Cluster file storage is enterprise ready, that was recently published in InfoStor. The whole piece is definitely worth reading, but I'll repost a few of my favorite comments. For this discussion, I'm going to refer to clustered, parallel, and global file systems as more or less the same thing, which Steve describes as:
...a single file and directory structure for all unstructured data to be centrally managed.
The article highlights a few key trends most notably that "there are new classes of clustered computing architectures that require the scalability of clustered storage." These can be broadly identified by:
- Web Applications with the need to handle thousands of concurrent users, expand seamlessly to support hundreds of on-line terabytes, and meet 24x7 uptime requirements
- Consolidated and Virtual Server Environments with the requirement for low-latency, high-performance storage systems
- Technical Computing Environments such as Monte Carlo simulations in financial services, blast clusters in biosciences, seismic processing applications in energy, video rendering in movies and TV, and CAD/CAM applications in manufacturing, all of which require large capacity and high I/O throughput
The big common theme across these environments is:
- They must share the data
- Storage performance is key to overall application responsiveness and throughput
Gear6 refers to these environments and workloads as having a requirement for shared I/O performance. However, the story does not end with global file systems alone. Rather, there is a pressing need with certain workloads to go beyond the purported capabilities of a clustered storage system.
Remember the idea from above of a single file and directory structure? The reality is that in cases of many small files and where low-latency is critical, a single global file system creates a single global directory which can lead to a single, global wait. Specifically, the larger the directory information, the longer it takes the storage system to dig in to that directory and find the location of the file/data it is requesting.
So, in certain cases, moving to a global file system can actually REDUCE the number of I/O Operations per Second and INCREASE the latency.
Comnews recently published an article that describes this in more detail. See Ratcheting Up Global Namespace Performance.
IT and storage managers need to take a close look at clustered file systems. For those who are capacity-constrained, they are an excellent solution. But for those who are performance constrained in terms of IOPS and the need for low-latency, it is important to consider solutions that deliver on those specific criteria. Scalable caching appliances are one such approach. And for those who are capacity AND performance constrained, a combined solution of caching appliances in conjunction with a clustered file system from the likes of NetApp or Isilon can provide a best of both worlds approach.
What? There are definitely clustered filesystem solutions out there that use hashing algorithms to optimize access to large distributed directories. Isn't Gear6 appliances a bottleneck and a latency inducer? That's a stupid FUD.
Posted by: Eyal Traitel | August 25, 2007 at 11:18 PM