In 1998, a little-known company called VMware had just opened the doors of its Palo Alto office. Ever since computing moved from the mainframe to the desktop, the push had been bigger, faster, and more - more CPUs, more servers, more power, more cooling - and ultimately more complexity, more cost, and more waste. In the early 2000s, studies found that average utilization of CPUs across both data center and desktop was a meager 15 percent.
If someone had predicted then that the Intel and AMD roadmaps would dramatically shift from increased clock speed to multiple processing units within a core (multi-core), they would have been thrown out - just as if they had predicted that major server vendors such as Dell, HP, and IBM would be actively promoting tools and services that allow customers to buy less of their product today. These vendors don't have a choice - IT organizations are being overwhelmed with "server sprawl" - forced into a situation where their operating costs are scaling linearly, or worse, with their capital costs.
Understanding the proposed benefits of virtualization is not difficult - higher utilization rates and efficiency lead to less capital expenditures and operating costs for physical hardware. This benefit is only the tip of the iceberg, as enterprises have found that once they virtualize servers and desktops, they dramatically improve provisioning times, reliability and disaster recovery, and reduce IT operating expenses. As technology advances and IT environments are automated, the operating benefits to organizations will be enormous. Some use this shift to argue the IT challenge is solved and, from now on, IT will be relegated to a minor cost center at each organization; however, Gartner is reporting that approximately 15 percent of workloads are actually virtualized (desktop virtualization is in its infancy and tier 1/2 workloads have yet to be largely virtualized) so there must be a significant impediment. What is holding back widespread adoption? Traditional storage.
In the late 1990s, network attached storage (NAS) systems dramatically simplified the deployment of storage in enterprise IT environments and a new era of storage performance and stability had arrived. The NAS platform focused on the challenges at the time - transactional I/O, ease-of-deployment, rapid system provisioning - to meet the demands of many organizations growing their systems quickly. The individual storage demands were not significant in terms of capacity or performance; however, the actual number of necessary systems was significant. This approach to storage enabled organizations to consolidate standalone servers and dramatically simplify management and cost compared with direct-attached storage or storage area networks (SAN).
If someone had claimed at the time that they needed a single file system in tens of petabytes (PBs) instead of tens of GBs, they would have most likely been laughed out of the room. The idea that everyone, both business and consumer, would have near-ubiquitous access to high-speed Internet was the dream of every dot-com, yet here we are today, with multi-gigabyte files being routinely downloaded, copied, and archived, with single file-systems in production that are over a PB, and single file-system performance exceeding 50 Gbps. The explosion of data overwhelmed traditional SAN and NAS systems. New technology emerged that was purposely built to solve the next generation of storage and computing challenges: scale-out storage.
Scale-out storage departs from the traditional storage building blocks of controllers and shelves. The traditional model is to construct a single system using RAID groups, LUNs, and volumes and scale that by adding more controllers, more volumes, etc. Each storage system has volume, performance or data reliability limitations, so multiple systems must be deployed as an organization grows. These systems form a complicated web of "storage islands" and result in "storage sprawl" - the storage corollary to the challenge of server sprawl that IT administrators found themselves facing in the late '90s.
A scale-out storage system is engineered completely differently and from a clean slate; it eliminates the dependency on layers of abstraction (RAID, volumes, LUNs) and instead gives the file system direct knowledge of every bit and byte. A scale-out storage system is a single file system made up of independent devices - commonly referred to as "nodes" - each providing storage and processing resources to store and serve a portion of a customer's data. Each node is built using commodity hardware and connected via a private high-bandwidth, low-latency interconnect. It is ultimately a distributed storage system, one which provides seamless scaling capabilities and ubiquitous access to large amounts of data while providing a single management point and system namespace.
Virtualization is overwhelmingly traditional SAN and NAS systems. Built to serve small amounts of data very fast, with specific isolated workloads, these systems are simply incapable of providing a cost-effective, scalable environment. If you consolidate 10 servers or 10 desktops, you reduce 10 CPUs but you increase the workload on the underlying storage device. You now have 10x the amount of storage, 10x the required throughput and IOPS, and typically 10x the amount of storage administration. Not only are you increasing the burden on particular storage systems, you're increasing the complexity and reducing the predictability of the workloads.
In non-virtualized environments, the burden of moving compute resources and applications is high, so workloads are pre-provisioned with CPU, storage, and networking capabilities. If a workload dramatically changes, it is re-provisioned and migrated. In a virtualized environment; however, the application migration burden is significantly reduced and in many cases, workload migration can be automated for real-time utilization of physical resources. While this can help maximize compute resources, it exacerbates the burdens placed on traditional storage.
In a traditional storage environment, each volume or LUN is backed by a particular set of disks and fronted by an individual controller with CPU and memory. Since it is in the administrator's interests to allow workflows to move dynamically within a virtualized environment, it is much more difficult to calibrate the storage requirements effectively. Administrators have few choices with traditional SAN and NAS environments: either overprovision the storage or be forced to choose between maximizing performance and maximizing utilization. This fundamental trade-off occurs in a traditional system because of the need to directly align spindles with workloads - and rarely can an IT administrator both maximize the use of the capacity provided by those spindles and harness the full performance potential.
Growing this environment is equally challenging. Over time the increased burden of managing multiple systems (due to storage sprawl), the underutilization of storage capacity (wasted capex) and inherent poor and unreliable application performance has forced IT environments to look for a different solution. This is ultimately why virtualization has not more significantly penetrated mainstream IT environments - the limitations of traditional storage disproportionately increase costs as an environment scales, hindering performance, and causing increased management burden.
Scale-out storage eliminates the challenges of scaling virtualized and non-virtualized workloads alike. A scale-out system automatically uses all available storage, processing, and network resources that are part of the system, allowing those resources to scale transparently and on-the-fly. This unique capability enables an IT administrator to provision now for current workloads and dynamically scale the entire environment as necessary over time without over-provisioning. As the system scales, the IT administrator enjoys the convenience of a single file system - a single mount point/share for users and applications and a single point of administration - regardless of size.
As data is written into a scale-out storage system, it is automatically distributed to multiple nodes and written on multiple disks. This is typically done on a per-file basis, ensuring that no particular group of files is constrained or backed by the same set of nodes or disks, which enables a random distribution of data among the available resources. In addition to randomizing the placement of data across the system, each node utilizes its random-access memory (RAM) as a cache for the most active data blocks stored within that node - allowing that data to be quickly retrieved by another node when requested. When an additional node is added in order to scale performance or capacity, the system automatically redistributes data in order to ensure the correct balance among nodes, as well as the necessary randomization. This unique method of randomizing data placement across a scalable number of spindles and caching the most frequently used blocks allows scale-out storage systems to avoid the hot spots and bottlenecks that plague traditional storage systems, especially those that occur as a result of highly diverse virtualized workloads.
It is no longer necessary for a storage administrator to configure a particular LUN or volume for a set number of virtual machines and to group virtual machines by potential and peak throughput and I/O requirements. It is no longer necessary for the storage administrator to constantly move virtual machines between LUNs and volumes, attempting to adjust for changing performance requirements while simultaneously trying to maximize utilization of the underlying storage. With a scale-out storage system, an administrator can deploy a diverse set of workloads and allow the storage system to automatically adapt to those workloads without constant intervention - just as that same administrator allows virtual machines to be automatically balanced among hypervisors.
Traditional storage systems limit protection capabilities to RAID-6 or two-way clustered pairs - insurance against a single head failure or two simultaneous drive failures - which is not sufficient in large virtualized or non-virtualized storage environments consisting of hundreds or thousands of terabytes. In addition, traditional storage systems built on hardware-based RAID technology have a fundamental scaling challenge - as drives increase in density (but not in performance) these systems lose the ability to rebuild a drive in a timely manner and provide adequate protection. The only mitigation to this challenge in a traditional system is expensive mirroring techniques, driving up the costs and the complexity.
In contrast, a scale-out storage system offers extreme reliability in a very cost-effective manner, which is necessary due to the scale of data deployed. As data is written and distributed in the system, forward-error correcting codes (FECs) are used to generate recovery bits that can be used to seamlessly recover data in the event of multiple node or disk failures. A typical scale-out storage system can survive up to four simultaneous failures of either nodes or drives, regardless of the capacity of the drive. This unique capability is enabled by the intrinsic properties of the distributed storage system and the elimination of the layers of abstraction (RAID, volume manager, LUN). When a failure occurs in a scale-out storage system, multiple nodes can rebuild portions of the data set in parallel, dramatically decreasing the rebuild time while minimizing performance impact. Since the system is able to utilize FECs as a redundancy technique instead of mirroring, it can achieve high levels of protection with a very minimal level of overhead - as little as 20 percent to protect against four simultaneous failures.
All implementations of technology evolve and change over time, as do workloads and requirements. With a traditional storage system, as the equipment ages or the requirements change, the only true upgrade path is a replacement. The data must be migrated to a larger, newer system, resulting in downtime, complexity and a loss of investment. With a scale-out storage system, new or additional nodes can be added to existing nodes - allowing the evolution of the storage environment in a non-disruptive, cost-effective manner - maximizing the storage investment and reducing complexity.
Virtualization is here to stay. By 2013 Gartner estimates that 80 percent of server workloads will be virtualized. With the advancements in processing and hypervisor technology, most recommended deployments for applications will be in conjunction with virtualization. As virtualization takes root as an enabling technology, it will be a critical piece of next-generation applications and operating systems, leading to the next phase of IT data center automation. In order to build dynamic, cost-effective data centers, IT administrators will find themselves able to achieve the necessary dynamics of scale and simplicity of management only by leveraging virtualization, automation and scale-out storage.
About Nick Kirsch Nick Kirsch has over nine years of experience designing and building distributed systems. He joined Isilon in 2002 as a software engineer and participated in the development of version 1.0 of the Isilon OneFS operating system. In April of 2008, he left his post as director of software engineering and moved to Isilon's product management group to focus on maintaining and extending Isilon's technology and product lead in scale-out NAS. He is currently the senior product manager for OneFS and Isilon’s suite of add-on software applications, including SyncIQ, SmartQuotas and SmartConnect.
Prior to joining Isilon, Nick spent three years at InsynQ, Inc., as the director of development. He holds Bachelor of Science degrees in Computer Science and Mathematics from the University of Puget Sound and a Master's degree in Computer Science from the University of Washington.
Reader Feedback: Page 1 of 1
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice: