EGroupware und SyncML im Einsatz

Wer ein mobiles Gerät mit Android seit eigen nennt, wird schnell feststellen, dass nur zwei sinnvolle Sync-Optionen vorgesehen sind: Google(Mail/Konto) und Exchange. Wer wie ich ersteres nicht hat und auch nicht will und für letzteres kein Sinn sieht (OpenXchange ist die OpenSource Alternative) der muss etwas suchen um seine Kalender, Kontakte und ToDo-List zu synchronisieren.

Seit einiger Zeit kristallisiert sich SyncML  als „Transportstandart“ für genau diese Aufgabe heraus. Der Vorteil dieses offenen Standards liegt auf der Hand. Es gibt verschiedene Backends und Frontends, die alle in unterschiedlicher Kombination miteinander Synchronisieren können. Dieser Artikel geht auf beides ein.

Mein Setup sieht wie folgt aus:

  • mehrere Thunderbird Endgeräte – mobil wie stationär
  • mehrere mobile Endgeräte mit verschieden OS Typen (Symbian, Android, usw)
  • Outlook/Exchange (Arbeitsrechner)
  • Ubuntu-Server als zentrale Datenhalde.

Das Frontend

Recht schnell bin ich auf Funambol gestoßen. Diese Firma bietet Sync-Tools für alle möglichen Plattformen, einen SyncML-Server und einen CloudService. Funambol betreibt dabei das typische OpenSource – Geschäfftsmodel. Code und Tools kostenlos, den Service und einige Features gibt’s gegen Bares. Aber das stört nicht. Zum einen gibt es den FunambolServer (SyncML) als installpacket zum anderen kann man auch auf andere SyncML-Angbote zurückgreifen. Das Backend ist frei konfigurierbar. Mein Fazit nach zwei Wochen mit Funambol im Test:

  • Thunderbird: Erst einmal muss man das Plugin finden. Dazu muss man sich das Plugin entweder selber bauen oder unter www.memotoo.com ein vorkompiliertes Paket herunter laden. Einmal installiert funktioniert alles wie man es sich vorstellt. Adressbücher, Kalender und Task werden ordnungsgemäß synchronisiert.
  • Android: Auch hier gibt es eine Funambol-Applikation kostenlos im markten. Einmal installiert, legt es ein neues „Synchronisations-Konto“ an. Es existiert neben Exchange und Google-Mail dann noch eine weite SyncQuelle, die sich schön in die Android-Oberfläche einbindet. Aufbau der Applikation und Funktonumfang entspricht den Standart Funambol Desktop-Client mit einer Ausnahme: auf dem Android gibt es (noch) keine Task. Es gibt noch keine Task-App die mit Funambol koppelt – leider.
  • Outlook: hier gibt es ein offizielles Plugin das ebenfalls einwandfrei funktioniert.

Eine Einschränkung gibt es jedoch: Funambol scheint beim syncen „marker“ in die jeweiligen Kalendereinträge zu machen (id). Wird der Kalender aber nicht lokal gespeichert sondern ebenfalls synchronisiert oder gar über Netzwerk eingebunden (Exchange/ICS/CalDav) gehen diese Informationen verloren. Der Client ist scheinbar nicht mehr in der Lage, Einträge die vom Server kommen zuzuordnen, mit der unschönen Folge das Dubletten entstehen. Bei meinem Outlook muss ich auf eine veraltete Funambol Version (8.72) setzten, weile nur noch diese den „One-Way“ Modus unterstützt. Dabei überträgt der Client (wahlweise) nur Zum Server oder Empfängt nur vom Server.

Das Backend

Funambol bietet auch einen SyncML Server.  Bei diesem handelt es sich um ein Java – basierten Server samt Konfiguration. Im ersten Überblick wirkte das alles ein wenig „unübersichtlich“ und wenig strukturiert aus. Ich muss aber gestehen das ich mir den Server nur ganze 2 Stunden angeschaut habe. Nebenher hatte ich mir noch ein EGroupware Server aufgesetzt und direkt verglichen. Diesen Vergleich hat der Funambol-Server aus folgenden Gründen verloren:

  • Funambol setzt eine eigene Server-Struktur auf. Dieser Server braucht einen Port den ich durch meine FW Routen muss und so weiter. Auf meinen Server läuft aber schon ein Apache. Egroupware nutzt diesen, so fällt der Mehraufwand weg.
  • Funambol setzt sein eigenes DB-Backend ein. Die wollen gesichert werden. EGroupware kann alle DB-Backends ansprechen, die PHP beherrscht. Standardmäßig komm MySQL zum Einsatz.
  • Und mein Totschlag-Argument: Funambol kann man (noch) nicht aus einer apt-Quelle installieren. Man muss sich also selber kümmern ob und wie man das ganze aktuell hält. EGroupware gibt es als Paket aus den offiziellen quellen.

