Egal, um welchen Dienst es sich dreht, den Benutzern geht es immer zu langsam. Der Schwerpunkt des ADMIN-Magazins 05/2011 verrät, mit welchen Tools man ... (mehr)

Das Master-Slave-Setting

Damit die DRBD-Ressource tatsächlich von Pacemaker gesteuert wird, fehlt noch das bereits erwähnte Master-Slave-Setting. Die Syntax einer solchen Regel ist diese:

ms 
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Name der Master-Slave-Ressource
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->

<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Name der Ressource, auf die sie sich 
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->

<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
bezieht meta-Attribute
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->

Ein funktionierendes Master-Slave-Setup für die vormals konfigurierte DRBD-Primitive-Ressource wäre diese:

ms ms_drbd_mysql res_drbd_mysql meta clone-max="2" master-max="1" master-node-max="1" clone-node-max="1" notify="true" target-role="Master"

»ms_drbd_mysql« legt dabei den Namen der Master-Slave-Resource fest, und »res_drbd_mysql« legt fest, dass sich die Master-Slave-Regel auf die DRBD-Ressource »res_drbd_mysql« bezieht. Die »meta« -Paramater scheinen konfus, sind aber treffend:

  • »clone-max« legt fest, dass die Ressource zu jedem Zeitpunkt auf höchstens zwei Knoten im Cluster gleichzeitig laufen darf.
  • »master-max« legt fest, dass es zu jeder Zeit nur einen Knoten im Cluster geben darf, auf dem die Ressource im »Master« -Modus läuft.
  • »master-node-max« legt fest, dass auf diesem Knoten jeweils nur eine Instanz der Ressource im Master-Modus laufen darf.
  • »clone-node-max« sorgt dafür, dass auf einem Clusterknoten nur eine Kopie dieser Ressource vorhanden sein darf.

An dieser Stelle wird deutlich, dass Master-Slave-Setups eigentlich für umfangreichere Aufgaben vorgesehen sind, als sich mit einer DRBD-Ressource bewerkstelligen lassen. »master-node-max« und »clone-node-max« sind im Falle von DRBD eigentlich überflüssig, müssen aber trotzdem angegeben werden

Wenn die »primitive« -Ressource für DRBD sowie die dazu gehörende »Master-Slave-Ressource« in der CRM-Shell hinzugefügt sind, katapultiert »commit« im »configure« -Abschnitt der CRM-Shell die Änderungen in den Cluster. Ein »crm_mon -rf« zeigt die Ressourcen an – das Ergebnis sollte dann aussehen wie in Abbildung 2 . Damit ist die Konfiguration von DRBD für Pacemaker abgeschlossen. Der Clustermanager wird ab sofort versuchen, die DRBD-Ressource jederzeit auf einem der beiden Cluster-Knoten im Modus »Primary« zu betreiben.

Abbildung 2: Constraints sorgen in Pacemaker dafür, dass die Ressourcen, die zusammengehören, auch zusammen auf dem gleichen Knoten laufen.

Automatisch mounten

Für das Beispiel dieses Artikels ist es mit DRBD allein allerdings noch nicht getan. Denn auch, wenn Pacemaker die DRBD-Ressource auf einem Knoten ordnungsgemäß in den »Primary« -Modus schaltet, fehlt noch immer der automatische Mount-Vorgang, um das Dateisystem tatsächlich verwenden zu können. Zusätzlich zur DRBD-Ressource samt Master-Slave-Setup muss deshalb auch eine Ressource für eben diesen Mount in die Clusterkonfiguration. Der für Mountvorgänge vorhandene Ressource-Agent entstammt der OCF-Klasse, kommt vom Anbieter Heartbeat und heißt Filesystem. Somit könnte eine brauchbare Filesystem-Ressource für das »mysql« -DRBD so aussehen:

primitive res_fs_mysql ocf:heartbeat:Filesystem \
params device="/dev/drbd/by-res/mysql/0" directory="/mnt/mysql"  fstype="ext3"options="noatime" \
op start interval="0"  timeout="180s" \op stop interval="0"  timeout="300s" \op monitor interval="60s"

In der »params« -Zeile bezeichnet »device« das Device, welches gemountet werden soll – im Beispiel also die DRBD-Ressource. »directory« legt den Mountpoint fest, »fstype« und »options« funktionieren analog zu den Parametern »-t« sowie »-o« bei »mkfs« . Nachdem die Zeile oben so in der CRM-Shell eingetippt ist, aktiviert »commit« sie im Cluster. Die DRBD-Ressource ist damit vorhanden – es fehlen noch die passenden Constraints, um die beiden Ressourcen auf denselben Knoten des Clusters zu zwingen.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023