Achieving Service Level Agreement by Virtualization, Page 2
What do I mean by "static?" These are dedicated resources. These are the servers, blades, and other computer resources that are sitting in your data center waiting to be used by the Grid infrastructure. As mentioned before, they are needed for critical and time sensitive applications to meet the minimum resource requirement. You will learn about how you can get the minimum resources required in the next section. For now, you need to know that for all intensive purposes, all the applications that you learn about are critical and somewhat time sensitive. What this means is that there are Quality of Service requirements, even if some of these requirements are not that stringent.
You learned about virtualization in the previous article, but let me talk a bit about virtualizing static resources. For a Grid-type infrastructure, you really do not care where the resources are because the Grid manager takes care of that information. Access to the resources is virtualized in the sense that the users are unaware of the location, type, or details of service execution on those resources. The users simply desire some resources to get the job done. The details are up to the virtualizer.
Dynamic Resource Provisioning
Although the above scenario significantly increased utilization, you must take proper steps to build a solid relationship between the application and the resource provider to ensure proper planning and cut-over time of resources. Unused CPU cycles from desktops (dynamic resources) add a certain level unpredictability to the picture, requiring you to manage these resources more closely.
Once a given resource has been identified for repurposing, an agent (the Grid software agent) is installed on that node and policies are used to manage the resource. Node polices check for scenarios such as:
- Event-based entitlement: Whether the mouse or keyboard has been idle for specified period of time
- Utilization-based entitlement: Whether a processor utilization has been below a certain threshold for a specified period of time
- Time-based entitlement: Whether a node is allowed to be part of the grid for a given period of time
Each environment can use a hybrid combination of these repurposing policies with the support of the Grid. Once in production, further steps are taken to ensure proper usage and administration of the resources. Managing the risk for the resource provider is the key step at this stage. The resource provider must be ensured that its resources will be available once needed. This could mean taking steps to cleanup the resource after usage, and ensure that the resource is back to its proper state before it leaves the Grid.
This is mainly the job for the COE team. The COE also must ensure that these dynamic resources add value to the overall infrastructure. For example, in the scenario depicted in Table 1, the COE needs resources during Time Block 3 more than any other time blocks. If resources are available only during Time Block 1, they might not be as useful. It is always a challenge when it comes to determining what percentage of your resources must be dedicated (static) and what percentage must be scavenged (dynamic). I like to use the following rules of thumb:
Rule 2: "Have 10% more static resources than the minimum total resources required by all the users for a given period of time."
Rule 3: "Assume that only 10% of your dynamic resources are available to your overall pool of resources at any given point of time"
Why 10%? That is where my comfort level lies. This low water mark might be higher for you or your organization. Putting all three rules together, one comes to the following conclusion:
Total Resource Shortage = Rule 1 - (Rule 2 + Rule 3)
I call the above number "the Predicament Number." This number represents the amount of resource that will be idle during your off-peak hours. This is a number that you want minimized, either by altering the resource requirement profile (Rule 1), or ideally increasing your dynamic resources (Rule 3). Once you are in production, you can adjust the low water marks that you used in Rule 3 to better model your environment at various times during a given day. I would not suggest altering Rule 2 because it represents the predictable part of your infrastructure. As mentioned, dynamic resources add a certain level of unpredictability to your infrastructure and thus need proper management.
You saw very little about the basics of achieving desired QoS through virtualization. It is important to remember that virtualization can be achieved both statically, and dynamically as described here. Due to the high costs of building data centers as you increase your static resource count, you need to further explore ways of decreasing that cost. Using dynamic resources is certainly one way this can be achieved. You did not spend any time on auditing, tracking, and profiling of resources in this article, but that is coming in the near future. Stay tuned.
1 I am referring to Virtualization as an abstract notion that encompasses a number of different technologies such as Web services, Grid and Utility Computing, and the like. You will narrow your focus mainly to Grid computing as you delve deeper into the topic at hand.
About the Author
Mr. Sedighi is currently the CTO and founder of SoftModule. SoftModule is a startup company with engineering and development offices in Boston and Tel-Aviv and Sales and Management office in New York. He is also the Chief Architect for SoftModule's Grid Appliance product that has risen from a current need in the market to manage excessive demands of computing power at lower cost.
Before SoftModule, Mr. Sedighi held a Senior Consulting Engineer position at DataSynapse, where he designed and implemented Grid and Distributed Computing fabrics for the Fortune 50. Before DataSynapse, Mr. Sedighi spent a number of years at TIBCO Software where he implemented high-speed messaging solutions for organizations such as the New York Stock Exchange, UBS, Credit Suisse, US Department of Energy, US Department of Defense and many others. Mr Sedighi received his BS in Electrical Engineering and MS in Computer Science, both from Rensselaer Polytechnic Institute.