Previous  |  Next  >  
Product: Cluster Server Guides   
Manual: Cluster Server 4.1 User's Guide   

Sample Configuration: Server Consolidation

The following configuration has a complex eight-node cluster running multiple applications and large databases. The database servers, LargeServer1, LargeServer2, and LargeServer3, are enterprise systems. The middle-tier servers running multiple applications are MedServer1, MedServer2, MedServer3, MedServer4, and MedServer5.

In this configuration, the database zone (system zone 0) can handle a maximum of two failures. Each server has Limits to support a maximum of three database service groups. The application zone has excess capacity built into each server.

The servers running the application groups specify Limits to support one database, even though the application groups do not run prerequisites. This allows a database to fail over across system zones and run on the least-loaded server in the application zone.


include "types.cf"   
cluster SGWM-demo (
 )

system LargeServer1 (
  Capacity = 200
  Limits = { ShrMemSeg=15, Semaphores=30, Processors=18 }
  LoadWarningLevel = 80
  LoadTimeThreshold = 900
  )
   
system LargeServer2 (
  Capacity = 200
  Limits = { ShrMemSeg=15, Semaphores=30, Processors=18 }
  LoadWarningLevel=80
  LoadTimeThreshold=900
  )

system LargeServer3 (
  Capacity = 200
  Limits = { ShrMemSeg=15, Semaphores=30, Processors=18 }
  LoadWarningLevel=80
  LoadTimeThreshold=900
  )
        
system MedServer1 (
  Capacity = 100
  Limits = { ShrMemSeg=5, Semaphores=10, Processors=6 } 
  )
system MedServer2 (
  Capacity = 100
  Limits = { ShrMemSeg=5, Semaphores=10, Processors=6 } 
  )

system MedServer3 (
  Capacity = 100
  Limits = { ShrMemSeg=5, Semaphores=10, Processors=6 } 
  )

 system MedServer4 (
  Capacity = 100
  Limits = { ShrMemSeg=5, Semaphores=10, Processors=6 } 
  )
system MedServer5 (
  Capacity = 100
  Limits = { ShrMemSeg=5, Semaphores=10, Processors=6 } 
  )
 
group Database1 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3,  MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { LargeServer1, LargeServer2, LargeServer3 }
  FailOverPolicy = Load
  Load = 100 
  Prerequisites = { ShrMemSeg=5, Semaphores=10, Processors=6 }  
  )

group Database2 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { LargeServer1, LargeServer2, LargeServer3 }
  FailOverPolicy = Load
  Load = 100 
  Prerequisites = { ShrMemSeg=5, Semaphores=10, Processors=6 }  
  )
group Database3 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { LargeServer1, LargeServer2, LargeServer3 }
  FailOverPolicy = Load
  Load = 100 
  Prerequisites = { ShrMemSeg=5, Semaphores=10, Processors=6 }  
  )

group Application1 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { MedServer1, MedServer2, MedServer3, MedServer4,
    MedServer5 }
  FailOverPolicy = Load
  Load = 50 
  )

group Application2 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { MedServer1, MedServer2, MedServer3, MedServer4,
    MedServer5 }
  FailOverPolicy = Load
  Load = 50 
  )
group Application3 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { MedServer1, MedServer2, MedServer3, MedServer4,
    MedServer5 }
  FailOverPolicy = Load
  Load = 50 
  )

group Application4 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { MedServer1, MedServer2, MedServer3, MedServer4,
    MedServer5 }
  FailOverPolicy = Load
  Load = 50 
  )

group Application5 (     
  SystemList = { LargeServer1, LargeServer2, LargeServer3,
    MedServer1, MedServer2, MedServer3, MedServer4, MedServer5 }
  SystemZones = { LargeServer1=0, LargeServer2=0, LargeServer3=0,
    MedServer1=1, MedServer2=1, MedServer3=1, MedServer4=1,
    MedServer5=1 }
  AutoStartPolicy = Load 
  AutoStartList = { MedServer1, MedServer2, MedServer3, MedServer4,
    MedServer5 }
  FailOverPolicy = Load
  Load = 50 
  )

AutoStart Operation

Based on the preceding main.cf example, the AutoStart sequence resembles:

Database1

LargeServer1

Database2

LargeServer2

Database3

LargeServer3

Application1

MedServer1

Application2

MedServer2

Application3

MedServer3

Application4

MedServer4

Application5

MedServer5

Normal Operation

The configuration resembles:

Server AvailableCapacity CurrentLimits Online Groups

LargeServer1

100

ShrMemSeg=10

Semaphores=20

Processors=12

Database1

LargeServer2

100

ShrMemSeg=10

Semaphores=20

Processors=12

Database2

LargeServer3

100

ShrMemSeg=10

Semaphores=20

Processors=12

Database3

MedServer1

50

ShrMemSeg=5

Semaphores=10

Processors=6

Application1

MedServer2

50

ShrMemSeg=5

Semaphores=10

Processors=6

Application2

MedServer3

50

ShrMemSeg=5

Semaphores=10

Processors=6

Application3

MedServer4

50

ShrMemSeg=5

Semaphores=10

Processors=6

Application4

MedServer5

50

ShrMemSeg=5

Semaphores=10

Processors=6

Application5

Failure Scenario

In the following example, LargeServer3 fails. VCS scans all available systems in the SystemList for the Database3 group for systems in the same SystemZone and identifies systems that meet the group's prerequisites. In this case, LargeServer1 and LargeServer2 meet the required Limits. Database3 is brought online on LargeServer1. This results in the following configuration:

Server AvailableCapacity CurrentLimits Online Groups

LargeServer1

0

ShrMemSeg=5

Semaphores=10

Processors=6

Database1 Database3

LargeServer2

100

ShrMemSeg=10

Semaphores=20

Processors=12

Database2

In this scenario, further failure of either system can be tolerated because each has sufficient Limits available to accommodate the additional service group.

Cascading Failure Scenario

If the performance of a database is unacceptable with two database groups running on a single server, the SystemZones policy can help expedite performance. Failing over a database group into the application zone has the effect of resetting the group's preferred zone. For example, in the above scenario Database3 was moved to LargeServer1. The administrator could reconfigure the application zone to move two application groups to a single system. The database application can then be switched to the empty application server (MedServer1–MedServer5), which would put Database3 in Zone1 (application zone). If a failure occurs in Database3, the group selects the least-loaded server in the application zone for failover.

 ^ Return to Top Previous  |  Next  >  
Product: Cluster Server Guides  
Manual: Cluster Server 4.1 User's Guide  
VERITAS Software Corporation
www.veritas.com