Ein Wochenende nähert sich seinem Ende. Angesichts des Tags der Deutschen Einheit am Samstag war es zumindest rein subjektiv anders als üblich, beispielsweise konnte nicht eingekauft werden, und Vorlesungen fanden demzufolge ebenfalls nicht statt. Ergo ergab sich eine willkommene Gelegenheit zur Beschäftigung mit neuen Themen und letztlich einigen Tests.
Solr
Seit geraumer Zeit setzen wir bei Clipfish auf Solr als Suchmaschine. Solr basiert auf der Technologie der Apache Lucene Java Bibliothek und bietet ein Komplettpaket bestehend aus Indizierung, Suche, Caching, Replikation und Web Administration Interface. Solr benötigt einen Java Servlet Container wie Tomcat oder Jetty, wobei Jetty im Solr-Paket enthalten ist. Solr indiziert XML-Daten, das Suchergebnis wird als XML oder JSON ausgegeben. Mittels PHP-Skripte werden die Daten aus der Datenbank entnommen und in ein XML-Format überführt. Diese XML-Daten werden dem Indizierer übergeben, welcher die Index-Datei generiert.
Der aufwändige Umweg über PHP-Skripte soll in Zukunft vermieden werden. Clipfish bietet inzwischen APIs in verschiedenen Formaten, u.a. XML. Daher bietet es sich an, diese als Quelle zur Indizierung zu verwenden. Letztlich dauerten die ersten Tests ein wenig länger, aber am Freitagabend war es dann so weit – ein Video-Objekt konnte erfolgreich über den HttpDataSource mit Hilfe des XPathEntityProcessor zur Transformierung des Video-Objekt-Formats in das native Solr-Format indiziert werden. Weitere Tests werden folgen, wobei der erste Schritt wie immer der wichtigste ist. Der Rest ist nur solides Handwerk.
DVD aus einer EyeTV-Aufzeichnung
Als bekennender Udo Jürgens Fan hatte ich in der letzten Woche verpasst, die Geburtstagsgala zu Udos 75. auf dem DVD-Festplatten-Rekorder aufzuzeichnen. Davon wäre eine Kopie auf DVD einfach möglich gewesen. Statt dessen wurde die Sendung nur per EyeTV auf dem iMac aufgenommen. Trotzdem wollte ich die Aufzeichnung dann auf DVD bannen. Irgendwie. Dazu muss bemerkt werden, dass sich meine Erfahrungen mit Videobearbeitung auf nahezu Null beschränken. Also was tun? Die Sendung war im nativen EyeTV-Format auf dem Server. Nun bietet EyeTV mehrere Exportformate. Da auf dem Mac iMovie installiert ist, bot es sich an, dies zu nutzen. Exportiert. Aus den 3,6 GB wurden in etwa einer Stunde plötzlich 25 GB in Dateien zu je ca. 1 GB. EyeTV meinte, dass dieses Partitionierung besser und sinnvoll sei. In einer weiteren Dreiviertelstunde waren sie auf dem anderen respektive schnelleren iMac übers Netzwerk kopiert. Nun kann iMovie zwar Filme generieren, aber nicht auf DVD brennen. Dazu gibt es iDVD. Aber erstmal wollte ein Projekt in iMovie angelegt werden, dann konnten die Dateien importiert werden. Das dauerte inkl. Erstellung der kleinen Ansichten dann etwa eine weitere Dreiviertelstunde. Anschließend mussten die einzelnen Stücke ins Projekt gezogen und dort zusammengefügt werden. Bei diesem Schritt habe ich mich dann spätestens nach dem Sinn der ca. 25 einzelnen Dateien gefragt… Nun hatte ich iDVD vorher entnommen, dass iMovie Projekte verarbeitet werden können. Leider stellte sich dies als nur halb richtig heraus, denn zuvor musste der Film wiederum komplett von iMovie per Medienübersicht (weshalb der Menüpunkt nicht einfach „Export“ heisst, hat sich mir nicht erschlossen) exportiert werden. Etwa zweieinhalb Stunden später meldete iMovie den erfolgreichen Vollzug dieser Aktion. Nun schnell in iDVD importiert, Menü erstellt, und DVD gebrannt. Zugegebenermassen war ich optimistisch, was diesen Schritt anbetraf, und hatte mit wenigen Minuten gerechnet. Doch iDVD wollte jedes Bild für die DVD rendern – und auf dem iMac dauerte dies dann angekündigte nahezu sechs Stunden… Dies erlebte ich dann jedoch nicht mehr live, vielmehr nahm ich das Ergebnis am Morgen entgegen. Immerhin, die DVD ist fertig, die Qualität ist durchaus brauchbar. Der Aufwand hingegen war insgesamt jenseits meiner Vorstellungen. Wer kennt einen einfacheren und vor allem automatisierten Weg, um EyeTV-Aufzeichnungen in einem für einen DVD-Player geeigneten Format auf DVD zu brennen?
Virtuelle Server mit KVM/QEMU
Cloud Computing und Virtualisierung, Hype-Themen der letzten Zeit. Während die Definitionen von Cloud Computing noch immer als schwammig zu bezeichnen sind, ist die Einrichtung virtueller Maschinen auf einem Server ganz einfach praktisch. Sei es, um Dienste wie Mail-, Web-, oder Datenbankserver zu trennen und flexibel Ressourcen zuzuteilen oder auch, um Software zu testen, ohne die bisherige Umgebung zu kompromittieren. Mein bisheriger Favorit war die Lösung OpenVZ, welche isolierte, virtuelle Umgebungen auf einem Linux-Server bereit stellt. Leider hinken die dazu notwendigen Kernel-Patches den aktuellen Versionen sehr weit hinterher, darüber hinaus ist die Unterstützung in neueren Ubuntu-Varianten nicht mehr gegeben, d.h. es wäre notwendig gewesen, den Patch und die Kompilierung des Kernels selbst vorzunehmen. Dieser Aufwand war vor vielleicht zehn Jahren adäquat, doch inzwischen greife ich lieber auf Standardinstallationen zurück. In neueren Ubuntu-Distributionen ist der Standard KVM, eine Infrastruktur zur Virtualisierung enthalten. Dazu passend gibt es die freie virtuelle Maschine QEMU, welche die Hardware eines Rechners emuliert. KVM setzt die Unterstützung von Hardware-Virtualisierung im Prozessor voraus. Der vorhandene AMD Athlon 64 X2 Dual Core 4200+ bietet diese Funktionalität. Dennoch waren bisherige Tests nicht erfolgreich. Denn im BIOS muss die Virtualisierungsfunktion aktiviert sein. Leider war das BIOS zu alt – es fehlten jegliche derartige Optionen. Also BIOS updaten. Einfacher gesagt als getan, denn die Anleitungen für das Mainboard auf der Website von ASUS wollten das Flash-Update-Programm auf einer Floppy Disk installieren. Diskettenlaufwerk? Auch das war vielleicht vor zehn Jahren Standard… Glücklicherweise nannte das Handbuch eine weitere Möglichkeit, einfach die BIOS-Datei auf einem USB-Stick installieren, dann Alt-F2 beim Booten drücken, wonach das integrierte Flash-Update-Programm geladen wurde. Dies konnte die Datei vom USB-Stick laden, und wenige Minuten später war das BIOS aktuell. Dort fand sich dann auch die Option zur Aktivierung der Virtualisierungsfunktion. Daraufhin waren auch die ersten Tests mit KVM bzw. der libvirt-Bibliothek erfolgreich, die Enrichtung des ersten virtuellen Servers gelang nach der Anleitung im Ubuntu Server Guide. Endgültig erfolgreich war dies jedoch erst, als der Bildschirminhalt der virtuellen Maschine auf das lokale Display umgeleitet werden konnte. Grundsätzlich mit dem X Window System bzw. dem hier verwendeten VNC kein Problem. Doch die Standard-Installation sah nicht vor, dass der X-Server über das Netz verfügbar ist. Dazu musste erst in /etc/gdm/gdm.conf die Option DisallowTCP=false gesetzt werden – die Änderung von -nolisten TCP in der /etc/X11/xinit/xserverrc war ohne Bedeutung. Neustart des GDM nicht vergessen. Nachdem nun alle Rechner im Netz sich dank xhost + mit dem Display verbinden durften, funktionierte auch der Aufruf von virt-manager, dem GUI-Tool zur Verwaltung der virtuellen Maschinen. Diesmal wäre mir eine textbasierte Oberfläche dann doch lieber gewesen. Die Installation des Ubuntu Server in einer Minimalkonfiguration dauerte nur wenige Minuten, anschließend stand die virtuelle Maschine bereit. Einzig die Konfiguration des Bridging-Netzwerks steht der Inbetriebnahme eines Produktivsystems noch im Weg.
Oder anders: Das nächste Wochenende kommt bestimmt…