Create a shared disk for VMware ESX guests

To create a shared disk between two or more VMs, login into one of your ESX hosts and create a disk image.

cd /vmfs/volumes/#volume-name#/#vm-name#/;
vmkfstools -d thick -a lsilogic -c 50G shareddisk.vmdk;

Add the new hardrive to the guest(s) and select a new SCSI bus (like SCSI 2:0). VMware create a new SCSI controller. Set SCSI Bus Sharing = Physical or Virtual and have fun ­čÖé

Debian Lenny – OCF Resource Agent o2cb Bug

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]

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

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

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

Hier ­čÖé

Konfiguration von heartbeat

Folgt !