07-20-2012 01:51 AM
Hi to all, I like to ask about a problem for a cluster that I am creating.
We do have 4 servers, running 3 services in each one of those 4 computers (one is for spare). My question is how can i make to run one service not being assigned one service to one computer, but at the same time validate that two services are not allowed to be allocated in one single computer (and be executed at the same time ) at first I think make dependences, but I can’t create circular dependences.
There is any way to restrict that one service can’t be running if there is other services running in the same machine and make the same for the 3 services?
Regards!!!
Solved! Go to Solution.
07-20-2012 02:55 AM
Best to use System limits and service group prerequisites so make up a variable (say NumSGs) to set to 1 so for example run the following for each system:
hasys -modify sys_name Limits NumSGs 1
Then for each service group run:
hagrp -modify sg_name Prerequisites NumSGs 1
This means the limit of NumSGs on sys_name is 1, so when group sg_name runs on this system the Available limit of NumSGs becomes 0 and then it can't run any more service groups that require NumSGs - see "Service group workload management" in VCS admin guide for more info.
This can be used much more generically so can for example use:
hasys -modify small_sys Limits Memory 16 CPU 400 hasys -modify big_sys Limits Memory 32 CPU 800 hagrp -modify sg1 Prerequisites Memory 2 CPU 25 hagrp -modify sg2 Prerequisites Memory 8 CPU 250
So here this is saying small_sys has 16GB memory and 4 CPUs and big_sys has 16GB memory and 8 CPUs and sg1 needs 2GB memory and 1/4 of a CPU and sg2 needs 8GB memory and 2.5 CPU. So this would mean the small_sys could not run 2 sevivce groups like sg2 as this would require CPU=500 and there is only 400, but big_sys could run 3 groups like sg2.
Mike
07-20-2012 02:10 AM
I think i would need example for giving correct answers.
however here is some input:
1. you can make two service group not sharing a node at the same time, you could use the 'offline local' dependency. for example, SG1->SG2 with 'offline local' dependency. here either SG1 is online on a node or SG2.
2. If you need SG1 for SG2 to go online, but want them to occupy two different nodes, you could use 'online remote' dependency.
Please provide more input with example for your need.
Regards,
Amit Rangari
07-20-2012 02:55 AM
Best to use System limits and service group prerequisites so make up a variable (say NumSGs) to set to 1 so for example run the following for each system:
hasys -modify sys_name Limits NumSGs 1
Then for each service group run:
hagrp -modify sg_name Prerequisites NumSGs 1
This means the limit of NumSGs on sys_name is 1, so when group sg_name runs on this system the Available limit of NumSGs becomes 0 and then it can't run any more service groups that require NumSGs - see "Service group workload management" in VCS admin guide for more info.
This can be used much more generically so can for example use:
hasys -modify small_sys Limits Memory 16 CPU 400 hasys -modify big_sys Limits Memory 32 CPU 800 hagrp -modify sg1 Prerequisites Memory 2 CPU 25 hagrp -modify sg2 Prerequisites Memory 8 CPU 250
So here this is saying small_sys has 16GB memory and 4 CPUs and big_sys has 16GB memory and 8 CPUs and sg1 needs 2GB memory and 1/4 of a CPU and sg2 needs 8GB memory and 2.5 CPU. So this would mean the small_sys could not run 2 sevivce groups like sg2 as this would require CPU=500 and there is only 400, but big_sys could run 3 groups like sg2.
Mike
07-20-2012 05:04 AM
mikebounds you nailed :)
After of post the question I see this:
https://www-secure.symantec.com/connect/blogs/understanding-veritas-cluster-server-limits-and-prerequisites
I think that this are the solution.
regards!