Bei Egroupware handelt es sich ebenfalls um eine OpenSource-Projekt mit kommerziellen Grundgerüst. Die Community-Edition gibt es kostenlos, den Service muss man kaufen. Man kann das Paket direkt aus den offiziellen Quellen beziehen (die sind veraltet) oder man greift auf Quellen des Herstellers zurück. Dieser bietet für fast alle Debian/Ubuntu-Verianten die quellen an.

Standardmäßig wird EGroupware so installiert das es ein Anwendung unter „http://localhost/egroupware“ gibt. Das kann man wie gewohnt über die Apache-configs umbiegen und anpassen. Die geführte Installation in der Webanwendung gestaltet sich ein wenig hackelig. Das ist bedingt durch den Umstand, dass EGroupware für große Mittelständler gedacht ist. Es unterstützt Domänenkonzepte, Mailserver, verschiedenste Authentifizierungen usw Für den Zweck der einfachen „Ein Mann Synchronisierung“ ein wenig oversized aber es gibt schlimmeres.

Einmal installiert und eingerichtet zeigt sich EGroupware sehr aufgeräumt und übersichtlich. Besonders hervor gestochen haben folgende Funktionen:

  • Es gitb unterschiedlichste Sync-Schnittstellen für ein und das selbe. Zum Beispiel kann der Kalender unter ./calendar oder calendar angesprochen werden. Jede dieser Schnittstellen kann man ein eigenes Konflikt-Management vorgeben.
  • Es wird die WebDav – Schnittstelle angeboten. Hat man Festrechner, die immer mit dem Server verbunden sind, kann man die Kalender bequem mittels WebDav einbinden. Insofern die Kalender der „Kollegen“ freigegeben sind kann man sogar die einbinden. Der Link sieht dann so aus: https://egroupware/groupdav.php/<username>/calendar
  • Legt man einen Eintrag im Kalender an und hinterlegt dabei einen Gesprächspartner (E-Mail) gleicht Egroupware automatisch mit der internen Kontakt-Liste ab und macht entsprechende Einträge bzw. versendet E-Mails
  • Sowohl IMAP als auch POP Server werden unterstützt, auch SMTP wird angeboten – Es muss aber kein Mail-Server angegeben werden!
  • Das WebEnd-ist ansprechend und übersichtlich.

Fazit

Seit zwei Wochen synchronisiere ich erfolgreich zwischen allen meinen Geräten. Von der kleinen Outlook-Einschränkung mal abgesehen funktioniert das Problemlos. Besonders das Feature, dass meine Freundin jederzeit sehen kann, wie meine geschäftlichen Termine liegen bzw. mir von zu Hause Termine „rein knallen“ kann, erleichtert mir ein wenig das leben. Der Verwaltungsaufwand hält sich in Grenzen, da fast alles aus den Mail-Clients her raus gelöst werden kann. Eine klare Empfehlung an alle die ihre Kontaktdaten,Kalender und Aufgaben lieber nicht in der Cloud speichern wollen aber dennoch auf den SyncService nicht verzichten wollen.

Weitere Links:

Wenn rdiff-backup mal streikt…

Rdiff-backup ist meine favorisierte Backuplösung. Sie hat einfach zu viele nette Feutures, allen vor ran der geringe Speicherplatzverbrauch plus der Datei-Historie. Leider hat rdiff-backup ein Problem mit seiner Stabilität.  Wenn es mal zu einem inkonsistenten Backup kommt. steht man ziemlich mit runter gelassenen Hosen da. Ich selbst leide an einem solchen Problem. Um zu ermitteln ob mit einem Backup alles in Ordnung ist muss man folgenden Befehl ausführen:

rdiff-backup --verify [BackupDir]

Liefert dieser Befehl keinen Output kann man es ruhig angehen lassen. Gibt es jedoch Meldungen wie diese hier, sollte man auf jeden Fall prüfen was mit dem Backup nicht stimmt.

Warning: Computed SHA1 digest of

doesn't match recorded digest of

Your backup repository may be corrupted!

Wenn man dem nicht traut kann man mittels folgenden Befehl einen kompletten vergleiche Quelle<>Backup anstoßen:

rdiff-backup --compare-file [SourceDir] [BackupDir]

