the other side of life
Posts tagged ocfs2
Debian Lenny – OCF Resource Agent o2cb Bug
Mar 27th
Lenny Stable ? Ohne RC-Bugs ? Im heartbeat Paket hat sich ein kleiner Fehler versteckt (ist schon gemeldet).
Wenn ihr versucht, mit heartbeat eine ocfs2 Resource via o2cb zumanagen, wird das nicht gehen
Der Grund ist, dass ein $ vergessen wurde im OCF Resource Script (Zeile 314). Folge ist, dass die ocfs2/o2cb Resource nicht startet.
Hier ist ein Patch zum selber fixen.
*** /tmp/test/ocf_o2cd.patch
--- usr/lib/ocf/resource.d/heartbeat/o2cb 2009-01-22 06:58:49.000000000 +0100
+++ /usr/lib/ocf/resource.d/heartbeat/o2cb 2009-03-24 15:56:28.000000000 +0100
@@ -311,7 +311,7 @@
;;
esac
-RCO2CB=INITDIR/o2cb
+RCO2CB=$INITDIR/o2cb
# RCO2CB=/etc/init.d/o2cb
if [ ! -x $RCO2CB ]; then
Hier zum Download ocf_o2cb.patch.
OCFS2 @ Debian Lenny/Squeeze V2 [Update]
Mar 9th
Auf Lenny und Squeeze kann man schon länger wieder normal OCFS2 installieren bzw. die Module werden nun auch beim Start geladen. Wenn ich das richtig mitbekommen habe, wurde das OCFS2 Paket auch an einen anderen Maintainer übergeben.
root@srv ~ [0] > aptitude install ocfs2-tools
und wer es braucht auch die GUI dazu
root@srv ~ [0] > aptitude install ocfs2console
Ob es mit den drbd8-Modulen noch Probleme gibt kann ich erst nächste Woche sagen.
Update:
Die drbd8 Module lassen sich nun auch wieder ohne Probleme installieren via
root@srv ~ [0] > aptitude install drbd8-modules-2.6-686
installieren. Aber leider nur Version 8.0.14 – aktuell ist 8.3.0 bzw 8.3.1rc1 – schade, da ist selbst ein SLES11 aktueller (noch).
OCFS2 @ Debian Lenny
Nov 10th
Da die ocfs2-tools aus dem testing (Lenny) Repository enfernt wurden, muss man auf die Sourcen von etch oder sid zurück greifen. Beide sind lange nicht mehr aktuell, aber funktionieren _fast_ ohne Probleme.
Ich habe die ocfs2-tools aus etch installiert und dabei bemerkte ich, dass zwei wichtige Module nicht geladen wurden ! Damit beim Start OCFS zu Verfügung steht, muss man zwei Zeilen hinzufügen in der /etc/init.d/o2cb !
Den String LOAD_ACTION suchen und folgende zwei Zeilen hinzufügen.
"load_module ocfs"
"load_module jbd"
Reboot, fertig.
HA mit Debian Lenny & drbd8, ocfs2, heartbeat, pound (http) und mysql
Apr 9th
Vorrausetzung
- 2 Server mit einer Lenny Grundinstallation ( Hier als Servernamen cnode1 und cnode2 )
- Optional: 2 Netzwerkkarten je Server (für drbd)
- eine leere Partion je Server
- Vorausgesetzt es ist nicht anderst angegeben, alles auf beiden Nodes ausführen !
Konfiguration von drbd
Auf beiden Servern als root anmelden
aptitude install drbd8-utils drbd8-modules-2.6.24-1-686
echo "drbd" >> /etc/modules
Nun sichern wir die alte drbd-Konfigurationsdatei
mv /etc/drbd.conf /etc/drbd.conf.old
Jetzt erstellen wir eine neue Datei mit vim /etc/drbd.conf
global { usage-count yes; }
common { syncer { rate 10M; } }
resource ha {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
net {
cram-hmac-alg sha1;
allow-two-primaries; # Wichtig für Primary/Primary Setup
}
on cnode1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.1:7788;
meta-disk internal;
}
on cnode2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.2:7788;
meta-disk internal;
}
}
Speichern mit :wq
Wenn 2 Netzwerkkarten vorhanden sind, drbd lieber auf eine eigene Karte konfigurieren. Damit drbd mit der Partion etwas anfangen kann, müssen wir diese initialisieren.
drbdadm create-md ha
Nun können wir die beiden Partionen synchronisieren. (Den folgenden Befehl nur auf einer Node starten !)
drbdsetup /edv/drbd0 primary --overwrite-data-of-peer
Je nach dem wie groß die Partionen sind kann es nun etwas Zeit vergehen. Der Fortschritt kann überprüft werden mit
/etc/init.d/drbd status
In der Ausgabe sollte sich die unten stehende Zeile finden lassen, wenn beide drbd-Devices synchron sind.
0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
Nun können wir die zweite Node auch zum ”Primary” machen
drbdsetup primary r0
Update (Danke keks)
Da es sehr störend ist, wenn wir die Server neustarten, immer per Hand die 2 Nodes als Primary zu definieren, fügen wir noch zusätzlich in den startup-Block
become-primary-on both;
ein. Die Zeile sollte dann wie folgt aussehen:
startup { wfc-timeout 0; degr-wfc-timeout: 120; become-primary-on both; }
Das bewirkt, dass beide während des Bootvorgangs als Master definiert werden. Nun die Konfiguration auf beiden Nodes aktualisieren, dann
drbdadm adjust ha
und
drbdadm primary ha
(Befehle auf beiden Nodes ausführen!)
Wichtig: Um diese Funktion zunutzen, müsst ihr DRBD aus den Quellen bauen, da die Funktion (laut drbd-Homepage) erst ab 8.2.0 implementiert ist.
Konfiguration von ocfs2
Jetzt installieren das ocfs2 Filesystem
aptitude install ocfs2-tools ocfs2console
Noch die Konfigurationsdatei erstellen
#/etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.1.1
number = 0
name = cnode1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.1.2
number = 1
name = cnode2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
Nun sind wir fast fertig. Jetzt einmal
/etc/init.d/ocfs2 restart
und dann können wir das Filesystem erstellen mit
mkfs.ocfs2 /dev/drbd0
Damit wir mit dem Filesystem arbeiten können, müssen wir es initialisieren.
/etc/init.d/o2cb online ocfs2
bewirkt das der Cluster mit dem Namen ocfs2 geladen wird.
/etc/init.d/o2cd load
/etc/init.d/o2cd online ocfs2
Jetzt können wir es mit
mount /dev/drbd0 /srv
nutzen
Konfiguration vom HTTP Loadbalancer – pound
Konfiguration von heartbeat
Folgt !