Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Server

Hardware

Die eingestzte Hardware sollte „enterprise grade“ sein:

  • redundante Netzteile
  • schnelle Festplatten (15k SAS)
  • Festplatten im RAID (Soft- oder Hardware)
  • unterbrechungsfreie Stromversorgung

Betriebssystem

Welches konkrete Unix-Betriebssystem zum Einsatz kommt, ist eigentlich egal. Derzeit aktuell sind die folgenden:

  • Linux (Debian, Ubuntu, RedHat, SuSE etc.)
  • Solaris (Oracle, Illumos, OpenIndiana)

Wichtig ist, das sich der Adminstrator wohlfühlt und sich mit der jeweiligen Distribution gut auskennt. Darüberhinaus kann aus meiner Sicht das zur Verfügung stehende Dateisystem die Entscheidung zugunsten Solaris/ZFS beeinflussen.

Die notwendige Software (Samba und Firebird) steht für alle bekannten unixoiden Plattformen zur Verfügung oder kann ggf. compiliert werden, da es sich um freie Software handelt.

Dateisystem / Update Problematik

Die Evident Daten müssen auf einen case-insensitiven Dateisystem liegen. Andernfalls ist ein Update der Software von einem Windows Client aus nicht möglich.

Hintergrund

Eines der zentralen Probleme beim Einsatz von Evident unter *nix besteht in der unterschiedlichen Behandlung von Groß- und Kleinschreibung von windows und *nix.

Unix ist i.d.R. case-sensitive, Windows case-insensitive und case-preserving.

Bei allen Zugriffen auf Samba Freigaben ist das kein Problem, da Samba bei entsprechender Konfiguration die Problematik adressiert.

Bei Zugriffen auf den Firebird Server klappt das nicht, da der SQL Client absolute Pfade für den Speicherort der Datenbankdatei übergibt. Samba ist dann nicht mehr im Spiel, da der Client ja direkt über den IP Socket mit der Firebird Instanz auf dem Server spricht.

Firebird bietet grundsätzlich die Möglichkeit die Datenbank auch über einen Namen anzusprechen, der dann auf der Serverseite über die Datei aliases.conf auf den absoluten Datenbankkpfad des Servers gemapped wird. Das wäre grundsätzlich die saubere Lösung aber aus irgendeinem Grund wurde das bei Evident anders implementiert. Die Update Routine greift wahllos mal mit Groß- mal mit Kleinbuchstaben auf den Dateipfad zu.

Vermutlich ist die Vorstellung, dass ein SQL Client nichts davon wissen muss, wo die Dateien liegen, wenn er die IP Adresse des SQL-Servers und den Datenbanknamen kennt, für Windows Entwickler nicht so naheliegend.

Lösung

Die Lösung besteht also darin, dass das Filesystem auf der Unixseite case-insensitive wird. Für Solaris ist das relativ einfach, da hier ZFS zur Verfügung steht. ZFS kann man bei der Erzeugung des Filesystem per Option anweisen case-insensitive zu reagieren. Das geht leider nur beim Erzeugen des Filesystems. Ggf. muss den Datenbestand von also einmal in ein neu erzeugtes Filesystem umkopiert werden. Das ist mit ZFS kein großes Ding, da das Handling von RAID, LVM, Partitionen, Filesystem usw. alles im ZFS abgewickelt wird. Danach müssen noch zwei Parameter in der smb.conf angepasst werden und das Evident Update kann direkt von einem Windows Client aus gestartet werden.

Unter Linux gibt es auch eine ZFS Implementierung. Unter 64bit Linux ist die soweit ich informiert bin mittlerweile auch stabil. Von der 32bit Version sollte derzeit man die Finger lassen.

Alternativ kann man auch JFS von IBM unter Linux einsetzen. JFS kann ebenfalls beim Erzeugen des Filesystems per Option case-insensitive konfiguriert werden und löst das Problem in gleicher Weise.

Außerdem existiert noch ein FUSE wrapper, der die Funktionalität bei einem ext3 o.ä. „nachrüstet“ (http://www.brain-dump.org/projects/ciopfs/). Ich habe das nicht getestet, es klingt aber durchaus vielversprechend.

Software

Evident benötigt zum Betrieb zwei wesentliche Komponenten:

server.txt · Zuletzt geändert: 2014/04/21 09:48 von admin
Zuletzt angesehen: server
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0