DRBD - Computec IT

Werbung
Multi-State Ressourcen
●
●
●
Es gibt Ressourcen, die in mehreren Zuständen vorliegen
können. Beispiel: DRBD als Master und Slave.
Darstellung in pacemaker durch Superset von
Klon-Ressourcen.
Zusätzliche Attribute:
Maximale Anzahl von Mastern im Cluster.
–
master­max
–
master­node­max Maximale Anzahl von Mastern auf einem Knoten.
20130705­LinuxCluster_Medialinx
Einschub: DRBD
●
DRBD ist RAID1 zwischen zwei Rechnern.
node1
node2
Redundante Kommunikation
Replikation auf Blockebene
20130705­LinuxCluster_Medialinx
DRBD: Konfiguration
resource r0 {
device /dev/drbd0;
disk /dev/sdb1;
meta­disk internal;
on node1 {
address 192.168.100.1:7789;
}
on node2 {
address 192.168.100.2:7789;
}
}
20130705­LinuxCluster_Medialinx
Multi-State: Beispiel
<master id="msDRBD">
<meta_attributes id="msDRBD­meta_attributes">
<nvpair id="meta_notify" name="notify" value="true"/>
<nvpair id="meta_clone­max" name="clone­max" value="2"/>
<nvpair id="meta_clone­node­max" name="clone­node­max" value="1"/>
<nvpair id="meta_master­max" name="master­max" value="1"/>
<nvpair id="meta_master­node­max" name="master­node­max" value="1"/>
</meta_attributes>
<primitive id="resDRBD" class="ocf" provider="linbit" type="drbd"/>
<instance_attributes id="resource_drbd_instance_attrs">
<nvpair id="drbd_res" name="drbd_resource" value="r0"/>
</instance_attributes>
</master>
20130705­LinuxCluster_Medialinx
Multistate Beispiel (II)
primitive resDRBD ocf:linbit:drbd \
params drbd_resource="r0" ms msDRBD resDRBD meta notify="true"
20130705­LinuxCluster_Medialinx
DRBD – Split Brain
●
DRBD in Version 8 hat keine redundante Kommunikation.
●
Was passiert, wenn diese unterbrochen wird ...
●
●
–
... und der CRM den bisheriger Secondary zum Primary befördert?
–
Split Brain mit unterschiedlichem Datenstand!
Deshalb STONITH, um sicherzustellen, dass ein fehlerhafter
Knoten auch tatsächlich keinen Unfug mehr anstellen kann.
Zusätzlich: Zwei sync – Schnittstellen zu einem bond
zusammenfassen. Gibt u. U. auch den doppelten Durchsatz.
20130705­LinuxCluster_Medialinx
DRBD in CentOS 6.4
●
●
Ab 2.6.33 ist DRBD im Kernel mit dabei.
Für CentOS 6.4 gibt es Version 8.4.2 aus den elrepo
Repository
# rpm ­­import http://elrepo.org/RPM­GPG­KEY­elrepo.org
# rpm ­Uvh \
http://elrepo.org/elrepo­release­6­5.el6.elrepo.noarch.rpm
# yum install kmod­drbd84 drbd84­utils
●
Eingeben der Konfiguration in /etc/drbd.conf bzw.
/etc/drbd.d/
20130705­LinuxCluster_Medialinx
DRBD initialisieren
●
Doku dazu siehe: http://www.drbd.org
●
Auf beiden Knoten:
20130705­LinuxCluster_Medialinx
–
Meta-Daten auf dem Block Device einrichten:
# drbdadm create­md r0
–
Kernel Modul laden:
# modprobe drbd
–
DRBD starten
# drbdadm up r0
DRBD einrichten (II)
●
In /proc/drbd steht jetzt der Zustand des DRBD:
st:Secondary/Secondary ds:Inconsistent/Inconsistent
●
●
Primären Knoten aussuchen. Wichtig vor allem, wenn
es schon Daten auf einem Gerät gibt.
Diesen Knoten zum Master befördern:
node1# drbdadm primary ­­force r0
●
Dateisystem anlegen:
node1# mkfs.ext4 /dev/drbd0
20130705­LinuxCluster_Medialinx
LAB: DRBD einrichten
●
Neue Festplatte hinzufügen.
–
Größe ungefähr 1 GB.
–
Neue Festplatten im laufenden Betrieb erkennen:
# for i in /sys/class/scsi_host/host*/scan; do echo „­ ­ ­“ > $i; done
●
Partition auf der neuen Festplatte anlegen.
●
DRBD einrichten.
●
Dateisystem formatieren.
●
Test:
–
–
–
20130705­LinuxCluster_Medialinx
DRBD einbinden und Daten schreiben.
DRBD primary auf node2 umziehen und dort einbinden.
Sind die Daten verfügbar?
Zusammenfassung
●
Multistate Ressourcen bilden Ressourcen ab, die in unterschiedlichen
Zuständen laufen.
●
DRBD ist eine einfache Lösung für Shared Data im Cluster.
●
DRBD integriert schön in einen Linux Cluster.
20130705­LinuxCluster_Medialinx
Herunterladen