Compression des données
La compression des données est la réduction du nombre de bits nécessaires pour représenter des données. Compresser les données permet d'optimiser la capacité de stockage et la vitesse de transfert des fichiers, et réduit les coûts de stockage matériel et de bande passante réseau.
Fonctionnement de la compression
La compression est effectuée par un programme qui utilise une formule ou un algorithme pour déterminer comment réduire la taille des données. Par exemple, un algorithme peut convertir une chaîne de bits (des 0 et des 1) en une chaîne plus petite de 0 et de 1 en utilisant un dictionnaire, ou encore insérer une référence ou un pointeur dans une chaîne de 0 et de 1 déjà détectée par le programme.
La compression de texte peut se résumer à la suppression de tous les caractères inutiles, à l'insertion d'un caractère de répétition unique pour indiquer une chaîne de caractères répétée, puis à la substitution des chaînes répétitives par de plus petites chaînes de bits. Cette technique peut réduire la taille d'origine d'un fichier texte de 50 %, voire largement plus.
Pour la transmission des données, la compression peut être effectuée sur le contenu des données ou sur la totalité de l'unité de transmission, données d'en-tête comprises. Lorsque des informations transitent via Internet, les fichiers plus volumineux peuvent être transmis dans un format compressé, comme ZIP ou GZIP, soit isolément, soit avec d'autres fichiers dans une archive.
Pourquoi la compression des données est-elle importante ?
Ce procédé permet de réduire considérablement la quantité de stockage occupée par un fichier. Avec un taux de compression de 2:1, par exemple, un fichier de 20 Mo n'occupera plus que 10 Mo d'espace. Grâce à la compression, les administrateurs font des économies et consacrent moins de temps aux questions de stockage.
La compression optimise les performances du stockage de sauvegarde et commence à être utilisée pour réduire le volume de données du stockage primaire. Alors que la croissance des données est aujourd'hui exponentielle, la compression jouera un rôle de plus en plus important dans leur réduction.
S'il est possible de compresser la plupart des types de fichiers, il convient cependant de suivre les bonnes pratiques pour les choisir. En effet, certains fichiers sont déjà compressés, de sorte que leur compression serait quasi inefficace.
Méthodes de compression : avec ou sans perte de données
La compression de données peut se faire avec ou sans perte de données. La compression sans perte permet de restaurer un fichier dans son état d'origine sans perdre un seul bit de données à la décompression. Ce mode de compression est typique des fichiers exécutables, des fichiers texte et des feuilles de calcul dans lesquels la perte de mots ou de chiffres altérerait l'information.
La compression avec perte supprime définitivement des bits de données redondants, sans importance ou imperceptibles. Elle est utile pour les graphiques, les fichiers audio, les vidéos et les images, sur lesquels la suppression de certains bits de données a peu ou pas d'incidence sur la représentation du contenu.
La compression d'images graphiques peut se faire avec ou sans perte de données. Les formats d'images graphiques sont généralement conçus pour compresser les informations, car les fichiers sont souvent volumineux. JPEG est un format de fichier image qui prend en charge la compression d'image avec perte de données. Les formats tels que GIF et PNG utilisent la compression sans perte de données.
Compression et déduplication de données
La compression est souvent comparée à la déduplication de données, mais les deux techniques fonctionnent différemment. La déduplication est un type de compression qui cherche les fragments de données redondants sur un système de stockage ou de fichiers et les remplace par un pointeur vers l'original. Les algorithmes de compression réduisent la taille des chaînes de bits dans un flux de données dont la portée est bien moindre et qui ne conserve généralement en mémoire que le dernier mégaoctet de données, au maximum.
Mike Matchett, analyste pour le Taneja Group, décrit les avantages de la compression et de la déduplication, et explique les différences entre les deux.
La déduplication au niveau fichier supprime les fichiers redondants et les remplace par des éléments temporaires pointant vers le fichier d'origine. La déduplication au niveau bloc identifie les données dupliquées au niveau du sous-fichier. Le système enregistre des instances uniques de chaque bloc, les traite au moyen d'un algorithme de hachage et génère un identifiant unique pour les stocker dans un index. Comparée à la compression, la déduplication cherche généralement de plus grands fragments de données dupliquées, que les systèmes peuvent ensuite dédupliquer au moyen d'un fragment de taille fixe ou variable.
La déduplication est particulièrement efficace dans les environnements à forte redondance de données, comme le VDI (virtual desktop infrastructure) ou des systèmes de sauvegarde de stockage. La compression de données est plus efficace que la déduplication pour réduire la taille des informations uniques (images, vidéos, fichiers audio, bases de données et fichiers exécutables). De nombreux systèmes de stockage prennent en charge la compression et la déduplication.
Compression des données et sauvegarde
La compression est généralement appliquée aux données qui ne sont pas souvent utilisées, car le processus peut être gourmand en ressources et ralentir les systèmes. Les administrateurs peuvent toutefois intégrer la compression de manière transparente dans leurs systèmes de sauvegarde.
La sauvegarde est un type redondant de charge de travail, étant donné que les mêmes fichiers sont capturés de façon répétée. Une entreprise qui effectue des sauvegardes complètes retrouve plus ou moins les mêmes données d'une sauvegarde à l'autre.
Il y a de nombreux avantages à compresser les données avant de les sauvegarder :
- Les données occupent moins d'espace. Le taux de compression peut en effet atteindre 100:1, mais on obtient généralement entre 2:1 et 5:1.
- Si les données sont compressées dans un serveur avant d'être transmises, le temps de transmission et la consommation de bande passante réseau sont notablement réduits.
- Sur bande, l'image du système de fichiers, réduite par compression, est plus rapide à analyser lors de la recherche d'un fichier donné. Le délai de restauration est donc moins important.
- La compression s'accompagne de logiciels de sauvegarde et de bibliothèques de bandes, de sorte qu'il existe plusieurs techniques de compression des données.
Avantages et inconvénients de la compression
Les principaux avantages de la compression sont la réduction du matériel de stockage, des temps de transmission de données et de bande passante, et les économies qui en résultent. Un fichier compressé nécessite une capacité de stockage moindre comparé à un fichier non compressé. L'utilisation de la compression peut faire chuter les dépenses en disque et/ou en disques SSD (Solid-State Drives). Un fichier compressé limite également les temps de transfert et consomme moins de bande passante réseau qu'un fichier non compressé.
Le principal inconvénient de la compression est son impact sur les performances, car les ressources de l'unité centrale et de la mémoire sont sollicitées pour compresser et décompresser les données. De nombreux fournisseurs ont conçu leurs systèmes pour minimiser l'impact des calculs gourmands en processeur associés à la compression. Si celle-ci est effectuée au fil de l'eau (in-line), avant que les données soient inscrites sur le disque, le système peut la décharger pour préserver ses ressources. Par exemple, IBM utilise une carte d'accélération matérielle distincte pour gérer la compression avec certains de ses systèmes de stockage d'entreprise.
Si les données sont compressées après l'inscription sur le disque ou après traitement, le processus peut être exécuté en arrière-plan pour limiter l'impact sur les performances. La compression post-traitement peut réduire le temps de réponse pour chaque entrée-sortie (E/S), mais elle consomme toujours de la mémoire et des cycles de processeur, ce qui peut affecter le nombre total d'E/S gérable par un système de stockage. De plus, comme les données doivent être initialement inscrites sur le disque ou les lecteurs de stockage flash sans compression, les économies en stockage physique ne sont pas aussi importantes qu'avec la compression au fil de l'eau.
Techniques de compression des données : compression du système de fichiers
La compression du système de fichiers fait appel à une méthode relativement simple pour réduire le volume de stockage : les fichiers sont compressés un à un de manière transparente, pendant leur écriture.
De nombreux systèmes de fichiers Linux parmi les plus courants (Reiser4, ZFS et btrfs notamment), ainsi que Microsoft NTFS proposent une option de compression. Dans ce cas, le serveur compresse des segments de données dans un fichier, puis écrit les fragments ainsi réduits dans l'espace de stockage.
La décompression de chaque fragment pour la lecture demande ensuite une faible latence, mais l'écriture représente une charge conséquente pour le serveur. C'est pourquoi il est généralement déconseillé de comprimer les données volatiles. De plus, la compression du système de fichiers pouvant nuire aux performances, il est préférable de la déployer uniquement sur des fichiers qui ne sont pas fréquemment utilisés.
Auparavant, étant donné le coût des disques durs des premiers ordinateurs, les logiciels de compression de données tels que DiskDoubler et SuperStor Pro étaient très populaires, car ils permettaient de compresser les systèmes de fichiers classiques.
Les administrateurs du stockage peuvent également recourir à la technique de compression et déduplication pour réduire efficacement le volume de données.
Technologies et produits faisant appel à la compression des données
La compression est intégrée à un grand nombre de technologies, notamment les systèmes de stockage, les bases de données, les systèmes d'exploitation et les progiciels. La compression de données est également courante sur les appareils grand public comme les portables, les PC et les téléphones mobiles.
De nombreux systèmes et périphériques effectuent la compression de façon transparente et, sur certains, les utilisateurs peuvent l'activer et la désactiver. Le même fichier ou les mêmes données peuvent être compressés plusieurs fois, mais avec un résultat limité ou nul, voire, selon les algorithmes, avec une légère augmentation de la taille du fichier.
WinZip est un programme Windows largement utilisé qui compresse les fichiers en les groupant dans une archive. Les formats d'archives ZIP et RAR prennent en charge la compression. Les formats BZIP2 et GZIP sont largement utilisés pour compresser les fichiers un à un.
D'autres éditeurs proposent la compression : Dell EMC avec ses baies de stockage 100 % Flash XtremIO, Kaminario avec ses baies Flash K2, et RainStor avec son logiciel de compression de données.
Différenciation des données
La différenciation de données désigne le fait de comparer le contenu de deux objets de données. Dans le contexte de la compression, cette méthode consiste à rechercher dans le fichier cible des blocks identiques et à les remplacer par une référence pointant vers un objet de la bibliothèque. Ce processus se répète jusqu'à ce qu'aucun objet en double ne soit plus renvoyé. La compression différentielle, ou compression delta, peut générer de nombreux fichiers compressés avec, dans la bibliothèque, un seul élément représentant chaque objet en double.
Dans les postes de travail virtuels, le taux de compression obtenu par cette technique peut atteindre 100:1. Ce processus est souvent étroitement associé à la déduplication, qui recherche des fichiers ou objets identiques, plutôt que d'analyser le contenu de chaque objet.
La différenciation des données est parfois appelée déduplication.