Single-system image (SSI) is a form of distributed computing, an abstract way of providing a single entry point to a large underlying infrastructure to your users.? Many multi-processor systems strive to provide a singular view to the underlying physical processors, to make the multi-processor system look as if it was a single processor.? Well, the question is, does it make sense?
The concept of a single-system image is nothing new, and it goes back to the beginning days of computing.? Abstraction methods were/are used to give the user the perception of a unified system. The question, however, stands that if we actually need a ?single-system??
This is a loaded question with no right answer.? Did you notice that I said no right answer, as opposed to saying that there is no wrong answer? There are technological and there are political cases for and against achieving such lofty goal across the enterprise.
The concept behind SSI is that your environment is made to look as if it is one single node being accessed by the outside.? This sounds great in theory, but in practice this opens up the discussion of sharing as when a number of users are on the same virtual environment, there will be resource contention and there could be scarcity in available resources.
Let?s take another approach to the problem, through the perspective of an operating system managing a multi-CPU machine.? A number of CPU-intensive applications may be contending to gain access to the underlying resources. It is the OS?s job to schedule and ensure proper access by all who need access, and the user is not aware of the fact that there are multiple physical CPU?s and memory channels, etc.? The OS provides a single-system image to the user. This is a small case of SSI; let?s apply this concept to the enterprise.
SSI for the Enterprise
Applying this concept to the enterprise is a little more challenging as the number of nodes to worry about is greatly larger. There are other variables that we have to worry about as well:
- -????????? Locations of the resources in question
-????????? Connectivity among the locations
-????????? Heterogeneity of the system (hardware, software)
These are the same issues and concerns that one needs to deal with when talking about an enterprise Grid. This is due to the fact that to have an enterprise-wide Grid, one must have a single-system image of the underlying resources in mind. An enterprise Grid and a single-system image go hand-in-hand, and to solve one is to solve the other.
Managing resources is a balancing act between what is available and what is requested. A single-system image allows a resource manager to manage resources across the enterprise as the full picture of the underlying infrastructure would now be available. Resource management is a three step process:
- 1.?????? Place request in accordance to a complimentary combination of resource usage
2.?????? Remember that you cannot squeeze 101 percent utilization from a resource, no matter how much you try
3.?????? If your resources are being used by only a handful of jobs while other jobs are starving, revisit step 1
This is not as easy as it looks.? Finding job profiles that are complimentary is not an easy task as many jobs have unpredictable usage requirements and are only known at runtime. Figure 1 better illustrates this problem. If users can be happy with what is given to them, then there is no problem. If more than one user tries to access a shared pool of resources, then management of those resources is key.
Figure 1: Resource Contention
Finding a real-time solution to this problem is not easy (in fact, scheduling problems are considered unsolvable ? more on this later). The point is that step 2, which is management part of resource management, requires the full view of the system along with availability, capability, etc.
Figure 2: A Single-entry approach of a Resource Manager
Do I really need it?
Often enough, having a single-system image does not make sense. You may want pockets of discrete resources, each serving its own master. This scenario often happens as a result of these three things:
- -????????? Monetary ? people like the idea that what they paid for is not being used for someone else
-????????? Political ? sometimes folks just don?t want to be part of a larger and organized infrastructure that will force them to share the success and failures of others
-????????? Technology ? proper technology is not in place to allow such infrastructure to be built
These three and possibly others could be the culprit of why an enterprise-wide infrastructure is not deployed at times.
Segmenting a single-system seems like an oxymoronic way of approaching the problem, but it will make the users happy.? The idea is that a single infrastructure is built-out, but access to the infrastructure is controlled by many entry points as shown in figure 3.
Figure 3: Segmenting a Single-System
From the users? perspective, each has a dedicated environment.? From the infrastructure management point of view, there is a single infrastructure.? AS one might expect, this is not ideal as the resource manager makes the best decision from what it knows and not a global view ? commonly known as the local maxima problem.
SSI makes perfect sense for Grid, but this greatness comes at a great cost: years of work.? This is a repetitive process, where at times, one needs to take a step back in order to take two steps forward.? Keep in mind that a single-system-image can only be achieved if the idea is sold to the users and all participants see the benefit that it brings.