Alexander (HH): Businessplan für eine Online-Plattform. Größtes Problem: Zahlen

Beitrag lesen

Moin Moin!

Da sind Dateinamen genannt, die sich im Verzeichnis /etc/company/ befinden (wobei das ebenfalls ein Vorschlag und keine Pflichtregel ist). Oder alternativ via Hostnamen.

Der Haken an Hostnamen ist, dass die libc bei der Abfrage gerne erstmal jede Menge Theater anstößt, um herauszufinden, wie man Hostnamen herausfindet (/etc/nsswitch.conf parsen), dann /etc/hosts, /etc/resolv.conf ö.ä. lesen, ggf. Libraries nachladen, ggf. auch noch eine DNS- oder NIS-Abfrage an einen anderen Server abschicken und auf Antwort warten. Der Test, ob ein Eintrag im Dateisystem existiert oder nicht ist dagegen ein einziger Systemcall -- lstat(). Der Unterschied ist bei einem permanent laufenden Prozess zu vernachlässigen, wenn der Hostname einmalig beim Start ermittelt wird. Bei CGIs passiert das Theater pro Request, und da ist die Dateisystem-Abfrage wesentlich schneller und schonender.

Wenn man ohnehin eine Konfigurationsdatei lesen muß, z.B. um herauszufinden, wie man sich mit der DB verbinden kann, bietet sich ein symbolischer Link an, der je nach Maschine unterschiedlich gesetzt ist. Der Symlink zeigt entweder direkt auf die Konfigurationsdatei, oder, wenn noch mehrere Dateien zwischen Dev, Test, Staging und Live unterschiedlich sind, auf ein Verzeichnis.

So könnte das auf dem Staging-Server aussehen (spaßigerweise mit zwei Live-Systemen):

/etc/company>ls -lFR
.:
total 0
drwxr-xr-x 2 alex users  80 2009-08-05 17:38 dev/
drwxr-xr-x 2 alex users  80 2009-08-05 17:38 live01/
drwxr-xr-x 2 alex users  80 2009-08-05 17:38 live02/
drwxr-xr-x 2 alex users  80 2009-08-05 17:38 staging/
drwxr-xr-x 2 alex users  80 2009-08-05 17:38 test/
lrwxrwxrwx 1 alex users   7 2009-08-05 17:39 this-machine -> staging/

./dev:
total 8
-rw-r--r-- 1 alex users  26 2009-08-05 17:36 config.dat
-rw-r--r-- 1 alex users 264 2009-08-05 17:38 logo.png

./live01:
total 8
-rw-r--r-- 1 alex users  26 2009-08-05 17:37 config.dat
-rw-r--r-- 1 alex users 264 2009-08-05 17:38 logo.png

./live02:
total 8
-rw-r--r-- 1 alex users  26 2009-08-05 17:37 config.dat
-rw-r--r-- 1 alex users 264 2009-08-05 17:38 logo.png

./staging:
total 8
-rw-r--r-- 1 alex users  26 2009-08-05 17:37 config.dat
-rw-r--r-- 1 alex users 264 2009-08-05 17:38 logo.png

./test:
total 8
-rw-r--r-- 1 alex users  26 2009-08-05 17:37 config.dat
-rw-r--r-- 1 alex users 264 2009-08-05 17:38 logo.png

Die Konfigurationsdatei wird immer über /etc/company/this-machine/config.dat angesprochen, das Logo immer über /etc/company/this-machine/logo.png.

Im SVN (git, whatever) steht der Link *NICHT* drin, er wird erst vom Installationsprogramm (typischerweise ein Script) angelegt, für jede Maschine anders.

Interessant. Ich dachte, die hätten auch ihre "Haken", nämlich auf entsprechende Bandlaufwerke angewiesen zu sein, entsprechende Treiber und Software zum rückspielen, langsamere Zugriffszeiten.

Treiber für gängige Bandlaufwerke bringt jedes ernsthafte Betriebssystem mit, denn für SCSI hat man sich vor langer Zeit auf ein gemeinsames Protokoll für die Ansteuerung von Bandlaufwerken geeinigt. Und eine passende Software ist auch dabei, der Tape ARchiver -- tar.

(Über Spielzeug-Streamer am Floppy-Anschluß sei mal gnädig der Mantel der Zeit gehüllt ...)

Zugriffszeiten für Random Access sind bei einem Band tatsächlich katastrophal schlecht, weil ewig hin und her gespult werden muß. Aber die lineare Transferrate kann sich durchaus sehen lassen: 6 MByte / sec schafft ein DLT 8000, und das ist grottig alt. Präziser: Es *VERLANGT* einen *KONTINUIERLICHEN* Datenstrom von mind. 6 MByte / sec bei der Datenanlieferung. Die moderneren Bandsysteme sind nochmal um einiges schneller. Beim LTO Ultrium 3 sind 24 MByte / sec angesagt - beständig über ein Datenvolumen von 400 GByte.

Zugegeben, es gibt schnellere Schnittstellen. Gigabit Ethernet ist schon schneller, und genau deswegen trickst man bei größeren Installationen: Die Produktivserver werden auf einen Backup-Server mit einem großen, schnellen Plattenarray gesichert, und von dort aus geht es es "gemütlich" weiter zum Streamer. Als netten Nebeneffekt kann man das Backup auf dem Backup-Server liegen lassen und kommt so an die gesicherten Daten heran, ohne dass das Band gespult werden muß.

Aber alles nur Halb"wissen". Zudem muten Bänder so "altmodisch" an, damals an der Uni wurden die Sachen auf Bänder in der Zedat abgelegt. Die Bänder mussten dann immer wieder eingelegt werden, wenn man darum bat, Dateien, die länger als 2 Monate nicht genutzt worden waren, zurückzuspielen.

Das ist Ersetzen von Festplattenplatz durch Bandplatz. Beim Backup machst Du genau das NICHT. Alle Daten bleiben auf der Platte, das Band enthält nur eine Kopie aller Daten auf der Festplatte, ggf. ohne Temp-Dateien.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".