Bei der Arbeit mit einem Softwarepaket fiel die Bemerkung dass man den ganzen Mist wegwerfen und neu entwickeln sollte. Mir fiel dazu ein dass es ein Tool gibt mit dem die Entwicklungskosten für Softwareprojekte abgeschätzt werden kann: ohloh.net berücksichtigt dazu im wesentlichen die Anzahl der Quellcodezeilen, das darunterliegende COCOMO-Modell, das zwar nicht völlig aus der Luft gegriffen ist, effektiv aber wohl auch nicht viel mehr bringt als eine Glaskugel.

Trotzdem: die Zahlen die dabei rausfallen sind schon beeindruckend. Selbst wenn man nur die Anzahl der Codezeilen ansieht, nicht die daraus folgenden Kosten (die mit $55k pro Personenjahr angesetzt werden):

Projekt Codebase Size Estimated Effort Estimated Cost
Apache HTTP Server 2.268.153 Zeilen 645 Personenjahre 35.476.462 Dollar
Apache OpenOffice 23.105.092 Zeilen 7361 Personenjahre 404.853.843 Dollar
Gimp 728.523 Zeilen 201 Personenjahre 11.034.951 Dollar
GNU Compiler Collection 6.435.383 Zeilen 1956 Personenjahre 107.585.880 Dollar
Linux Kernel 16.411.777 Zeilen 5321 Personenjahre 292.631.874 Dollar
MySQL 12.566.154 Zeilen 4009 Personenjahre 220.473.614 Dollar
Nagios 240.833 Zeilen 61 Personenjahre 3.334.334 Dollar
Perl 5.422.092 Zeilen 1664 Personenjahre 91.502.061 Dollar
PHP 2.281.573 Zeilen 653 Personenjahre 35.901.501 Dollar
Python Programming Language 908.412 Zeilen 251 Personenjahre 13.822.126 Dollar
Samba 1.554.832 Zeilen 442 Personenjahre 24.330.106 Dollar
Zabbix 279.878 Zeilen 73 Personenjahre 4.036.481 Dollar

Wie gesagt: alles nur Glaskugel, und sicher gibt es tausend Unwägbarkeiten wie autogenerierten Code, oder unterschiedliche Kosten für unterschiedlich qualifizierte Programmierer.

Für 300 Millionen Dollar würde ich persönlich aber durchaus anfangen einen Kernel zu schreiben… selbst wenn ich damit rechne bis zur Rente noch 30 Jahre hacken zu müssen, müsste der rechnerisch bis dahin ja nur 0,56% der Funktionalität bringen ((1 / 5321) * 30 * 100 = approx. 0.5638038)… wenn ich mir die richtigen 0,56% raussuche passt das schon… :-)

Einer der wie ich finde besten Teile aus der Star Trek Filmreihe ist der vierte: Zurück in die Gegenwart. Ich habe den schon einige Male gesehen, diesmal habe ich mir dazu auch die Trivia aus der IMDB angesehen.

Die meistzitierte Szene unter Nerds dürfte die sein in der Scotty die Formel für transparentes Aluminium in einen Computer der 80er Jahre des letzten Jahrhunderts eingibt. Ikonisch ist das „Hallo Computer“ das er in die Maus spricht. :-D

Dass die Kiste ein zeitgenössischer Macintosh ist kann man schwer übersehen. Interessant und dazu passend ist folgender Teil aus den Trivias:

The computer that Scotty uses to show transparent aluminum was originally going to be an Amiga, but Commodore would only provide a computer if they bought it. Apple was willing to loan them the Mac.

Der Film hatte 25 Millionen Dollar Budget, und die machen sich ins Hemd weil sie einen kleinen Computer kaufen sollen? Noch interessanter fand ich dann aber einige Absätze später folgendes:

The computer that Scotty uses in the Plexicorp scene appears to be a Macintosh Plus, but its internals were completely changed for filming. Its screen was replaced with one from an IBM PC to make it easier to synchronize its video refresh rate with the film camera’s frame rate, and the „transparent aluminum“ animation was created on an IBM PC by computer graphics company Video Image.

Merke: niemals was an Filmemacher verleihen. Wenn die das Ding von Apple nur geliehen hatten frage ich mich was Steve Jobs dazu gesagt hat dass er einen Mac zurückbekommen hat in dem ein PC steckt?!? :-)