Dieser Befehl liefert die Files, bei dehnen sich Quelle und Backup unterscheiden unabhängig davon ob sich laut Change-Time irgendwas an der Datei geändert haben sollte.
Zusätzlich gibt es noch:

rdiff-backup --compare-hash [SourceDir] [BackupDir]

Dieser macht das gleiche wie der vorherige Befehl, nur vergleicht er nur die gespeicherten Hashes mit den neu genierten der Qulle. Das hilft nichts, wenn sich die Dateien im Backup geändert haben (z.B. korruptes File-System).
Kurz wenn der „compare-file‘ Befehl sagt „alles ok“, dann kann man dem trauen. Er ist jedoch auch der aufwändigste. Jeh nach Datenmenge kann das 24 Stunden und mehr brauchen. Leider hat der Befehl auch noch einen anderen Hinkfuß. Für die Dauer der Prüfung darf die Quelle nicht geändert werden, da es sonst zu unnützen Flaschmeldungen kommt.

Hat man einmal eine Datei (oder mehrere) ermittelt die defekt im Backup gespeichert vorliegt muss man diese im Backup aktualisieren. Leider bietet rdiff-backup dafür keinen Mechanismus. So das man händisch bei allen dateien  den „mdoified“-Zeitstempel auf einen Wert nach dem letzt Backup setzt muss. Also einfach ein touch auf alle Quelldateien bei den das Backup nicht in Ordnung ist, anschließend rdiff-backup nochmal laufen lassen.

AES-XTS-PLAIN – Retest die Zweite

Wenn man Ubuntu 11.04 installiert bekommt man den neuen 2.6.38 Kernel installiert, oder man installiert sich über das Ubuntu-Kernel-Team einen Backport. Was hat das nun mit der AES-XTS-PLAIN Verschlüsselung zu tun. Nunja mit dem 2.6.38 wurde die Mehrkernfähigkeit der Verschlüsseungsalgorithmen entscheidend verbessert.  Hier nun mein kleiner Nachtest:

  • Write Char: ? 1,11 MB/s (aktuell) statt 65,85MB/s (alt)
  • Read Char: 2,5 MB/s (aktuell) statt 29,46MB/s (alt)
  • Write Block: 165,08 MB/s (aktuell) statt 133,81MB/s (alt)
  • Rewrite: 51,91 MB/s (aktuell) statt 33,14MB/s (alt)
  • Read Block: 147,34 MB/s (aktuell) statt 57,13 MB/s (alt)

Fazit: Wie gehabt ist das schreiben zufällige einzelnen Chars extrem langsam. Was dem gut gefüllten Filesystem zugeschrieben werden kann. Was jedoch auffällt ist die enorme Leistungssteigerung in den restlichen Disziplinen. Es kann nun nahezu so schnell gelesen wie geschrieben werden. Was nahezu einer Verdopplung der Lesegeschwindigkeit gleich kommt. Auch die Schreibgeschwindigkeit konnte gesteigert werden, wobei der nicht so hohe Steigerungen zu erreichen sind. Die Leistungssteigerung wird natürlich durch eine höhere Auslastung der CPU erkauft. In meinem Fall werden nun beide CPUs in Beschlag genommen. Das System blieb aber während des Test gut ansprechbar und reagierte ohne Probleme auf eingaben. Also ein reiner Zugewinn an Geschwindigkeit.

Munin – „unknown warning“ unterdrücken

Ich nutzte Munin seitdem ich meine Serverstruktur am laufen habe und es hat mir gute Dienste geleistet.

Eine Sache hat mich doch immer ein wenig gestört. Ich besitze Geräte/Nodes die nicht 24/7 online sind, jedoch auch überwacht werden wollen, da sie keine direkte Interaktion mit dem Nutzer zulassen (oder der Nutzer es nicht will). Kurz: mein HTPC soll meckern, wenn was ist, aber bitte nicht während man gerade genüsslich einen Film schaut!

Bis „vor kurzem“ kam es dabei auf Seiten Munin immer zu Fehlermeldungen wie „WARNING <node>.<value> unknown“. Eine Mail mit solchen Zusammenfassung gab es am Tag mindestens 2 Mal. Einmal mit „Unknown“ und einmal mit „OK“ wenn der Rechner wieder da war. Unter den ganzen Unknown/OK Meldungen gingen die wirklich wichtigen Meldungen wie WARNING/ERROR/NOTICE leider unter, so dass ich einmal wöchentlich die Statistik aufrufen musste und nachschauen durfte…

