>>> On Fri, Apr 20, 2007 at 10:05 PM, in message <[EMAIL PROTECTED]>, "Andrew Beekhof" <[EMAIL PROTECTED]> wrote: > If rsc_colocation and rsc_location were the same then we wouldn't need > two names, but they are different and behave accordingly.
I suppose I'm struggling with the fact that apply -INFINITY rsc_location constraints can make a resource unable to run anywhere, whilst +INFINITY can't do that. This alone makes them inexact inverses. -> unintuitive. but I suppose as Alan said, "it's an idiom, learn it!" > > If anything, rsc_colocation would be changed to be more like > rsc_location but there are technical and cognitive limitations that > currently prevent this. whatever happens here, I hope you agree we _must_ keep the ability to force two resource to colocate, or fail (at least one) to run. > > The idea of having +INFINITY (in the context of rsc_location) mean a > resource can _only_ run on that node is more than slightly absurd for > a _high_availability_ project. mmm. I do see your point. From that point of view, having to specify a number of -INFINITY resources it fine by me. > > Perhaps thats why I rarely need to explain this - because very few > people want to add resources that run only on one node. It also > sounds like you should be using symmetric_cluster=false as that seems > more appropriate for the type of cluster you're building. Not sure about that. I still have about 18 resources that should be treated symmetrically, and only 1 that doesn't. In that case, which should win? > > > On 4/20/07, Yan Fitterer <[EMAIL PROTECTED]> wrote: >> >>> On Fri, Apr 20, 2007 at 3:42 PM, in message >> <[EMAIL PROTECTED]>, "Andrew Beekhof" >> <[EMAIL PROTECTED]> wrote: >> > On 4/20/07, Yan Fitterer <[EMAIL PROTECTED]> wrote: >> >> >> In the attached pe- warn, why is resource R_audit being started on >> >> >> idm01 when there is an INFINITY constraint with uname eq idm04? >> >> >> >> >> >> BTW - idm04 is in standby at the moment. That should hardly matter. >> >> >> I >> >> >> expect the resource to be "cannot run anywhere". >> >> >> >> >> >> I really hope it's not a typo, but I have read it as much as I can, >> >> >> and I can't see it... >> >> >> >> >> >> Thanks Yan >> >> > >> >> > So, there is only one place it can be run, and it has score 0. (It >> >> > can't run on a machine in standby). >> >> > >> >> > So, it gets run there. >> >> > >> >> > What's the problem? >> >> >> >> The problem is that I need the resource to _ONLY_ run on IDM04, or not at >> > all. Yes, I know, this is not clustering, or HA, but there is a good > reason. >> >> >> >> If you want the long story, the reason for that is that resource R_audit > (an >> > instance of Novell Audit) is not meant to be clustered here, but depends on >> > resource R_workforce_edir (eDirectory instance), which IS clustered. The >> > issue is that Novell Audit must start after eDirectory (Audit configuration >> > is stored in eDir). So the best way I could think of achieving that, was to >> > created a resource for Audit, with an order constraint between eDirectory > and >> > Audit. But since Audit isn't really clustered (executables on one node > only), >> > I need to make it run on IDM04, or nowhere. That what I thought INFINITY >> > would mean. >> >> >> >> If - INFINITY achieves that, but INFINITY doesn't, then it looks like >> >> broken >> > logic to me, where INFINITY is not the exact opposite of - INFINITY. If >> > this > is >> > really "works as designed", it is very highly counter- intuitive, and IMHO >> > should be considered a bug. >> >> >> >> Actually, INFINITY in colocation constraints _does_ mean, "work here or >> > nowhere". Why would it be different for location constraints? >> > >> > because there is no concept of if you can't run with rscX, try rscY >> > and then rscZ. >> > >> > ideally that might be nice capability to have, but we don't allow that >> > in order to make resource placement solvable. >> > >> > >> > "symmetric_cluster=true & - INFINITY" >> > is the inverse of >> > "symmetric_cluster=false & +INFINITY" >> > >> > >> > if you say: symmetric_cluster=true >> > then you're saying resources can run anywhere by default. >> > if there is somewhere a resource can't run, then you have to >> > explicitly say so with - INFINITY. >> > >> > its the reverse of symmetric_cluster=false, where resources can't run >> > anywhere by default and you need explicitly say where they can run. >> > >> > >> > this particular aspect of configuration has been documented for a long >> > time, but perhaps Alan would feel better if it was added to his idioms >> > document as well. >> > >> > >> > sure, we could make >> > rsc_location(rscX, nodeX, INFINITY) >> > also modify >> > node in ( [nodes] - nodeX ) >> > >> > but then if you say: >> > rsc_location(rscX, nodeX, INFINITY) >> > rsc_location(rscX, nodeY, 10000) >> > rsc_location(rscX, nodeZ, 100) >> > >> > then it cant still only ever run on nodeX, because - INFINITY+10000 ::= >> > - INFINITY >> >> All this makes perfect sense, just as long as one forgets that with the > current design, INFINITY and - INFINITY: >> >> - aren't exact inverses >> - don't behave in the same way depending on the context (colocation vs > location for ex) >> - sound pretty absolute, but aren't. >> - do "what is says on the tin" only sometimes (i.e. INFINITY is >> intuitively > expected to be absolute, whether negative of positive) >> >> Another problem with not being able to positively restrict a resource to a > node (or set of), is that it will again not be intuitive (and safe!) behavior > when adding new nodes to existing cluster(s). >> >> This doesn't feel to me like a sustainable long- term solution, even though >> I > can follow all the arguments (and agree that they are valid too...) that > underpin the current way of working. >> >> How many times, Andrew, can you bear to explain this to people like me? Even > assuming I'm dimmer than most, there will still be plenty to waste everbody's > time getting their nose bloodied with something that requires extensive study > of the various design implications of resource placement computations to > grasp correctly. >> >> I for one, have read most of the INFINITY / - INFINITY debate, but it is > intricate enough that simply reading about it without the practice meant that > the exact details were quickly forgotten. I simply couldn't believe that a > premise as obvious as "INFINITY location constraint => run here and nowhere > else" would be false. >> >> I do hope this will be on the list of things to be addressed at some point > in the future - I still think it's broken. >> >> Yan >> >> >> >> _______________________________________________ >> Linux- HA mailing list >> Linux- [EMAIL PROTECTED] ha.org >> http://lists.linux- ha.org/mailman/listinfo/linux- ha >> See also: http://linux- ha.org/ReportingProblems >> > _______________________________________________ > Linux- HA mailing list > Linux- [EMAIL PROTECTED] ha.org > http://lists.linux- ha.org/mailman/listinfo/linux- ha > See also: http://linux- ha.org/ReportingProblems _______________________________________________ Linux-HA mailing list Linux-HA@lists.linux-ha.org http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems