Hi, Andrew Beekhof <[EMAIL PROTECTED]> wrote: > > On Nov 20, 2007, at 10:38 AM, Sebastian Reitenbach wrote: > > > Hi, > > Andrew Beekhof <[EMAIL PROTECTED]> wrote: > >> > >> On Nov 20, 2007, at 9:41 AM, Sebastian Reitenbach wrote: > >> > >>> Hi, > >>> Andrew Beekhof <[EMAIL PROTECTED]> wrote: > >>>> > >>>> On Nov 19, 2007, at 6:40 PM, Sebastian Reitenbach wrote: > >>>> > >>>>> Hi, > >>>>> > >>>>> I try to add a bit memory management monitoring of services within > >>>>> the Xen > >>>>> resource, as I am usually interested in the services that the Xen > >>>>> resource > >>>>> provides and not whether Xen runs or not. I already got a lot of > >>>>> valuable > >>>>> feedback from Dejan, the state can be tracked here: > >>>>> http://developerbugs.linux-foundation.org/show_bug.cgi?id=1778 > >>>>> > >>>>> The problems right now are: > >>>>> 1) how to handle paused domU's > >>>>> 2) how to handle memory management > >>>>> > >>>>> The first is a bit work, but easy, before every action check in > >>>>> which > >>>>> condition the domU is, e.g. running/stopped/paused/... and then > >>>>> handle that > >>>>> situation accordingly. > >>>>> > >>>>> The second one is a bit trickier. > >>>>> Right now I have the Xen script working this way on startup/stop > >>>>> of > >>>>> the > >>>>> domU: > >>>>> 1. check how many memory is available > >>>>> 2. subtract the reserved memory for the dom0 > >>>>> 3. check how many domains will after that action running, divide > >>>>> the > >>>>> result > >>>>> from step two with that number > >>>>> 4. set xm mem-set the memory for all virtual machines > >>>>> > >>>>> This is a very basic way to give all virtual machines more or less > >>>>> the same > >>>>> amount of memory. Nevertheless, in case more than one Xen resource > >>>>> is > >>>>> starting or stopping, this behavior is prone to race conditions, > >>>>> and I > >>>>> already have seen it failing. > >>>>> My workaround was to create orders, with symmetrical=no and > >>>>> score=0 > >>>>> for all > >>>>> Xen resources, so that only one can start at a time. > >>>> > >>>> clones have an ordered=true option > >>>> > >>>> it hasn't been used much so it may not be perfect - but if you find > >>>> any problems you can be sure i'll fix them promptly > >>> I am not sure, how to configure that. > >> > >> same way you set clone-node-max > >> > >>> > >>> I have four different Xen domU's, but I think the clone would try to > >>> run the > >>> same domU on different hosts, trashing my filesystem? > >> > >> oh, its just a regular resource > >> never mind then... yes, rsc_order is the correct way to do this. > >> > >> i was thinking that you had a clone which started a different > >> instance > >> depending on the clone number > > Ah, but when I change the resource script to start different domains > > based > > on the clone instance number, then I am still unable to assign > > location > > constraints to the clone instances. I just tried that in the GUI, > > there are quite a few things that are possible without the gui > > > but I only > > was able to select the whole clone set, but not a dedicated clone. > > I want to define different preferred locations for each Xen domU. > > > > As I have seen that the additional order constraint needed for > > multiple Xen > > resources can be easily forgotten, I'd like to have a different way > > without > > the need of such an extra constraint. > > > >> > >>> > >>> I can configure four clone sets (clone-node-max == > >>> clone-max == 1) but that would not make more sense than four > >>> ordinary > >>> resources, with an order constraint configured. > >>> When I configure groups, then I cannot configure cloned resources in > >>> it. > >>> > >>> Also when I create a group, ordered=yes collocated=no I don't think > >>> that > >>> will work, because afaik then I cannot define location constraints > >>> on the > >>> Xen resources in the group, but only to the group itself. > > sure you can > > >>> > >>> > >>> Can you give me any more hint what you thought how it should work? > >>> > >>> thanks > >>> Sebastian > >>>> > >>>>> > >>>>> Dejan suggested to add locking to the Xen resource script, but I > >>>>> fear that > >>>>> this will lead to new errors, e.g. assume the default-action- > >>>>> timeout=30s > >>>>> and you have 4 Xen resources, and all four will start up at the > >>>>> same > >>>>> time, > >>>>> then the first, will aquire the lock, the rest is waiting. Maybe > >>>>> everything > >>>>> will work for the second Xen resource too. But I assume then the > >>>>> startup of > >>>>> 3 and 4 will fail, because the default-action-timeout was hit. > >>>>> > >>>>> Is it possible serialize actions of a given type of resource? > >>>> > >>>> as above, yes :-) > >>>> at least for starts and stops > >>>> > >>>> groups, clones and master/slave all support the ordered option and > >>>> the > >>>> lrmd takes care of primitives. > >>>> > >>>>> > >>>>> e.g. the Xen resource could be marked as serialization needed, > >>>>> that > >>>>> means, > >>>>> in case there are multiple Xen resources in a cluster, actions to > >>>>> these > >>>>> resources are not allowed to happen at the same time? > >>>>> So that not the Xen resource script would be responsible for > >>>>> locking > >>>>> and > >>>>> allowing/disallowing actions to itself, but the CRMD is > >>>>> responsible. > >>>>> This could be made more fine-grained, in case you say, it is not > >>>>> allowed to > >>>>> have action for resource Xen at the same time on the same node, > >>>>> but > >>>>> it is > >>>>> allowed to have multiple actions to the Xen resource in the > >>>>> cluster. > >>>> > >>>> that we cant do - at the crm level its cluster-wide or not at all > > Anyway, a cluster wide solution on the crm level would work for me. > > that what rsc_order constraints are for. Then, how would I configure that? I want to start/stop Xen domains in arbitrary order, but I cannot seem to get it to work with rsc_order? I tried rsc_orders with symmetrical=no, and a score of -INFINITY and also 0, but I don't get it that flexible. The best success I had with these rsc_orders:
<constraints> <rsc_order id="HOME_before_PUBLIC" from="NFS_HOME" type="before" to="NFS_PUBLIC" symmetrical="no" score="-INFINITY"/> <rsc_order id="PUBLIC_before_FTP" from="NFS_PUBLIC" type="before" to="FTP" symmetrical="no" score="-INFINITY"/> <rsc_order id="FTP_before_LDAP" from="FTP" type="before" to="LDAP" symmetrical="no" score="-INFINITY"/> </constraints> But when I had e.g. NFS_PUBLIC target_role=stopped, all the other three had target_role=started. Then marked the node active, the NFS_HOME started, as expected, but not the FTP and LDAP domU's. With a score="0", the xend got overloaded, and the startup of the xen domains failed at all. kind regards Sebastian > > > > > Then the RA script can be marked as needing clusterwide serialized > > actions. > > Then there would not be an additional > > > > If that makes sense to anyone else but me, I'd go create an > > enhancement > > request in bugzilla. > > > > kind regards > > Sebastian > > > > _______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
