Definition

Komprimierung (Kompression)

Bei der Datenkomprimierung wird die Anzahl der für die Darstellung von Daten benötigten Bits verringert. Durch die Komprimierung von Daten kann Speicherkapazität eingespart, die Dateiübertragung beschleunigt und die Kosten für Speicherhardware und Netzwerkbandbreite gesenkt werden.

Funktionsweise der Komprimierung

Die Komprimierung wird von einem Programm durchgeführt, das anhand einer Formel oder eines Algorithmus bestimmt, wie die Datengröße zu verringern ist. Ein Algorithmus kann beispielsweise eine Bitfolge - oder 0s und 1s - durch eine kleinere Folge von 0s und 1s darstellen, indem er ein Wörterbuch für die Umwandlung zwischen ihnen verwendet. Die Formel kann auch einen Verweis oder Zeiger auf eine Zeichenfolge aus 0 und 1 einfügen, die das Programm bereits gesehen hat.

Die Textkomprimierung kann so einfach sein wie das Entfernen aller nicht benötigten Zeichen, das Einfügen eines einzelnen Wiederholungszeichens zur Kennzeichnung einer Kette von wiederholten Zeichen und das Ersetzen einer häufig vorkommenden Bitkette durch eine kleinere Bitkette. Die Datenkompression kann eine Textdatei auf 50 Prozent oder einen wesentlich höheren Prozentsatz ihrer ursprünglichen Größe reduzieren.

Bei der Datenübertragung kann die Komprimierung auf den Dateninhalt oder auf die gesamte Übertragungseinheit, einschließlich der Kopfdaten (Header-Daten), angewendet werden. Wenn Informationen über das Internet gesendet oder empfangen werden, können größere Dateien - entweder einzeln oder zusammen mit anderen als Teil einer Archivdatei - in einem ZIP-, GZIP- oder anderen komprimierten Format übertragen werden.

Warum ist Datenkomprimierung wichtig?

Durch Datenkomprimierung kann der Speicherplatzbedarf einer Datei drastisch verringert werden. Bei einem Komprimierungsverhältnis von 2:1 benötigt eine 20 Megabyte (MB) große Datei beispielsweise nur 10 MB Speicherplatz. Infolge der Komprimierung müssen Administratoren weniger Geld und Zeit für die Speicherung aufwenden.

Die Komprimierung optimiert die Leistung des Backup-Speichers und hat sich auch bei der Reduzierung von Primärspeicherdaten bewährt. Die Komprimierung wird eine wichtige Methode zur Datenreduzierung sein, da die Datenmenge weiterhin exponentiell wächst.

Praktisch jeder Dateityp kann komprimiert werden, aber es ist wichtig, bei der Auswahl der zu komprimierenden Dateien bewährte Verfahren zu beachten. Einige Dateien sind beispielsweise bereits komprimiert, so dass die Komprimierung dieser Dateien keine nennenswerten Auswirkungen hätte.

Methoden der Datenkomprimierung: verlustfreie und verlustbehaftete Komprimierung

Die Komprimierung von Daten kann verlustfrei oder verlustbehaftet erfolgen. Bei der verlustfreien Komprimierung wird der ursprüngliche Zustand einer Datei wiederhergestellt, ohne dass auch nur ein einziges Bit an Daten verloren geht, wenn die Datei entkomprimiert wird. Die verlustfreie Komprimierung ist der typische Ansatz bei ausführbaren Dateien sowie bei Text- und Tabellenkalkulationsdateien, bei denen der Verlust von Wörtern oder Zahlen die Informationen verändern würde.

Bei der verlustbehafteten Komprimierung werden Datenbits, die redundant, unwichtig oder nicht wahrnehmbar sind, dauerhaft eliminiert. Die verlustbehaftete Komprimierung eignet sich für Grafiken, Audio, Video und Bilder, bei denen die Entfernung einiger Datenbits keine oder nur geringe Auswirkungen auf die Darstellung des Inhalts hat.

Die Komprimierung von Grafiken kann verlustbehaftet oder verlustfrei sein. Grafikdateiformate sind in der Regel darauf ausgelegt, Informationen zu komprimieren, da die Dateien in der Regel sehr groß sind. JPEG ist ein Bilddateiformat, das verlustbehaftete Bildkompression unterstützt. Formate wie GIF und PNG verwenden eine verlustfreie Komprimierung.

Abbildung 1: Ein Kurzvergleich beider verfügbarer Komprimierungsmethoden.
Abbildung 1: Ein Kurzvergleich beider verfügbarer Komprimierungsmethoden.

Komprimierung vs. Datendeduplizierung

