Product SiteDocumentation Site

8.4. Using Rules to Determine Resource Location

If the constraint’s outer-most rule evaluates to false, the cluster treats the constraint as if it was not there. When the rule evaluates to true, the node’s preference for running the resource is updated with the score associated with the rule.
Dacă acest lucru sună cunoscut, este datorită faptului că deja folosiţi o sintaxă simplificată pentru regulile de restricţie a locaţiei. Consideraţi următoarea restricţie de locaţie:

Exemplu 8.8. Împiedică myApacheRsc de a rula pe c001n03

<rsc_location id="dont-run-apache-on-c001n03" rsc="myApacheRsc"
              score="-INFINITY" node="c001n03"/>

Aceaastă restricţie poate fi scrisă mai elaborat ca:

Exemplu 8.9. Împiedică myApacheRsc de a rula pe c001n03 - versiunea extinsă

<rsc_location id="dont-run-apache-on-c001n03" rsc="myApacheRsc">
    <rule id="dont-run-apache-rule" score="-INFINITY">
      <expression id="dont-run-apache-expr" attribute="#uname"
        operation="eq" value="c00n03"/>
    </rule>
</rsc_location>

Avantajul folosirii formei extinse este că se pot adăuga clauze suplimentare la regulă, cum ar fi limitarea regulii astfel încât să se aplice doar în momente specifice ale zilei sau zilelor săptămânii (acest lucru este discutat în secţiunile următoare).
It also allows us to match on node properties other than its name. If we rated each machine’s CPU power such that the cluster had the following nodes section:

Exemplu 8.10. Un exemplu de secţiune de noduri pentru utilizarea cu score-attribute

<nodes>
   <node id="uuid1" uname="c001n01" type="normal">
      <instance_attributes id="uuid1-custom_attrs">
        <nvpair id="uuid1-cpu_mips" name="cpu_mips" value="1234"/>
      </instance_attributes>
   </node>
   <node id="uuid2" uname="c001n02" type="normal">
      <instance_attributes id="uuid2-custom_attrs">
        <nvpair id="uuid2-cpu_mips" name="cpu_mips" value="5678"/>
      </instance_attributes>
   </node>
</nodes>

atunci am putea împiedica resursele de a rula pe maşini fără nivelul de procesare cerut cu această regulă
<rule id="need-more-power-rule" score="-INFINITY">
   <expression id=" need-more-power-expr" attribute="cpu_mips"
               operation="lt" value="3000"/>
</rule>

8.4.1. Folosind score-attribute în loc de score

Când folosim score-attribute în loc de score, fiecare nod care se potriveşte regulii va avea scorul acestuia ajustat în mod diferit, în funcţie de valoarea sa pentru atributul numit de nod. Prin urmare în exemplul anterior, dacă o regulă folosea score-attribute="cpu_mips", c001n01 ar avea preferinţa proprie de a rula resursa crescută cu 1234 în timp ce c001n02 ar avea preferinţa crescută cu 5678.