Oh, und was ist die Moral von der Geschichte? Nicht-Fanboys werden wohl sagen dass so ein Mac leinwandtauglich aussieht, wenn es ans Arbeiten geht nimmt man aber wohl doch lieber den PC. Fanboys werden das dann wohl mit einem „außen hui, innen pfui“ kontern — was aus einigen Blickwinkeln auch durchaus verständlich erscheint…

Der gute alte Firefox ist immer noch der Browser meiner Wahl. Und er wird immer besser. Einziger Haken ist nach wie vor, dass er sich bisweilen doch ziemlich viel Hauptspeicher genehmigt. Man fragt sich was er wohl damit anstellt, und bis jetzt musste zumindest ich an der Stelle mit Vermutungen leben.

Oft ist es nicht der Firefox selbst, der den Speicher auffrisst. Auch Extensions können sich gerne mal ein großes Stück vom Kuchen abzwacken, und man schiebt es dann erstmal auf den Browser.

Gerade habe ich einen Weg kennengelernt, wie man sich seit Version 24 die Interna ansehen kann:

  • In der URL-Leiste about:support eingeben. Hier sind unter anderem alle Erweiterungen aufgelistet.
  • Man merke sich die ID der verdächtigen Extension (rechte Spalte).
  • Wieder per URL-Leiste — idealerweise in einem zweiten Tab — about:memory ansurfen. Hier unter „Show memory reports“ mit „Measure“ eine Messung tätigen.
  • Mit etwas Glück kann man direkt nach der gemerkten ID suchen (Strg-F). Klappt das nicht, sucht man nach „add-ons“ und expandiert hier so lange die Zweige bis man die gesuchte ID findet.

Gleich direkt mal sehen ob ich hier was überdimensional großes finde…

NAS4Free

NAS4Free

Anfang des Jahres habe ich meinen Server hier zu Hause komplett umgebaut, um etwas mehr Flexibilität und Komfort in die Virtualisierung zu kriegen. Nach etwas Suche bin ich auf Proxmox VE gestoßen, das ich dann auch eingesetzt habe. Nach wie vor ist der einzige Punkt mit dem ich da unglücklich bin die Paravirtualisierung mittels OpenVZ — das ist wohl nicht mehr ganz zeitgemäß. Aber wichtig ist: es funktioniert.

Vollvirtualisiert wird mit KVM, das hat es mir ermöglicht ein NAS4Free als Fileserver einzusetzen. Das basiert auf FreeBSD, es hat eine nette Oberfläche und ist alles in allem echt unkompliziert. Ein Killer-Feature ist die native Unterstützung von ZFS. Ausprobieren musste ich das, obwohl mir klar war dass das auf meiner bescheidenen Hardware wenig Spaß machen würde. Und richtig genug: spätestens mit ZFS waren Zugriffe auf Netzlaufwerke unerträglich langsam.

Ich will nichts gegen ZFS sagen. Das ist eine coole Technik, aber definitiv nicht für meine Umgebung gedacht. In einer virtuellen Maschine mit virtuellen Festplatten und nur sehr wenig Hauptspeicher kann es seine Leistung beim besten Willen nicht ausspielen. Schade. Wenn ich mal einen Fileserver auf echter Hardware bauen will komme ich gerne wieder drauf zurück. Und auf NAS4Free.

So musste ich mich erstmal nach einer Alternative umsehen. Dabei bin ich ziemlich schnell wieder auf zwei Projekte gestoßen von denen ich schon öfter gelesen hatte: OpenMediaVault und Openfiler. Bevor ich mich aber dazu entschließe alles umzuwerfen muss erstmal getestet werden ob die in meiner Situation besser performen würden. Also habe ich beide mal testweise installiert und ein paar Versuche unternommen.

Openfiler

Openfiler

Installiert hatte ich von diesen ISOs:

  • NAS4Free-x64-LiveCD-9.1.0.1.573.iso
  • openmediavault_0.5.0.24_amd64.iso
  • openfileresa-2.99.1-x86_64-disc1.iso

Aber erstmal die Rahmenbedingungen: in dem Server steckt ein Intel Core2Duo E6750, 8GB RAM, zwei SATA-Platten im Software-RAID1 und ein 100MBit-Netzwerk. Den virtuellen Maschinen habe ich jeweils 512MB RAM gegeben, das muss für so einen kleinen Einsatz genug sein finde ich. Systemplatten hatte ich jeweils in 1GB vorgesehen, aber an der Stelle hat Openfiler schon nicht mitgespielt: unter 10GB lässt der sich nicht installieren. Ganz schön viel für ein One-Trick-Pony. Belegt waren nach der Installation 1,7GB. OpenMediaVault hat sich 658MB genommen, NAS4Free war sogar mit 274MB zufrieden.

