Linux-Cluster mit Open-Source-Tools

DRBD: RAID1 über das Netzwerk

Konfigurationsbeispiel

Nehmen wir vier gleich große Partitionen „/dev/sda1“ und „/dev/sda2“ auf Server alpha und „/dev/sdb3“ und „/dev/sdb1“ auf Server beta - und ernennen alpha zum Primärsystem für „sda“ und beta für „sdb1“. Dann müssten die Daten, die wir auf das Blockdevice /dev/sda1 schreiben, irgendwie auf das Blockdevice /dev/sdb3 auf beta gelangen.

DRBD klingt sich nun transparent ein und zwar so, dass wir „/dev/sda1“ und „/dev/sdb3“ als DRBD-Device „/dev/drbd1“ definieren.

Im nächsten Schritt mounten wir unser Dateisystem „/test1“ von alpha nicht mehr von „/dev/sda1“ sondern von „/dev/drbd1“. Auf alpha können wir mit „/test1“ nun ganz normal arbeiten. Kopieren wir nun die Datei testfile.txt auf „/test1“, schreibt der Kernel die vom Dateisystem belegten Blöcke lokal auf „/dev/sda1“ und der DRBD-Treiber diese Daten transparent auch auf „/dev/sdb3“ auf beta und somit sind beide /test1 Dateisysteme auf beiden System identisch. Analog gilt dies für DRBD0.

Sobald alpha als Primary für DRBD1 definiert ist, synchronisiert der DRDB-Treiber beide Block-Devices miteinander und in Folge müssen nur noch die Differenzen im Betrieb abgeglichen werden. Die Metadaten geben Auskunft darüber, welche Datenblöcke zu synchronisieren sind. Die Netzwerk-Bandbreite, die für diese Synchronisierung zur Verfügung steht, stellen Sie in der Konfigurationsdatei ein (Syncer: rate 10M).