Category Archives: Webtechniken

Verteiltes Dateisystem GlusterFS

Durch den Post vom vom 12.01.2009 / https://www.netz-guru.de/2009/01/12/die-ultimative-e-mail-losung-the-ultimate-e-mail-solution/ und die Kommentare darauf angeregt, habe ich versucht das gleiche Setup auch ohne dbmail zu versuchen. Sirko hatte in seinem Kommentar erwähnt, dass man mit einem verteilten Filesystem auch so einen Mailcluster betreiben kann. Bis zu diesem Zeitpunkt war mir eigentlich nur DRBD als einziges Filesystem bekannt, welches maximal 2 Nodes zu einer Art Netzwerk-RAID1 verbindet.

Gänzlich unbekannt war mir bis heute jedoch GlusterFS, welches ebenfalls ein verteiltes Filesystem über das fuse-Modul bereitstellt. Hier hat man jedoch keine Limitierung auf max. 2 Nodes. GlusterFS bietet Automatic File Replication auch über mehr als 2 Nodes. Weiterhin kann man mit Unify mehrere RAID1-Knoten zu einem einzigen FS zusammenfassen. GlusterFS bietet noch mehr Möglichkeiten, hier mal ein Überblick:

Mit einem Setup wie unter “Distributed Replicated Storage” beschrieben, lässt sich so ein gemeinsammes /var/spool für die Mailserver generieren. Die Konfiguration der Server kann man dann entweder in einer Datenbank oder LDAP ablegen, oder man verwendet die vom MTA vorgegebenen Konfig-Files, diese kann man auch auf einem verteiltem Filesystem speichern.

Den Source für GlusterFS kann man sich hier downloaden:

http://europe.gluster.org/glusterfs/2.0/LATEST/

Die Entwickler empfehlen ausserdem ein gepatchtes fuse-Kernel-Modul, welches GlusterFS erheblich beschleunigen soll:

http://europe.gluster.org/glusterfs/fuse/

Das Setup an sich ist relativ einfach. Unter Debian Etch fuse-Source entpacken, ./configure –enable-kernel-module –prefix=/usr  && make && make install && ldconfig

Dann glusterfs entpacken und ./configure –with-fuse=/usr/src/pfadzufuser &&  make && make install

Konfigurationsbeispiele gibt es unter www.gluster.org. Es sind auch kombinierte AFR,Stripe,Unify Filesysteme möglich, allerdings ist das Setup dann etwas komplizierter.

Weiterhin bietet GlusterFS neben normalem TCP/IP  auch direkte Verbindung über Infini-Band an. Auch redundante Verbindungen zur Storage werden unterstützt. Die Maximale Größe des Filesystems kann bis zu mehrere Petabytes betragen.

Möchte man viele kleine Dateien in glusterfs speichern, so kann glusterfs diese im DBD Berkeley DB Format speichern.

GlusterFS ist unter der GNU GPL v3 lizenziert.

Weitere Infos zu GlusterFS gibts auch bei der Wikipedia.

PHP Klasse für www.online-mahnantrag.de

Mahnbescheide automatisiert erstellen

Heute habe ich eine PHP-Klasse für www.online-mahnantrag.de geschrieben. Mit dieser Klasse ist es möglich, die Barcode PDF Anträge direkt aus einem PHP Skript heraus zu erstellen, und so zum Beispiel ein automatisiertes Mahnwesen zu erweitern, so dass nach Ablauf der letzten Mahnung automatisch das gerichtliche Mahnverfahren eröffnet werden kann.

Welche Verfahren werden angeboten?

Unter www.online-mahnantrag.de gibt es derzeit zwei Möglichkeiten, ein Mahnverfahren zu starten. Zum einen gibt es die schriftliche Version, d.h. man füllt online alle benötigten Felder aus, und erstellt abschließend einen Mahnbescheid mit maschinenlesbarem Barcode. Die zweite Alternative ist die Übermittlung der Daten mittels elektronischer Signatur. Die Klasse unterstüzt derzeit nur das Barcode Verfahren, da dies mir persönlich ausreicht und ich selbst nicht über eine digitale Signatur und entsprechendes Equipment verfüge. Wenn man die Funktion gen_pdf() der Klasse aufruft, übermittelt diese alle erforderlichen Daten an www.online-mahnantrag.de und liefert als Ergebnis das fertige Barcode-PDF zurück.

Einen neuen Mahnbescheid mit der Klasse erstellen

mit der Klasse lässt sich dann relativ einfach so ein Barcode-Antrag erstellen, hier mal ein Code-Beispiel:

Continue reading PHP Klasse für www.online-mahnantrag.de

Howto convert mp3-Streams to aac+ Streams in Linux

Was ist der Unterschied zwischen aac+ und mp3?

MPEG-4 High Efficiency Advanced Audio Coding (kurz HE-AAC), auch AAC+ v1 genannt, ist ein lizenzpflichtiger Audio-Codec, der Moving Picture Experts Group (MPEG). Der Standard liefert bei niedrigen Bitraten vergleichsweise gute Ergebnisse und eignet sich daher besonders für Live-Streams.

Continue reading Howto convert mp3-Streams to aac+ Streams in Linux

Shops, Viren und Kuchen – oder: Vorträge beim IGZ Hof

Das IGZ feiert 10-jähriges

Am 31.07.2008 feierte das IGZ Hof sein zehnjähriges Bestehen und lud zur Jubiläumsfeier ein. Es fanden über 20 Fachvorträge über Internet, Marketing und E-Bussiness statt, von denen ich selbst 2 Vorträge abgehalten habe.

