Case Study 25: Dynamic Application Based Virtualization w/IBM's xCat
Moab Workload Manager®

A.25  Case Study: Dynamic Application Virtualization w/IBM's xCat

Overview

   Many organizations have critical applications which require a custom compute environment to operate properly and effectively.  These application requirements greatly limit the organization's flexibility in responding to dynamic changes in application workload, resource failures, and adjustments in business priorities.  In-house resources of one configuration sit idle while other resources are overwhelmed.  Further, the custom application environment prevents usage of grid and 'on demand' technologies which could otherwise provide unlimited access to needed compute resources.

Challenge

   Most organizations utilize only 20 to 30% of their total computational capacity due to the specialized requirements of their applications and the lack of tools that can effectively virtualize and manage the underlying resources and workload.  This causes organizations to either significantly over-purchase compute systems or excessively limit their ability to leverage the benefits of these systems.

   The use of intelligent virtualization tools can provide greater customer reach, improved reliability, faster product development, amd ultimately, the reduction of wasted resources.  All of this directly translates to both an increase in revenue and a decrease in costs.  Full utility computing and resource virtualization can improve utilization by 3 to 5 times that achieved in the traditional application model resulting in significant ROI increases.

Solution

   Moab Cluster Suite can tightly integrate with IBM's xCat Cluster Management ToolSet to provide a highly optimized and flexible solution.  To enable this model, key applications and their dependencies are encapsulated within the needed compute environment and stored as a full system image.  xCat provides provisioning services across a wide variety of architectures (x86, Power, BladeServer, etc) and technologies including Warewulf, VMWare, and Xen.  Application requirements are submitted to Moab as either a periodically scheduled task or a standard batch task.  Information provided in these submissions indicate one or more of the following attributes:
  • Application Name
  • Input Data (optional)
  • Operating System
  • Compute Architecture (optional)
  • Execution StartTime and/or Duration (optional)

Application Task Submission

   Application tasks may be submitted using any of the following mechanisms:
  • Command line (manual)
  • Web based (manual or automatic)
  • Desktop graphical cluster management tool (manual)
  • Calendar based periodic trigger (automatic)
  • Event based trigger (automatic)
  • Load based trigger (automatic)

   This flexibility allows organizations to initiate application execution based on time of day, admin need, network failures, external load, and a host of other factors.  When a task is submitted, Moab first identifies compute resources which can best accommodate the request.  Next, using xCat's architecture aware provisioning facilities, Moab then provisions the node to provide the complete required application computing environment.  If needed, application data is staged in or made available over the network and the application is launched.

   As the application is run, Moab monitors node and application health providing admin alerts of any detected failures.  If failures do occur, Moab can be configured to automatically allocate replacement resources and migrate or restart the application using these new resources.  When the application completes, Moab can immediately reprovision the resources and make them available to other scheduled or queued applications.

Note: Moab can be configured to minimize provisioning overhead or to force provisioning in all cases for security and conflict avoidance purposes.

Mission Objectives

   Using Moab's industry leading quality of service, fairness, and optimization policies, organizations can better harness their resources and deliver on mission objectives.  Leveraging xCat's broad architectural reach and resource management capabilities, Moab can allow allow departments to bring all of their computing resources under a single umbrella and coordinate their use.

   Advanced accounting, reporting, and billing tools allow the organization to understand short and long-term workload requirements on a per application and per department level.  Additionally, application performance levels, application responsiveness, and backlog metrics can be tracked enabling intelligent capacity planning for current and future needs.

Dynamic and Distributed Application Support

   By virtualizing both resources and workload, Moab can flexibly track and manage each independent request as a job.  Because Moab can track requests at a service level, it can provide both powerful batch features and transaction level responsiveness, provisioning and launching applications without interfering with the application's native transaction processing or load-balancing capabilities.  For distributed workload, Moab can monitor application load and responsiveness and allocate additional resources to the application as needed.

Grid and On-Demand/Utility Computing Access

   With the applications bundled as full node images, Moab grid and utility computing facilities can be utilized to enable access to intranet and external grid resources or can dynamically allocate and provision remote on-demand resources from a trusted resource provider.  In such cases, Moab confirms image availability and stages application images and input data as needed to the target resource.  The newly allocated resources are then fully provisioned with the application node image and it able to safely run on the new hardware.

Sample Configuration

   Utilizing Moab facilities is simple as the example configuration below demonstrates.  In all cases, Moab can be configured either using flat configuration files or using the graphical admin tool.

moab.cfg
SCHEDCFG[master] SERVER=ww.ifl.com MODE=NORMAL

ENABLESERVICEPROVISIONING  TRUE

# interface to monitor/manage services
RMCFG[direct]   TYPE=native:xcat

# constrain scheduler to only allocate same architecture nodes to each job
NODESETPOLICY    ONEOF
NODESETATTRIBUTE ARCH

# run accounting package once a week
SRCFG[acct]  HOSTLIST=node013,node014
SRCFG[acct]  DAYS=FRI STARTTIME=22:00:00 ENDTIME=24:00:00
SRCFG[acct]  OS=rh73 APPLICATION=/usr/acct/tools/weeklysummary.pl

# activate web analysis service during business hours
SRCFG[web3]  TASKCOUNT=16
SRCFG[web3]  DAYS=MON,TUE,WED,THU,FRI STARTTIME=08:00:00 ENDTIME=17:00:00
SRCFG[web3]  OS=sus91 APPLICATION=/opt/w3/bin/webanalysis

# prevent oversubscription of provisioning resources
NODECFG[GLOBAL] GRES=prov:32 # allow 32 simultaneous provisioning operations

CLASSCFG[prov] TGRES=prov:1@0-300                

Key Benefits

highlights
  • Maximize use of available resources by eliminating custom-environment constraints
  • Dynamically handle workload fluctuations and unexpected customer needs
  • Tightly integrate and effectively manager both rigidly scheduled and batch applications
  • Minimize admin overhead by automating provisioning and node recovery
  • Target resource delivery to key projects and requirements according to mission objectives
  • Automatically re-route applications around failed resources