For some environments, clustering is needed to support resource scaling including capacity and performance. For other environments, clustering is needed for higher availability, fault containment, business continuance and disaster recovery. Some environments use clustering technologies for both availability and scaling. Clusters can also be used to isolate applications from component failures locally or remotely. Clusters can be big or small, depending what they are being used for.
For storage systems, clustering provides scaling for reliability (availability and redundancy) and increase storage resources (performance and capacity) beyond a single device. A side benefit of scaling, using a clustered approach can be simplified storage management via consolidation of multiple smaller storage systems.
Most storage vendors support dual controllers or storage processors to provide redundancy for their storage, including block- and file-based products. Some vendors utilize active/active configurations where controllers or storage processors are actively providing failover. Other vendors configure their products to be active/passive with one controller or processor active and the other in standby mode. Some vendors use creative marketing to refer to storage systems with dual controllers, dual storage processors or redundant NAS filers as clustered storage systems. Some storage systems utilize loose clustering, which is also known as peer-based with TCP/IP and Ethernet, InfiniBand or Fibre Channel, while others use proprietary, tightly coupled approaches.
When it comes to storage-related clusters, consider the following items:
- Look for cluster products that are transparent and easy for you to manage
- A good cluster should be transparent including the configuration and failover
- Understand cluster overhead including lock management and synchronization
- Take care to avoid undesirable split cluster conditions known as partitioning
- Clustering is a good complimentary technology to mirroring and replication
- HBA path failover and load-balancing managers are complimentary to clusters
- Leverage cluster management and monitoring tools with open interfaces
Regardless of what your definition is, clustering is an effective approach to enable scaling, availability and consolidation. Clustering is also a complimentary technology to replication as part of an overall data and information protection strategy. Understand why you need to deploy a clustered approach and what applications and service characteristics you are looking to address. Clustering may not be for everyone; however, it is a great approach to scale availability, resources or both.
Do you know about…
About the author: Greg Schulz is founder and senior analyst with the IT infrastructure analyst and consulting firm StorageIO. Greg is also the author and illustrator of "Resilient Storage Networks" (Elsevier) and has contributed material to "Storage" magazine and other TechTarget venues.
This was first published in February 2006