Der erste Vortrag den ich gehalten habe hatte den Titel “Bestellvorgänge in Online Shops verbessern”, der zweite Vortrag ging um die neuesten Bedrohungen im Internet. Trotz der Hitze und des schönen Wetters war das Event gut besucht und es waren viele Vertreter aus allen Bereichen anwesend. Aus diesem Anlass möchte ich hier kurz meine beiden Vorträge resümieren.
Continue reading Shops, Viren und Kuchen – oder: Vorträge beim IGZ Hof

Warum man mit Suchmaschinenoptimierung allein nur schwierig ein Geschäft führen kann

Der optimierungs Boom

Tja, da ist er nun, oder ist nun schon vorbei, der Boom auf Suchmaschinenoptimierung. Wer in diesem Bereich versucht seinen Lebensunterhalt zu verdienen, kann sich nicht darauf verlassen, von Suchmaschinen gefunden zu werden. Wer einmal bei Google nach “Suchmaschinenoptimierung” gesucht hat, stellt fest, dass es hier zahlreiche Anbieter gibt, die einem alle das Gleiche verkaufen möchten – eine Optimierung der Webseite hinsichtlich Keywords, Barrierefreiheit und Markup. Das ist eigentlich super, und viele Webseiten die man so im Internet ansurfen kann, gerade die von sog. KMUs, haben soetwas wirklich nötig. Das Problem ist nur – Die Betreiber der Webseite wissen meist gar nichts über die Materie und werden daher nicht von sich aus darüber nachdenken, dass ihre Seite einmal überarbeitet werden sollte, und sofern doch jemand auf die Idee kommt, professionelle Hilfe in Anspruch zu nehmen, so wird er von Angeboten überflutet. Continue reading Warum man mit Suchmaschinenoptimierung allein nur schwierig ein Geschäft führen kann

_gat is not defined – Adblock und Google Analytics Problem

Wenn Adblock oder ein anderer Werbeblocker das Nachladen von Googels Code verhindert, gibt es Probleme bei der JavaScript Code Validierung, da das Script keinen Code von Googles Server nachladen kann und somit das Objekt _gat nicht definiert ist.

Um dies zu beheben reicht es aus, vorher abzufragen ob _gat ein Objekt ist:

<script type=”text/javascript” language=”javascript”>
if (typeof(_gat) == ‘object’)
{

..google-analytics-code..
}
</script>
Die fett geschriebenen Zeilen müssen zusätzlich um den Code herum eingefügt werden. Der Fehler tritt dann nicht mehr auf.

viele Bilder auf einmal skalieren mit Gimp

Welcher Webdesigner hat das Problem nicht schon einmal gehabt? Man bekommt viele Bilder in hoher Auflösung und soll diese skaliert in ein Forum oder eine Galerie einstellen. Im Photoshop gibt es dafür eine Batch-Funktion, wohl dem, der es sich leisten kann. Wer allerdings kein Vermögen für Photoshop ausgeben will, kann dies auch mit dem GNU Image Manipulation Programm GIMP erledigen.

Alles was dazu benötigt wird, ist ein Plugin DBP (David’s Batch Programm) und GIMP in einer aktuellen Version (ab 2.0).

Zuerst wird GIMP mit allen Standardeinstellungen installiert, anschliessend holen wir uns DBP und installieren dies im Plugins Pfad von GIMP:
bei w32: GIMP-2.0\lib\gimp\2.0\plug-ins

Anschliessend startet man GIMP und wählt nun Menü “Extras” “Batch Process…” aus.

Hier kann man jetzt Bilder hinzufügen und diese dann mittels Resize neu skalieren. Es sei angemerkt, dass man damit die Bilder auch drehen kann und weitere Effekte auf die Bilder anwenden kann.

mysqlfs mit mySQL NDB Cluster als verteiltes Dateisystem

Jeder der kritische Anwendungen über das Web laufen hat, wie z.B. einen Onlineshop, stellt sich irgendwann, bei hinreichend großem Umsatz, die Frage, wie man das System noch ausfallsicherer machen kann.

Meist wird dann hierzu ein Loadbalancer (ob Hardware oder Software ist erst mal egal) aufgesetzt, welcher die Anfragen an mehrer Server verteilt, welche sich einen gemeinsammen Massenspeicher teilen. Dadurch ist es möglich, dass einzelne Server gewartet werden können, bzw. auch ausfallen können, ohne dass die Applikation dadurch gestört wird.

Leider beschränkt sich diese Variante auf nur eine Location, d.h. wird aus irgendwelchen Gründen z.B. die Internetanbindung an das System unterbrochen, ist die Applikation offline.

Dies kann man damit umgehen, dass man das System multihomed aufbaut, d.h. mehrere Server an unterschiedlichen Standorten betreibt, um bei einem Ausfall von einem Standort trotzdem noch erreichbar zu sein. Diese Variante hat den Nachteil, dass die Daten des Systems sehr aufwändig synchronisiert werden müssen, falls ein Standort nicht mehr erreichbar war. Weiterhin muss man auch bei Updates etc. aufpassen, dass es keine Versionskonflikte bei der Applikation gibt, denn man kann die Software nicht an beiden Standorten gleichzeitig aktualisieren.

Benötigt wird für so eine Lösung also zum einen eine Datenbank, welche automatisch repliziert und dies auch über mehr als einen Standort hinweg, weiterhin dazu noch ein Dateisystem, welches verteilten Host-Systemen eine gemeinsame Datenbasis bereitstellen kann.
Continue reading mysqlfs mit mySQL NDB Cluster als verteiltes Dateisystem