En mettant en place une politique de sauvegarde de mes serveurs à base d’une sauvegarde quotidienne et hebdomadaire du contenu sur un espace FTP dédié, je me suis posé la question concernant la méthode de compress : bzip2 ou gzip ?
Pour ceux qui l’ignoreraient, bzip2 et gzip sont deux logiciels open source très populaires sous UNIX et en particulier sur le web. Il existe par ailleurs d’autres outils de compression et de décompression susceptibles d’être exploités en ligne de commande dans le cadre d’une sauvegarde de serveur, notamment.
gzip
En effet, gzip est un logiciel open source destiné à l’origine pour être libre, exploitant des algorithmes de compression sans perte sans perte de données non protégés par des brevets logiciels, afin qu’aucune entité ne puisse réclamer des droits d’utilisation des algorithmes, comme cela a failli être le cas avec le format GIF, propriété de CompuServe. Par conséquent, gzip a été très rapidement adopté par la communauté open source et est exploité dans deux applications que nous utilisons tous au quotidien : le compression des pages web du protocole HTTP 1.1, d’une part, et la compression des images PNG, d’autre part. Libre, gzip est par ailleurs supporté par la quasi-totalité des outils de compression et de décompression du marché, qu’ils soient libres de droits, gratuits ou propriétaires.
bzip2
Quant à bzip2, il a lui aussi des avantages. Très connu dans le monde UNIX, il offre l’avantage d’avoir une compression sans perte supérieure à gzip, les archives étant environ 11 à 12 % plus petites. C’est fort intéressant pour des sauvegardes qui, dans la pratique, ne sont amenées à servir qu’exceptionnellement, alors qu’elles consomment de la place en permanence.
En contrepartie aussi, bzip2 a davantage besoin de puissance processeur, rallongeant sensiblement les tâches de compression et même de décompression. Cependant, pour des sauvegardes nocturnes sur des serveurs peu fréquentés au petit matin, cela n’est que rarement très gênant, à moins d’avoir à manipuler de très grandes quantités de données. En revanche, l’inconvénient majeur de bzip2 est qu’il est beaucoup moins populaire que gzip, rendant ce format essentiellement cloisonné au monde UNIX.
Alternatives à gzip et bzip2
Il existe bien entendu des alternatives à gzip et à bzip2.
L’exemple de rzip est intéressant, puisqu’il compresse mieux que ces deux autres logiciels. En revanche, cet outil a plusieurs inconvénients majeurs : il nécessite de très grandes quantités de mémoire, et ne permet pas de compresser les données via un flux, ayant besoin d’accéder à l’ensemble du fichier d’un coup pour pouvoir le compresser.
7-zip est lui aussi un bon candidat alternatif. C’est un outil de compression de données sans perte, open source, et bénéficiant d’un excellent taux de compression. Son inconvénient est sans doute qu’il est essentiellement tourné vers Windows, et les adaptations UNIX ne sont pas officielles. En outre, mon expérience passée de cet outil sous Windows m’avait fait remarquer divers bugs, générant des archives que je ne pouvais plus relire par après. C’est pour le moins dans le cadre de sauvegardes !
Conclusion
Certes, une archive de sauvegarde n’est en principe pas amenée à servir au quotidien. Mais dans ce cas exceptionnel où elle doit servir, on la réclame de toute urgence. Aussi, devant une vitesse de compression très supérieure à bzip2, j’ai préféré opter pour gzip comme outil de compression privilégié. Ce n’est certainement pas le meilleur des outils de compression, mais sa popularité et sa longévité en font un outil passe-partout, disponible sur toutes les plateformes, disposant d’une très large documentation et permettant des compressions et décompressions plutôt rapides.
Aller plus loin
Notez bien que pour l’instant, j’ai occulté l’idée de sauvegardes incrémentielles, préférant des sauvegardes complètes, plus compatibles avec une sauvegarde sur le FTP mis à disposition par mon hébergeur, associé à mon serveur. Il y a cependant des solutions de sauvegarde incrémentielle des plus intéressantes, telles que rsnapshot, par exemple. En installant un système de fichiers tel que CurlFtpFS, on peut accéder à un espace FTP comme s’il s’agissait d’un disque local.
Néanmoins, j’ai préféré opter pour la sécurité, préférant une solution de sauvegarde complète facile à installer, à récupérer, et des plus robustes. Il faut dire qu’en ce moment, mes serveurs exploitent relativement peu d’espace disque, de sorte que le coût de sauvegardes complètes, même quotidiennes, reste marginal. D’où une solution à base de tar.gz gardé en local et copié sur FTP.
Et vous, quelles solutions de sauvegarde utilisez-vous pour vos hébergements web respectifs ?
En ce qui me concerne, j’utilise backup-manager (http://www2.backup-manager.org/), qui est relativement simple à configurer et qui peut copier les sauvegarde sur un serveur FTP, en SSH, sur Amazon S3.
@Fabien : Il a l’air vachement bien, ce petit script que tu me fais découvrir là ! Je sens que je vais le tester sous peu, car c’est toujours utile de profiter d’un travail déjà fait, validé par d’autres et répondant à des besoins de flexibilité et de sécurité. :-)
J’utilise un petit outil à la rsnapshot que j’avais fait, j’ai nommé rbackup: http://rbackup.lescigales.org . La configuration est un peu plus flexible que rsnapshot et ca ne repose plus sur rsync, mais sur la lib rsync.
L’hébergeur lesCigales.ORG est actuellement sauvegardé via ce moyen.
@T0aD : Ton outil a l’air tout à fait intéressant, je vais le tester d’ici peu, car je ne suis pas du tout satisfait de la solution que j’utilise actuellement, qu’elle soit faite par mes soins ou les diverses solutions (simples) que j’ai testées par ailleurs.