How to Design a NAS System for Massive Scalability
How to Design a NAS System for Massive Scalability
Network Attached Storage as a platform for consolidated data storage has become the technology of choice for many data centers, especially in a number of industry verticals, many of which require the ability to scale to extremely large proportions. Compared with more moderately sized systems the design specifications for a massively scalable NAS should consider a number of important factors.
Thursday, October 28, 2010
Size
A massively scalable NAS system should expand large enough to meet the basic expectations of raw storage capacity and file count. This means the namespace should be expandable to the millions or most likely, billions of files. Likewise, the storage space must expand using large volumes to support the PBs of raw capacity that could be required without incorporating complex volume management to stitch enough physical space together. When NAS systems don’t scale large enough to accommodate the capacity or file counts required, organizations are faced with buying more smaller NAS systems and managing multiple ‘silos’ of storage and implementing file virtualization to consolidate the namespace. These alternatives can increase management significantly and impact file system performance.
Efficiency
In order to get enough capacity into a reasonable footprint the scalable NAS system should also have an efficient design. In terms of space efficiency, the system should achieve the storage density, or TB per square foot, needed to support the capacities expected in the data center space available. For example, using more lower-capacity drives in order to meet performance demands can have a direct effect on this density. In terms of power, CPU architectures and disk configurations should be optimized to improve application performance per Watt and per BTU (cooling costs). Stretching a moderate capacity NAS to extremes (even within levels indicated on product brochures) can expose design weaknesses and make it impractical, in terms of space or power usage.
Functionality
Growth should be granular enough so that excess capacity or performance isn’t purchased before it’s needed, or else costs (including power, cooling and management) could increase unnecessarily. This also means scaling capacity and processing power independently, as the NAS system should be flexible enough so that the performance characteristics of the storage are appropriate for each stage of growth. If workloads change the NAS system should be able to tailor capacity/performance profiles of the existing storage to accommodate the situation. This flexibility is important for a massively scalable NAS system, which often supports a consolidated environment and needs to meet the diverse workload requirements that potentially many smaller systems used to support. In addition to providing the throughput and IOPS required as it scales, performance includes supporting enough concurrent users to meet the organization’s needs as it grows.
Massively scalable NAS
A NAS system can be defined as a namespace and a storage space. A namespace is maintained by the file system software and is comprised of the individual file systems themselves. A scalable NAS system should have file systems that can contain very large numbers of files and a file system controller that can manage multiple file systems within a single ‘global’ namespace.
The storage space is comprised of physical storage devices, typically disk arrays, and storage controllers for those arrays. This physical capacity is defined by volumes of storage or “pools” of addressable space onto which file systems are installed. A NAS system designed for massive scalability would have the ability to access enough capacity to support the file systems needed to reach the growth levels required but with an architecture, like storage pools, that increases flexibility and reduces management operations.
Storage pools virtualize physical storage space and enable automatic growth of file systems as required using pre-defined administrator rules, eliminating much of the traditional storage provisioning process. File systems get the benefit of all the disk spindles within the storage pool for optimal performance, but only use capacity as they grow, allowing for improved storage utilization. Storage pools can be shared between clustered NAS systems further optimizing storage management and provisioning and can be replenished to allow for continued seamless storage growth.
The performance requirements of file systems can be better met with a hardware-based architecture, instead of file system controllers that run in software on standard CPUs. A parallel architecture with distributed memory, state engines and data pipelines also helps to maintain performance in terms of throughput and IOPS, and keeps application latency down. It’s this latency that limits another measure of scale, the number of concurrent users a NAS system can support.
Clustered, module storage
Clustering nodes or modules is a method for scaling NAS storage devices. It allows growth to be controlled and incremental so that appropriate capacities are achieved without buying more than is needed at one time. As opposed to the traditional ‘monolithic’ storage architectures, which featured a controller, or controller pair and racks of disk arrays, scaling storage in modules allows processing power to grow with raw capacity. This means throughput and IOPS can be maintained as the system expands. But there are some differences in the way modular, scaling NAS systems are designed.
Separate storage and namespace
For maximum scalability, there can be advantages to divorce the namespace from the storage space so that each can be scaled as needed, independently from the other. In order to reach extreme proportions, configurations of disk capacity and processing resources will need to match the workloads expected. The architecture of clustered NAS systems, like BlueArc’s Titan and Mercury Storage Servers, should be flexible in order to support these configuration variations that may be required. Generally, a ‘one size fits all’ architecture won’t provide this level of flexibility and may have some challenges, as a capacity-centric system is required to support a more performance-centric workload.
Traditional NAS systems have storage controllers with a finite number of spindles they support, based on embedded FC loops or a similar technology. This ties the system capacity to the drive sizes used and can force a trade off between performance (more spindles) and capacity (larger drives). Uncoupling the storage controllers from the namespace also removes this spindle count parameter from the scaling equation and enables the system to be configured to meet expected growth and expected workloads.
System density
Very large NAS system should also be physically dense in order to provide the capacity needed, and still fit in a reasonable data center footprint. Similarly, hardware-based storage processes, using FPGAs and ASICs, can improve efficiency over the use of software-based designs which use more power-hungry microprocessors. Also, intelligent storage tiering (mentioned below) can enable the very large NAS system to employ larger capacity drives for certain file types or workloads increasing spindle efficiency and reducing space and power usage. In general, high performance, high capacity NAS systems can also improve overall power efficiency of the environment by consolidating multiple lower-capacity, lower-efficiency NAS systems.
Tiered storage
In the block storage world, creating primary, secondary and archival tiers using different storage platforms (often from different vendors) is an accepted strategy to improve performance and minimize cost. In the traditional NAS world, this kind of physical tiering often involves buying separate NAS ‘silos’ for each tier desired. A NAS system with a separate namespace and storage space can make tiered physical storage simple to implement. With this architecture, a clustered system designed for massive scalability can take advantage of the optimization that storage tiering enables.
Tiered metadata
In addition tiering file data, tiering file metadata can improve storage efficiency and performance in a highly scalable NAS system as well - see Storage Switzerland Article on BlueArc’s Metadata Optimization. Metadata is ‘data about the data’ and includes file attributes, permissions, access histories, etc. Uses of metadata in file operations are called metadata operations and include file system searches and policy functions for tiering and security, as an example. Metadata is usually a small part of a total file system’s capacity (low single digit percentages are common), but metadata operations are often a large percentage of total file system CPU activity. This means putting file metadata onto faster tiers of storage can have a high impact on file system performance for the low capacity of storage it requires. It can improve spindle efficiency by reducing the need for low-density, high-cost array configurations, like wide-striping and short stroking, to meet NAS system performance requirements.
The ability for NAS systems to grow extremely large is becoming a requirement for industries like media and entertainment which support extensive data libraries as well as more traditional applications supporting extensive NAS consolidation. The design of a massively scalable NAS system should address the requirements of adequate size, density and storage efficiency in order to remain cost effective as it reaches these large capacities. In addition, a clustered, node-scalable architecture with independent storage space and namespace can provide the flexibility required to meet changing workloads and maintain functionality as it scales.
Eric Slack, Senior Analyst
BlueArc is a client of Storage Switzerland
Related Articles
What is pNFS and why should you care?
Storage-at-Scale Systems Save Costs
Cost Effectively Scaling Storage Performance
Unstructured Data Growth ‘Storage at Scale’
Proficient Object-based Replication
Use Clones to Manage VMware Storage Growth
Solve Boot Storm with High Performance NAS
Storage: Scale Up or Scale Out
DC Virtualization-IOPS Most Important
Related Blogs
File System Tiers Metadata for Performance
BlueArc uses Permabit’s Dedupe Engine