No subject


Thu Oct 27 00:53:32 UTC 2011


modifies utilization of resource automatically.=0A=0A---=0A heartbeat/Virtu=
alDomain |   67 +++++++++++++++++++++++++++++++++++++++++++++++=0A 1 files =
changed, 67 insertions(+), 0 deletions(-)=0A=0Adiff --git a/heartbeat/Virtu=
alDomain b/heartbeat/VirtualDomain=0Aindex 0786944..d9321d9 100755=0A--- =
a/heartbeat/VirtualDomain=0A+++ b/heartbeat/VirtualDomain=0A@@ -19,9 =
+19,15 @@=0A # Defaults=0A OCF_RESKEY_force_stop_default=3D0=0A OCF_RESKEY_=
hypervisor_default=3D"$(virsh --quiet uri)"=0A+OCF_RESKEY_dynamic_utilizati=
on_default=3D"true"=0A+OCF_RESKEY_set_utilization_cpu_default=3D"true"=0A+O=
CF_RESKEY_set_utilization_memory_default=3D"true"=0A =0A : ${OCF_RESKEY_for=
ce_stop=3D${OCF_RESKEY_force_stop_default}}=0A : ${OCF_RESKEY_hypervisor=3D=
${OCF_RESKEY_hypervisor_default}}=0A+: ${OCF_RESKEY_dynamic_utilization=3D$=
{OCF_RESKEY_dynamic_utilization_default}}=0A+: ${OCF_RESKEY_set_utilization=
_cpu=3D${OCF_RESKEY_set_utilization_cpu_default}}=0A+: ${OCF_RESKEY_set_uti=
lization_memory=3D${OCF_RESKEY_set_utilization_memory_default}}=0A =
#######################################################################=0A =
=0A ## I'd very much suggest to make this RA use bash,=0A@@ -117,6 +123,28 =
@@ Be sure to set the timeout of these operations to accommodate this =
delay.=0A <content type=3D"string" default=3D"" />=0A </parameter>=0A =
=0A+<parameter name=3D"dynamic_utilization" unique=3D"0" required=3D"0">=0A=
+<longdesc lang=3D"en">=0A+If set, the utilization parameter of resource =
will be reset if there are=0A+difference between resource parameters and =
system parameters when agent monitor.=0A+Otherwise, the resource parameters=
 will be set once when agent start.=0A+</longdesc>=0A+<shortdesc lang=3D"en=
">Set utilization of resource when agent monitor</shortdesc>=0A+<content =
type=3D"boolean" default=3D"true" />=0A+</parameter>=0A+=0A+<parameter =
name=3D"set_utilization_cpu" unique=3D"0" required=3D"0">=0A+<longdesc =
lang=3D"en">Enable setting cpu of utilization.</longdesc>=0A+<shortdesc =
lang=3D"en">Enable setting cpu of utilization</shortdesc>=0A+<content =
type=3D"boolean" default=3D"true" />=0A+</parameter>=0A+=0A+<parameter =
name=3D"set_utilization_memory" unique=3D"0" required=3D"0">=0A+<longdesc =
lang=3D"en">Enable setting memory of utilization.</longdesc>=0A+<shortdesc =
lang=3D"en">Enable setting memory of utilization</shortdesc>=0A+<content =
type=3D"boolean" default=3D"true" />=0A+</parameter>=0A+=0A </parameters>=
=0A =0A <actions>=0A@@ -133,6 +161,33 @@ Be sure to set the timeout of =
these operations to accommodate this delay.=0A EOF=0A }=0A =0A+set_utilizat=
ion() {=0A+    local dom_cpu dom_mem=0A+    local uti_cpu uti_mem=0A+=0A+  =
  read dom_cpu dom_mem <<EOF=0A+$(LANG=3DC virsh $VIRSH_OPTIONS dominfo =
${DOMAIN_NAME} |=0A+awk '/CPU\(s\)/{cpu=3D$2} /Max memory/{mem=3D$3} =
END{printf("%d %d\n", cpu, mem/1024)}')=0A+EOF=0A+    uti_cpu=3D$(crm_resou=
rce -Q -r $OCF_RESOURCE_INSTANCE -z -g cpu 2>/dev/null)=0A+    uti_mem=3D$(=
crm_resource -Q -r $OCF_RESOURCE_INSTANCE -z -g hv_memory 2>/dev/null)=0A+=
=0A+    if [ "$OCF_RESKEY_set_utilization_cpu" =3D "true" -o "$OCF_RESKEY_s=
et_utilization_cpu" =3D "1" ]; then=0A+        if [ "$dom_cpu" !=3D =
"$uti_cpu" ]; then=0A+            if ! crm_resource -r $OCF_RESOURCE_INSTAN=
CE -z -p cpu -v $dom_cpu; then=0A+                ocf_log warn "Failed to =
set cpu of utilization by crm_resource."=0A+            fi=0A+        =
fi=0A+    fi=0A+    if [ "$OCF_RESKEY_set_utilization_memory" =3D "true" =
-o "$OCF_RESKEY_set_utilization_memory" =3D "1" ]; then=0A+        if [ =
"$dom_mem" !=3D "$uti_mem" ]; then=0A+            if ! crm_resource -r =
$OCF_RESOURCE_INSTANCE -z -p hv_memory -v $dom_mem; then=0A+               =
 ocf_log warn "Failed to set hv_memory of utilization by crm_resource."=0A+=
            fi=0A+        fi=0A+    fi=0A+}=0A+=0A # Set options to be =
passed to virsh:=0A VIRSH_OPTIONS=3D"--connect=3D${OCF_RESKEY_hypervisor} =
--quiet"=0A =0A@@ -236,6 +291,11 @@ VirtualDomain_Start() {=0A     while ! =
VirtualDomain_Monitor; do=0A 	sleep 1=0A     done=0A+=0A+    if [ =
"$OCF_RESKEY_dynamic_utilization" =3D "false" -o "$OCF_RESKEY_dynamic_utili=
zation" =3D "0" ]; then=0A+        set_utilization=0A+    fi=0A+=0A     =
return $OCF_SUCCESS=0A }=0A =0A@@ -404,6 +464,13 @@ VirtualDomain_Monitor()=
 {=0A 	    fi=0A 	done=0A     fi=0A+=0A+    if [ "$OCF_RESKEY_dynamic=
_utilization" =3D "true" -o "$OCF_RESKEY_dynamic_utilization" =3D "1" ]; =
then=0A+        if ocf_is_probe; then=0A+            set_utilization=0A+   =
     fi=0A+    fi=0A+=0A     return ${rc}=0A }=0A =0A-- =0A1.6.4.2=0A=0A
--=__Part4E61A778.0__=--


More information about the ha-wg-technical mailing list