Die Komprimierung wird oft mit der Datendeduplizierung verglichen, aber die beiden Techniken funktionieren unterschiedlich. Bei der Deduplizierung handelt es sich um eine Art der Komprimierung, bei der in einem Speicher- oder Dateisystem nach redundanten Datenpaketen gesucht wird und jedes doppelte Paket durch einen Zeiger (Pointer) auf das Original ersetzt wird. Datenkomprimierungsalgorithmen reduzieren die Größe der Bitstrings in einem Datenstrom, der viel kleiner ist und im Allgemeinen nicht mehr als das letzte Megabyte oder weniger an Daten speichert.

Die Deduplizierung auf Dateiebene eliminiert redundante Dateien und ersetzt sie durch Stubs, die auf die Originaldatei verweisen. Bei der Deduplizierung auf Blockebene werden doppelte Daten auf der Ebene der Unterdateien identifiziert. Das System speichert eindeutige Instanzen jedes Blocks, verwendet einen Hash-Algorithmus, um sie zu verarbeiten, und erzeugt eine eindeutige Kennung (Unique Identifier), um sie in einem Index zu speichern. Bei der Deduplizierung wird in der Regel nach größeren Datenpaketen als bei der Komprimierung gesucht, und die Systeme können die Deduplizierung mit einer festen oder variablen Paketgröße durchführen.

Deduplizierung ist am effektivsten in Umgebungen, die ein hohes Maß an redundanten Daten aufweisen, wie zum Beispiel Virtuelle Desktop-Infrastrukturen oder Backup-Systeme. Die Datenkomprimierung ist in der Regel effektiver als die Deduplizierung, wenn es darum geht, die Größe einzigartiger Informationen wie Bilder, Audio, Videos, Datenbanken und ausführbare Dateien zu reduzieren. Viele Speichersysteme unterstützen sowohl Komprimierung als auch Deduplizierung.

Datenkomprimierung und Datensicherung

Die Komprimierung wird häufig für Daten verwendet, auf die nur selten zugegriffen wird, da der Prozess sehr intensiv sein und die Systeme verlangsamen kann. Administratoren können die Komprimierung jedoch nahtlos in ihre Sicherungssysteme integrieren.

Bei der Datensicherung (Backup) handelt es sich um eine redundante Arbeitslast, da bei diesem Prozess häufig dieselben Dateien erfasst werden. Ein Unternehmen, das Voll-Backups durchführt, hat oft fast die gleichen Daten von Backup zu Backup.

Die Komprimierung von Daten vor dem Backup bietet große Vorteile:

  • Die Daten benötigen weniger Speicherplatz, da das Komprimierungsverhältnis bis zu 100:1 betragen kann, üblich sind jedoch Werte zwischen 2:1 und 5:1.
  • Wenn die Komprimierung auf einem Server vor der Übertragung erfolgt, werden die für die Übertragung der Daten benötigte Zeit und die gesamte Netzwerkbandbreite drastisch reduziert.
  • Auf Bandmedien kann das komprimierte, kleinere Dateisystemabbild schneller gescannt werden, um eine bestimmte Datei zu erreichen, was die Wiederherstellungslatenz verringert.
  • Komprimierung wird von Sicherungssoftware und Bandbibliotheken unterstützt, so dass eine Auswahl an Datenkomprimierungstechniken zur Verfügung steht.

Vor- und Nachteile der Komprimierung

Die Hauptvorteile der Komprimierung liegen in der Verringerung der Speicherhardware, der Datenübertragungszeit und der Kommunikationsbandbreite - und in den daraus resultierenden Kosteneinsparungen. Eine komprimierte Datei benötigt weniger Speicherkapazität als eine unkomprimierte Datei, und die Verwendung der Komprimierung kann zu einer erheblichen Senkung der Ausgaben für Festplatten und/oder Solid-State-Laufwerke führen. Eine komprimierte Datei benötigt auch weniger Zeit für die Übertragung und verbraucht weniger Netzwerkbandbreite als eine unkomprimierte Datei.

Der größte Nachteil ist die Beeinträchtigung der Leistung durch den Einsatz von CPU- und Speicherressourcen für die Komprimierung der Daten. Viele Anbieter haben ihre Systeme so konzipiert, dass sie versuchen, die Auswirkungen der prozessorintensiven Berechnungen im Zusammenhang mit der Komprimierung zu minimieren. Wenn die Komprimierung inline erfolgt, bevor die Daten auf die Festplatte geschrieben werden, kann das System die Komprimierung auslagern, um Systemressourcen zu sparen. IBM beispielsweise verwendet bei einigen seiner Unternehmensspeichersysteme eine separate Hardware-Beschleunigungskarte für die Komprimierung.

