Aug 142012
 

Pacemaker + drbdの構成でリソースレベルフェンシングをやってみました。
8.3. Using resource-level fencing in Pacemaker clusters

drbdのリソースに以下を設定してみます。

resource <resource> {
  disk {
    fencing resource-only;
    ...
  }
  handlers {
    fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
    after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
    ...
  }
  ...
}

Masterな状態で動作している1号機(pcmk-1)のN/Wを切断すると2号機(pcmk-2)がMasterになります。
その際以下のlocationが設定されてpcmk-2以外のスコアが-INFINITYに設定されることが確認できました。

<rsc_location rsc="WebDataClone" id="drbd-fence-by-handler-wwwdata-WebDataClone">
  <rule role="Master" score="-INFINITY" id="drbd-fence-by-handler-wwwdata-rule-WebDataClone">
    <expression attribute="#uname" operation="ne" value="pcmk-2" id="drbd-fence-by-handler-wwwdata-expr-WebDataClone"/>
  </rule>
</rsc_location>

この状態で1号機が復活しても、cibには上記locationが設定されているのでMasterになれないことになります。
データが同期されるとafter-resync-target指定のスクリプトが実行され、locationの制約が削除されます。

Sorry, the comment form is closed at this time.