es gibt Abhilfe. Man kann in der Munin-(Server)-Konfiguration bei der Node folgendes angeben:

 df._sdb1.unknown_limit 300

In dem oben angebenen Fall würde für das Plugin df Fieldname sdb1 erst nach 300 „Unknown“ Meldung wirklich eine Mail ausgelöst werden. Bei 5 Minuten pro Prüfungen macht das 25 Stunden, die der Rechner offline sein kann, ohne dass es eine Warnmeldung gibt.

Nachteil an der Sache, man muss das für jeden Plugin/Feldwert machen. Das führt in jedem Fall zur Plugin-Hygiene!

AES-XTS-PLAIN – Retest

Nach einer langen Zeit (über einem Jahr) war es mal wieder Zeit zu testen, wie es um die Performance meines NAS bzw dessen Verschlüsselung steht. Leider hat sich zu damals die Plattenconfiguration geändert, so dass man eigendlich die Performance nicht vergleichen kann. Jedoch war damals wie heute nicht der RAID-IO der limitierende Faktor sondern die Cipher-Performance. Wie damals kommt ein RAID5 als Storage-Basis zum Einsatzt. Diesmal nur 1GB statt 250GB Platten. Weiterhin werkelt ein 2.5GHz Intel Core2Duo samt 4GB Ram in dem Server.

Da auf dem Storage schon ein Haufen Daten liegen entfallen leider die Vergleichstest der anderen Cipher, da ein on-the-fly umschlüsseln nicht möglich ist und ich keine Lust hab 8 stunden zu warten um ein Full-Backup einzuspielen.

Nun zu den Testergebnissen von Bonnie++:

  • Write Char: 1,31 MB/s (aktuell) statt 65,85MB/s (alt)
  • Read Char: 2,46 MB/s (aktuell) statt 29,46MB/s (alt)
  • Write Block: 128,57 MB/s (aktuell) statt 133,81MB/s (alt)
  • Rewrite: 38,68 MB/s (aktuell) statt 33,14MB/s (alt)
  • Read Block: 72,18 MB/s (aktuell) statt 57,13 MB/s (alt)

Zusammenfassung: Wie gehabt können Daten scheinbar schnell entschlüsselt als verschlüsselt werden. Was auch auffällt, dass die ersten drei Testwerte sehr viel schlechter sind als beim ersten Test. Das schiebe ich mal auf das initialisierte XFS Filesystem. Das FileSystem ist zu 55% gefüllt. Daher kommt es beim Write zu einer Lückensuche, die damals bei einem frisch aufgesetzten Filesystem nicht nötig war. Bei BlockRead und Rewrite zeigt sich dann, dass es Verbesserung in der Performance der Algorithmen gab. Leider scheint die Parallelisierung des AES-Algoritmus noch nicht wirklich weit voran geschritten zu sein. Ein CPU-Kern langweilt sich immer noch vollständig…

Ubuntu Server und der PowerButton

Aus irgendeinem Grund haben sich die Jungs bei Canonical gedacht, es sei uncool einen Server per Powerbutton am Gehäuse runter zu fahren. Ich kann mir zwar kaum einen Grund vorstellen, wofür das nützlich sein kann. IT-Personal das stolpert und durch Zufall den Button drückt, hat auch meist Kaffee in der Hand … *G*

Um das Problem zu beheben einfach:

sudo aptitude install acpid

Munin SMART-Daten zusammengefasst

Ich betreibe schon eine geraume Zeit einen Munin-Tracker um meine Heim-Hardware zu überwachen. (Router, Server, HTPC, usw). Leider hat sich gerade beim Server gezeigt, wie schnell Munin unübersichtlich werden kann. Bei aktuell 10 HDDs ist man schon eine weile beschäftigt um die Smart-Tables zu „überscrollen“. Das hat mich so generft, dass ich nach eine Lösung gesucht habe, die lautet „multigraph“. Dabei werden von „Plugin“ gleich mehrere Graphen geliefert (inkl Übersichts-Graph) und anschießend wird dieser Übersichtsgraph dargestellt und erst beim Öffnen wird dann jeder Graph einzeln dargestellt.

Das ganze lässt sich schnell implementieren, bis auf den Haken, dass sowohl die SMART Abfrage als auch das scannen eines 3Ware-Controllers zu lange braucht. Munin hat immer die Abfrage abgebrochen.  Daher musste ich den auslesenden Teil auslagern und alles in state-Files schreiben. Diese werden von dem munin-Plugin dann eingelesen und ausgewertet.

smart-Scriptes