[Pacemaker] Announce: Making Resource Utilization Dynamic
Michael Schwartzkopff
misch at clusterbau.com
Wed Jun 12 05:13:13 UTC 2013
Am Mittwoch, 12. Juni 2013, 08:06:43 schrieb Andrew Beekhof:
> On 08/06/2013, at 6:49 PM, Michael Schwartzkopff <misch at clusterbau.com>
wrote:
> > Am Donnerstag, 6. Juni 2013, 14:08:26 schrieb Andrew Beekhof:
> > > On 06/06/2013, at 4:44 AM, Michael Schwartzkopff <misch at clusterbau.com>
wrote:
> > > > Hi,
> > > >
> > > > I was not satisfied with the situation that the utilization of
> > > > resources
> > > > is static. This is not how real world resources behave. Especially
> > > > virtual guests in a clustered environment show daily load patterns. So
> > > > I
> > > > thought it would be a good idea to make the utilization of resources
> > > > dynamic. I worte a small patch for the VirtualDomain resource agent
> > > > that
> > > > updates the CPU utilization every time it monitors the resource.
> > > >
> > > > Please read about the background in the following article:
> > > >
> > > > http://www.sys4.de/de/blog/54/
> > > >
> > > >
> > > > Any comments?
> > > > Where can I send the patch to?
> > >
> > > What patch :)
> > > I see a code fragment but no context.
> >
> > Patch:
> >
> > --- VirtualDomain.orig 2013-06-08 10:24:54.403863313 +0200
> > +++ VirtualDomain.new 2013-06-08 10:43:16.184253755 +0200
> > @@ -187,6 +187,15 @@
> >
> > dom_mem=$(LANG=C virsh $VIRSH_OPTIONS dominfo ${DOMAIN_NAME} | awk
> > '/Max memory/{printf("%d", $3/1024)}') test -n "$dom_mem" &&
> > set_util_attr hv_memory "$dom_mem"
> >
> > fi
> >
> > +
> > + if [ -x /usr/bin/virt-top ]; then
> > + CPUS=$(/usr/bin/virsh nodeinfo | awk '/CPU\(s/ {print $2}')
> > + CPU_TICKS=$(/usr/bin/virt-top -n 2 -d 5 --stream | grep
> > $DOMAIN_NAME | tail -1 | awk '{printf "%.0f",$7}') +
> > OLD_TICKS=$(crm_resource -r $OCF_RESOURCE_INSTANCE -z -g ticks) +
> > NEW_TICKS=$(((OLD_TICKS + CPU_TICKS * CPUS) / 2))
> > + /usr/sbin/crm_resource -r $OCF_RESOURCE_INSTANCE -z -p ticks -v
> > ${NEW_TICKS} + fi
> > +
> >
> > }
> >
> > # Set options to be passed to virsh:
> > > Also, what does the resource/constraint config look like?
> >
> > primitive resMyDomain ocf:heartbeat:VirtualDomain params config="..."
> >
> > no constraints.
>
> Ok, let me rephrase... is there any part of the config that makes use of the
> values the RA defines?
Perhaps I did not get the question right. But the rest is done by pacemaker
automagically. If you set the utilizations of a node to 400 ticks and a
VirtualDomain resources together consume more than 400 ticks pacemaker
migrates at least one of the resources away from that node.
On the other hand if I set the utiliztion-strategy="minimal" pacemaker would
migrate all resources to the minimal nodes possible without overloading one
node. But whom do I tell ...
My idea is to switch off nodes if no resources run on that nodes and to switch
on them again as utilization consumtion rises again. For that purpose I wrote
a new Resource Agent that I want to publish in a next blog entry.
Given that setup you could save energy by running only as many nodes as really
nescessary to deal with the utilizations of the resources.
--
Dr. Michael Schwartzkopff
Guardinistr. 63
81375 München
Tel: (0163) 172 50 98
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20130612/ac5cb42d/attachment.htm>
More information about the Pacemaker
mailing list