Mein Anspruch ist, dass ich der virtuellen Maschine bei Bedarf Festplatten nachschieben kann, die dann in einen logischen Verbund — LVM oder ZFS — stecke und darauf flexibel Volumes anlegen kann, deren Größe ich dann den Anforderungen anpassen kann. Redundanz brauche ich hier nicht, da die Platten im Hostsystem schon als RAID1 laufen.

OpenMediaVault

OpenMediaVault

Voll und ganz erfüllt den Anspruch ein ZFS auf NAS4Free. Nur ist das halt auf meiner Hardware zu langsam. Nur mal testweise habe ich ein JBOD auf NAS4Free angelegt. Da könnte ich zwar Platten nachschieben, dafür habe ich aber nicht herausgefunden wie ich einzelne Volumes anlegen kann (das was unter Linux LVM macht). Ob das überhaupt geht würde mich schon noch interessieren, aber schneller wuerde es dadurch wohl auch nicht mehr.

Auf den beiden Linux-Systemen habe ich jeweils ein LVM aus zwei 10GB-Platten angelegt — bei OpenMediaVault mit einem nachinstallierten Plugin — und darin ein ext4-Volume mit 12GB erzeugt auf dem ich getestet habe. Openfiler unterstützt auch schon btrfs, also habe ich das auch mal ausprobiert.

Drei Tests habe ich auf allen diesen Plattformen durchgeführt: erst habe ich ein ISO-File per SCP auf die Laufwerke übertragen (ubuntu-12.10-desktop-amd64.iso, etwa 800MB), dann jeweils an der Shell lokal auf den NAS-Systemen ein tar-File dieses ISOs angelegt (time tar cf test.tar ubuntu*.iso). Zusätzlich habe ich die beiden Tests lokal auf dem Proxmox durchgeführt, nur um ein Gefühl dafür zu bekommen was die Physik hergeben würde. Hier die Zahlen:

  ISO per SCP kopieren ISO in tar packen (lokal)
Lokal, ohne NAS 40.2MB/s 17s
NAS4Free / ZFS 3.7MB/s 247s
NAS4Free / JBOD 6.4MB/s 94s
OpenMediaVault / LVM / ext4 13.5MB/s 26s
Openfiler / LVM / ext4 17.7MB/s 77s
Openfiler / LVM / btrfs 15.9MB/s 50s

Nochmal der Hinweis: das sind nur Stichproben. Ich habe alle Tests nur einmal durchgeführt, und man wird garantiert andere Werte bekommen wenn man die NAS-Systeme nicht in einer virtuellen Maschine installiert sondern auf richtigem Blech. Mir persönlich reichen die Zahlen als Anhaltspunkte. YMMV.

So gerne ich auch bei NAS4Free bleiben würde: ich denke mein neuer Fileserver wird ein OpenMediaVault werden. Auf meiner schmalen und noch dazu virtualisierten Hardware kann NAS4Free sich leider nicht wirklich entfalten. Die Zahlen sprechen hier einfach für Linux. Und OpenMediaVault macht nicht nur beim IO einen guten Eindruck, auch der schmale Fußabdruck bei der Installation ist sympathisch. Oh, und unten drunter liegt ein Debian, das befindet sich hier in guter Gesellschaft. Nur auf btrfs muss ich leider noch verzichten. Das gibt es erst wenn OMV ein Update auf Squeeze vornimmt. Aber bis dahin habe ich schonmal was… :-)

So sieht's aus. :-(

So sieht’s aus. :-(

… und noch während ich mir online die Bestätigung durchlese dass der Angreifer auch meine Daten abgezogen hat klingelt der Postbote und bringt fast den gleichen Text als Brief. Immerhin: Vodafone scheint da sehr offen mit umzugehen. Also nicht mit den Datensätzen, das will ich nicht behaupten. Aber mit der Tatsache dass sie — erfolgreich — angegriffen wurden. Löblich!

Wer testen will ob er auch betroffen ist kann das online checken, man gibt auf der Seite nur Kontonummer und Bankleitzahl ein. Die Übertragung passiert dann sicher per SSL… :-)