Inhaltsverzeichnis

MCU-Cluster Konfiguration

FIXME

Einleitung

Da bei mir immer mehr essentielle Funktionen von der CCU2 (Original) gesteuert werden habe ich mir Gedanken gemacht was bei einem Ausfall passiert und wie ich den abfangen und die Ausfallzeit minimieren kann.

Als IT-Administrator kommt einem natürlich als Erstes ein Cluster in den Sinn. Daher auch das vorherige Projekt von wegen Homematic Zentrale auf Raspberry PI Basis um dann mit zwei Raspberries einen Cluster realisieren zu können.

Was zeichnet einen Cluster aus? Zum einen die mindestens doppelt vorhandenen Ressourcen wie z.B. Computer, Speicher oder andere Geräte. Zum anderen die intelligente Steuerung von Softwareschnittstellen wie IP-Adressen oder andere Services die da laufen wo funktionierende Hardware zur Verfügung steht und im Bedarfsfall auf einen anderen Computer umziehen.

Um eine Homematic-Zentrale hochverfügbar zu machen müssen folgende Teile der Zentrale entweder auf dem einen oder anderen Pi laufen:

Mit den beiden Funk-Lan Adaptern von ELV hat jeder der beiden Raspberries eine Verbindung zu den Honematic-Komponenten womit dieser Punkt erledigt wäre.

Da die IP-Adresse der Zentrale im LXC-Container konfiguriert ist, ist diese auf dem Pi auf dem der LXC-Container gestartet ist verfügbar, so das dieser Punkt auch geklärt ist. Man muss nur vermeiden das die LXC-Container auf beiden Pis laufen. Das übernimmt ein Skript.

Hardware

Daher braucht man für den Cluster folgende Ausstatung:

  1. 2 Raspberry Pi 2b. (Stück 32 Euro)
  2. 2 Gehäuse für Raspberry Pi. (Stück 11 Euro, inkl. Netzteil und Kühlkörper)
  3. 2 ELV Funkmodule (HM Bezeichnung: HM-MOD-RPI-PCB, Artikelnummer: 68-14 21 41) (Stück 20 Euro)
  4. 2 Micro-SD Karten mit 8 oder 16 GB Kapazität. (Stück 8 Euro)
  5. 2 Edimax EW-7811UN USB-WLAN Adapter (Nicht nötig für den Start, schwierige Installation) (Stück 9 Euro)

Damit kommt man ohne die WLAN Adapter auf einen Hardwarepreis von ca. 132 Euro und 150 Euro für die Lösung mit WLAN.

Backup

Als Erstes machen wir mal ein Backup der beiden Container bevor wir mit dem eigentlichen clustern beginnen. Dazu führen wir folgendes auf beiden Pis durch:

cd /var/lib/lxc
mkdir yahm.bak
rsync -a --progress yahm/ yahm.bak/

Software

An Software braucht man folgendes (Ausser einem PC mit Linux oder Windows):

  1. Das Raspberry Betriebssystem Image namen Raspbian.
  2. dd (unter Linux) oder Win32 Disk Imager(unter Windows) um das Image auf die SD-Karte zu kopieren.
  3. csync2 auf dem PIs

Der Zusammenbau der Raspberry PIs und die Installation des Betriebssystems inklusive der YAHM LXC Container habe ich schon beschrieben. Das Ganze einfach zweimal bzw. noch einmal machen :)

csync2

Csync2 dient zur Replikation des Containers von einem auf den anderen Raspberry Pi. Es erkennt Änderungen am Dateisystem und gibt diese dann weiter.

Csync2 kann einfach mit apt-get installiert werden.

apt-get install csync2

Danach muss ein Schlüssel und ein Zertifikat für die Authentifizierung untereinander angelegt werden:

Schlüssel:

csync2 -k /etc/csync2.key

Zertifikat:

openssl genrsa -out /etc/csync2_ssl_key.pem 1024
openssl req -batch -new -key /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.csr
openssl x509 -req -days 3650 -in /etc/csync2_ssl_cert.csr -signkey /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.pem

csync2 Konfiguration:

group ccucluster
{
        host ccu2a-host;
        host ccu2b-host;
 
        key /etc/csync2.key;
 
        include /var/lib/lxc/yahm;
        exclude *~ .*;
}