Product SiteDocumentation Site

8.5. Folosind Reguli pentru a Controla Opţiunile Resurselor

Often some cluster nodes will be different from their peers; sometimes these differences (the location of a binary or the names of network interfaces) require resources to be configured differently depending on the machine they’re hosted on.
Prin definirea de obiecte multiple instance_attributes pentru resursă şi prin adăugarea unei reguli pentru fiecare, putem gestiona facil aceste cazuri speciale.
În exemplul de mai jos, mySpecialRsc va folosi eth1 şi portul 9999 când va rula pe node1, eth2 şi portul 8888 pe node2 şi va avea valorea implicită eth0 şi portul 9999 pentru toate celelalte noduri.

Exemplu 8.11. Definirea de opţiuni de resursă diferite pe baza numelui nodului

<primitive id="mySpecialRsc" class="ocf" type="Special" provider="me">
   <instance_attributes id="special-node1" score="3">
    <rule id="node1-special-case" score="INFINITY" >
     <expression id="node1-special-case-expr" attribute="#uname"
       operation="eq" value="node1"/>
    </rule>
    <nvpair id="node1-interface" name="interface" value="eth1"/>
   </instance_attributes>
   <instance_attributes id="special-node2" score="2" >
    <rule id="node2-special-case" score="INFINITY">
     <expression id="node2-special-case-expr" attribute="#uname"
       operation="eq" value="node2"/>
    </rule>
    <nvpair id="node2-interface" name="interface" value="eth2"/>
    <nvpair id="node2-port" name="port" value="8888"/>
   </instance_attributes>
   <instance_attributes id="defaults" score="1" >
    <nvpair id="default-interface" name="interface" value="eth0"/>
    <nvpair id="default-port" name="port" value="9999"/>
   </instance_attributes>
</primitive>

Ordinea în care obiectele instance_attributes sunt evaluate este determinată de către scorul acestora (cel mai mare la cel mai mic). Dacă nu este furnizat, scorul va avea valoarea implicită zero şi obiectele cu un scor egal sunt procesate în ordinea listată. Dacă obiectul instance_attributes nu are o rule sau are o rule care este evaluată la true, atunci pentru orice parametru pentru care resursa nu are înca o valoare, resursa va folosi valorile parametrilor definite de obiectul instance_attributes.