A friend in the industry recently asked for my opinion on an interesting question "is virtualization becoming a replacement for clustering?" I knew he really meant the combination of virtual machine software and management software for virtualized environments that provided orchestration and automation capabilities. Here is my answer to that challenging multifaceted question:
When does the replacement make sense and when it doesn't
There are a couple of forms of clustering and depending upon the form, it is quite possible that the use of virtual machine software combined with orchestration and automation software might be acceptable. Let's consider each of them.
- Using single system image clustering to create what amounts to a very large SMP system using separate, lower-cost systems. In this case, it is unlikely that adding layers of software (the virtual machine software and the orchestration/automation software) would result in unacceptable performance even if functions can live on beyond the failure of a component. So companies using VMS clusters or Sun Clusters would be best advised to continue on the path they're already on.
- Using general purpose systems as the foundation for storage clusters to create what amounts to a single sophisticated storage server based upon separate, lower-cost system. Once again, it is unlikely that adding layers of software to the environment would result in a solution that would meet performance goals.
- Using HA/failover software, such as that offered by SteelEye or Symantec (Veritas), to allow multiple systems to watch one another and upon a failure, the failing function would be restarted on another system and continue processing. In this one case, it might be possible to substitute the combination of virtual machine software and orchestration/automation software for clustering software.
What's needed to make this work?
Companies such as Citrix, Cassatt, Novell, Steeleye Stratus, Surgient, VMlogix, VMware are offering software which could be useful to create a policy-based management environment that would assure service levels (by restarting or moving functions to meet pre-set guidelines. Which is best depends upon the needs of the organization. All of them have good solutions.
What's your organization doing in this area?