Wenn die Daten nach dem Schreiben auf die Festplatte komprimiert werden, kann die Komprimierung im Hintergrund laufen, um die Auswirkungen auf die Leistung zu verringern. Obwohl die Post-Process-Komprimierung die Reaktionszeit für jede I/O verkürzen kann, verbraucht sie dennoch Memory und Prozessorzyklen und kann die Gesamtzahl der I/Os, die ein Speichersystem verarbeiten kann, beeinträchtigen. Außerdem müssen die Daten zunächst in unkomprimierter Form auf Festplatten oder Flash-Laufwerke geschrieben werden, so dass die Einsparungen beim physischen Speicherplatz nicht so groß sind wie bei der Inline-Komprimierung.

Dateisystem-Komprimierung

Die Dateisystemkomprimierung verfolgt einen recht einfachen Ansatz zur Verringerung des Speicherbedarfs von Daten, indem jede Datei beim Schreiben transparent komprimiert wird.

Viele der gängigen Linux-Dateisysteme - einschließlich Reiser4, ZFS und btrfs - und Microsoft NTFS verfügen über eine Komprimierungsoption. Der Server komprimiert Datenpakete in einer Datei und schreibt dann die kleineren Fragmente in den Speicher.

Das Zurücklesen erfordert eine relativ geringe Latenzzeit, um jedes Fragment zu erweitern, während das Schreiben eine erhebliche Belastung für den Server darstellt, so dass die Komprimierung normalerweise nicht für flüchtige Daten empfohlen wird. Die Komprimierung von Dateisystemen kann die Leistung beeinträchtigen, daher sollte sie nur bei Dateien eingesetzt werden, auf die nicht häufig zugegriffen wird.

Mit den teuren Festplatten früherer Computer war Datenkomprimierungssoftware wie DiskDoubler und SuperStor Pro sehr beliebt und trug dazu bei, die Dateisystemkomprimierung zu etablieren.

Speicheradministratoren können die Technik der Komprimierung und Deduplizierung auch für eine verbesserte Datenreduzierung einsetzen.

Technologien und Produkte, die Datenkompression verwenden

Die Komprimierung ist in eine Vielzahl von Technologien integriert, darunter Speichersysteme, Datenbanken, Betriebssysteme und Softwareanwendungen, die von Unternehmen und Organisationen eingesetzt werden. Die Komprimierung von Daten ist auch in Verbrauchergeräten wie Laptops, PCs und Mobiltelefonen üblich.

Viele Systeme und Geräte führen die Komprimierung transparent durch, aber einige bieten den Benutzern die Möglichkeit, die Komprimierung ein- oder auszuschalten. Die Komprimierung kann mehrmals für dieselbe Datei oder denselben Datenbestand durchgeführt werden, aber nachfolgende Komprimierungen führen nur zu einer geringen oder gar keiner zusätzlichen Komprimierung und können je nach Datenkomprimierungsalgorithmus sogar zu einer leichten Vergrößerung der Datei führen.

WinZip ist ein beliebtes Windows-Programm, das Dateien komprimiert, wenn es sie in ein Archiv packt. Zu den Archivdateiformaten, die eine Komprimierung unterstützen, gehören ZIP und RAR. Die Formate BZIP2 und GZIP werden häufig für die Komprimierung einzelner Dateien verwendet.

Zu den anderen Anbietern, die Komprimierung anbieten, gehören Dell mit seinem XtremIO All-Flash-Array und Silk (früher Kaminario) mit seinem K2 All-Flash-Array. Das Unternehmen Quantum war ein Pionier der Deduplizierungstechnologie und hat diese auch in seine Produkte integriert, wie beispielsweise die DXi4800-Serie.

Datendifferenzierung

Die Datendifferenzierung ist ein allgemeiner Begriff für den Vergleich des Inhalts zweier Datenobjekte. Im Kontext der Komprimierung wird die Zieldatei wiederholt nach ähnlichen Blöcken durchsucht und diese durch einen Verweis auf ein Bibliotheksobjekt ersetzt. Dieser Vorgang wird so lange wiederholt, bis keine weiteren doppelten Objekte mehr gefunden werden. Die Datendifferenzierung kann zu vielen komprimierten Dateien führen, bei denen jedes duplizierte Objekt nur durch ein Element in der Bibliothek repräsentiert wird.

In virtuellen Desktops kann diese Technik ein Kompressionsverhältnis von bis zu 100:1 aufweisen. Der Prozess ist oft enger mit der Deduplizierung verbunden, bei der nach identischen Dateien oder Objekten und nicht nach dem Inhalt der einzelnen Objekte gesucht wird.

Die Datendifferenzierung wird manchmal auch als Deduplizierung bezeichnet.

Diese Definition wurde zuletzt im Januar 2023 aktualisiert

Erfahren Sie mehr über Storage Management

ComputerWeekly.de
Close