question-mark

DRBD-Devices verkleinern

Für einen Kunden hatten wir einen vServer aufgesetzt, der seine Daten über DRBD auf zwei Hardware-Maschinen speichert. Auf Wunsch des Kunden haben wir die Verkleinerung eines DRBD-Devices vorgenommen. Damit es nur zu kurzen Unterbrechungen kommt, soll dieser Vorgang ohne resync und offline nehmen des DRBD-Devices erfolgen.

Laut Dokumentation (Stand 23. August 2018) ist dieser Vorgang mit folgendem Befehl erledigt:

drbdadm resize --size=<new-size> <resource>

Fehlermeldung

Hierbei tritt aber der folgende Fehler auf, drbdadm kennt die Option −−size in der eingesetzten Version schlichtweg nicht:

drbdadm: unrecognized option '--size'

Sowohl die offizielle Dokumentation für DRBD Version 8.4, als auch die der aktuellen Version 9.0, geben keine anderen Möglichkeiten an um die Größe anzugeben.

Auch in den Manpages ist die Option wie oben verwendet dokumentiert.

Lösung

Zuerst vermuteten wir, dass das Problem an den eingesetzten drbd-utils liegt. Allerdings besteht der Fehler auch in der aktuellen Version 9.5.0, zumindest unter DRBD Version 8.4.

Nach längerer Suche und Rückfrage bei den DRBD-Entwicklern konnten wir dann die Ursache des Problems finden. Es handelt sich um einen Fehler in der Dokumentation. Genauer gesagt ist die Dokumentation dem Programm voraus. Die Syntax sollte angepasst werden, was jedoch noch nicht geschehen war. Das Problem wird entsprechend durch die Verwendung der eigentlich veralteten Dokumentation von DRBD Version 8.3 gelöst. Der Befehl sieht dann wie folgt aus:

drbdadm -- --size=<new-size> resize <resource>

Dieser führt auch zum gewünschten Effekt. Das DRBD-Device wird online, also auf beiden Systemen gleichzeitig, verkleinert.

Wir haben Linbit, die Ersteller von DRBD, über den Fehler in der Dokumentation informiert. Dieser wird in der Dokumentation auf der Website behoben. Der Fehler in den Manpages wird mit dem nächsten Software Update korrigiert.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.