Archiv der Kategorie: Betriebssystem

Komprimieren mit xz

packenUnter Linux gibt es einige bekannte Befehle zum Komprimieren und Dekomprimieren von Dateien.

  • gzip, gunzip
  • bzip2, bunzip2

Eher unbekannt, aber trotzem vorhanden ist der Komprimierer xz.

Das mag verschieden Gründe haben. Zunächst wohl die zu hohe Verbreitung von Dateien, die mit gzip (*.gz) oder 'bzip2' (*.bz2) komprimiert und im Umlauf sind. Auch die Tatsache, dass viele Umgebungen in ihre Anzeige- und Entpack-Tools eine Unterstützung dieser Kompressoren eingebaut hat mag mit daran Schuld sein.

Es stellt sich zunächst mal die Frage “Warum noch ein Tool zum komprimieren von Daten?”

Diese lässt sich leicht erklären. Zwar können die bisher existierenden Tools diese Arbeit übernehmen, aber wirklich effizient sind sie nicht. Die Geschwindigkeit oft der Grund warum eher auf gzip zurückgegeriffen wird statt das effizientere, aber deutlich langsamere, bzip2 zu nutzen.

Um die verschiedenen Kompressoren zu vergleichen nutze ich eine ISO – Datei der Distribution Nepu Linux (http://eworm.de/linux/nepu) — einer Live-CD basieren auf Arch Linux — und komprimiere sie ohne Anpassung der Parameter mit allen 3 Verfahren:

nepulinux.iso 594M
Die Originaldatei
nepulinux.iso.gz 582M
Innerhalb von 21 Sekunden wurde die Datei um 12M gekürzt
nepulinux.iso.bz2 584M
Nach 2 Minuten und 22 Sekunden ist die Datei um 10M gekürzt. Das ist 2M weniger als bei gzip.
nepulinux.iso.xz 581M
Auch wenn es mit 5 Minuten und 9 Sekunden deutlich länger gedauert hat ist die Datei um 13M kleiner als die Startdatei.

Wie man sehen konnte ist bzip2 für solche ISO – Dateien, die meist schon vorkomprimiert sind, keine gute Option. Obwohl es deutlich länger braucht bringt es keine Vorteile, sondern erzeugt ein größeres Ergebnis als gzip.

xz hingegen hat es geschafft noch einen Teil an Daten zu komprimieren. Dabei hat es allerdings auch deutlich mehr Zeit benötigt.

Grund für diesen Mehrbedarf an Zeit ist die Art der Komprimierung. Es werden im Hintergrund Tabellen erzeugt mit wiederkehrenden, komprimierbaren, Inhalten um diese durch einfache Hinweise zu ersetzen. Je nach Kompressor werden diese Tabellen größer und verbrauchen entsprechend mehr Rechenzeit und Arbeitsspeicher in der Abarbeitung.

Gleichzeitig haben alle diese Kompressoren ein Manko gemeinsam. Sie arbeiten nur mit einem Prozessorkern und sind daher in den Möglichkeiten bezüglich der Rechenzeit an diesen Kern gebunden.
Erst Alternativen wie z. B. pixz stellen die Möglichkeit her alle vorhandenen Prozessorkerne parallel zu nutzen und damit den kompletten Prozess zu beschleunigen.

Die Datei nepulinux.iso mit pixz komprimiert ist mit 4 Prozessorkernen nach 1 Minute und 39 Sekunden fertig.

Nach dem recht entäuschenden Ergebnissen mit ISO – Dateien ein Beispiel aus der Praxis: Eine virtuelle Maschine soll entsorgt und archiviert werden. Das verwendete Containersystem OpenVZ erzeugt hierzu ein tar-Archiv mit den Daten. Das Archiv ist 53G groß.

Nach der Komprimierung mit bzip2 bleiben 16G über. Die Komprimierung mit gzip wurde auf Grund der Erwartung schlechter Werte nicht durchgeführt.

Allerdings hat xz alle Erwartungen übertroffen: 2.5G nach Komprimierung bleiben über. Damit hat es 50.5G Platz in der Datensicherung gespart. Nachteilig natürlich die Laufzeit von fast 5 Stunden mit der normalen xz – Variante.

Interessant wären nun die Zeiten beim entpacken.

Aber vielleicht finden wir die in den Kommentaren 😉

Chromium und CAcert

Nachdem mir viele erzählt haben wie schnell Chromium, die OpenSource Variante des Google Chrome Browsers, sein soll, wollte ich mich davon überzeugen und habe ihn auf meine Gentoo – Maschine installiert.

Ein einfaches emerge www-client/chromium reichte aus und wenige Minuten später war er installiert. Mit chromium aufgerufen kam eine Nachfrage nach der zu verwendenden Suchmaschine und darauf das Hauptfenster.

Wenn man von anderen Browsern viele Button gewöhnt ist, dann stellt Chromium sich in der Grundausstattung sehr nüchtern und nur mit der minimalen Ausstattung dar.

Die Zugriffszeiten haben mich sehr erstaunt und es lässt sich mit diesem Browser sehr elegant arbeiten. Bis auf einen Punkt…

Alle Webseiten mit einem CAcert – Zertifikat werden immer mit einem Hinweis geöffnet, dass das Zertifikat nicht korrekt nachvollziehbar ist.

Im Gegensatz zum Mozilla Firefox lässt sich aber ein Zertifikat nicht einfach über die Oberfläche hinzufügen. Es wird hierfür ein kleines Hilfsprogramm namens certutil benötigt.

Lädt man sich zunächst das CAcert Root 3 Zertifikat herunter und führt dann den Import des Zertifikats mittels certutil durch, ist das Problem mit den Hinweisen Geschichte:

wget -O class3.crt https://secure.cacert.org/certs/class3.crt
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n CAcert-Class3 -i class3.crt

Zugegebenermaßen ist dies ein wenig umständlich, aber vielleicht kennt jemand einen einfacheren Weg die Hinweise loszuwerden.

Zwischen den Tagen: Festplattentausch

Nach Weihnachten kommen die ruhigen Tage bis kurz vor Sylvester.

Genau die letzten Stunden wurden durch die Tatsache, dass sich die Festplatte unseres Servers verabschiedet hat und mit einer ‘media error’ Meldung sämtlichen OpenVZ – Maschinen ein Read-Only – Dateisystem verpasst hat, interessant. Natürlich war mit diesem Zustand keine Arbeit mehr möglich. Ein Neustart hat dann das System kurzfristig wieder hervorgeholt, aber nach 2 Stunden gab es den nächsten ‘media error’. Meine Hoffnung das Problem über Tag regeln zu können war damit erledigt.

Glücklicherweise ist unser Managed Server Provider auch über Nacht erreichbar und mir wurde eine zusätzliche Festplatte in den Server eingebaut um die Daten von der alten Festplatte kopieren zu können. Nach 5 Stunden war die Aktion beendet und der alte Server auf der neuen Festplatte konnte wieder ans Netz gehen. Zur Sicherheit wurde die alte Festplatte weiterhin im Server belassen.

Damit war das nächste Problem da: Wie kommt die Platte wieder aus dem Server?

Ganz einfach: Herunterfahren, ausbauen lassen, starten.

Schön wäre es gewesen, wenn es so einfach wäre. Aber der Bootloader auf der neuen Festplatte wollte nicht wirklich und beim vorherigen Start wurde der Bootloader (Grub) von der alten Festplatte geladen. Nach einiger Fehlersuche und der Installation einer statischen Grub – Version lief das System dann auch wieder normal hoch und die Seiten sind wieder verfügbar.

Themenabend am 10.11.2010: selber Kernel bauen

Kernel MapAuf dem letzten Stammtisch kam mehrfach das Thema Kernel auf. Unter anderem hatte Frank das Problem, dass sein USB – TV – Adapter mit dem Standard-Kernel nicht mehr wollte und er einen Patch benötigt um den Treiber in den aktuellen Kernel einzubauen. Manfred konnte ihm zwar einen passenden Kernel bauen, aber mit dem nächsten Update wäre dieser wieder weg und es müsste der nächste gepatched werden.

Da dies für die meisten Linux – User ein Problem ist wollten wir im kleinen Workshop die Feinheiten des Kernelbaus erarbeiten.

Auch diesmal durfte eine kleine “Bastelübung” nicht fehlen. Herausgekommen ist dabei mein “erweiterter Desktop”…

Themenabend am Stammtisch weitergeführt


Es passiert nicht oft, dass ein Themenabend einen solch bleibenden Eindruck hinterläßt, dass das Thema auch noch einige Wochen später auf dem nächsten Stammtisch das dominierende Thema ist.
Diesmal, mit dem Thema Android, haben wir anscheinend einen Nerv getroffen, denn eines unsere Vereinsmitglieder (Frank) hat sich umgehend ein HTC Magic angeschafft um auch mit Android arbeiten zu können. Natürlich ergaben sich sofort Fragen zum Handling und auch zu interessanten Applikationen, die während des Stammtischs geklärt werden konnen.