Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue124:tutoriel1 [2017/09/10 15:18] – [5] auntiee | issue124:tutoriel1 [2017/09/11 16:51] (Version actuelle) – andre_domenech |
---|
Here, in this article, we will talk about a sort of incremental backup. How difficult is it to retrieve a backup or restore a database from an incremental backup? In a company, sometimes, the System Administrator is also the DBA and even the Backup Administrator at the same time, so testing backups’ restoration is, most times, a zero priority task.** | Here, in this article, we will talk about a sort of incremental backup. How difficult is it to retrieve a backup or restore a database from an incremental backup? In a company, sometimes, the System Administrator is also the DBA and even the Backup Administrator at the same time, so testing backups’ restoration is, most times, a zero priority task.** |
| |
Les sauvegardes sont des aspects fondamentaux de la vie informatique, pour des environnements personnels aussi bien que professionnels. Des documents personnels aux configurations de serveurs et des bases de données, parfois une sauvegarde peut vous sauver la vie. Une documentation fournie est disponible ici et là sur le Web, notamment sur des stratégies de sauvegarde, des tutoriels, des logiciels de sauvegarde et ainsi de suite. | Les sauvegardes sont des aspects fondamentaux de la vie informatique, pour des environnements personnels aussi bien que professionnels. Des documents personnels aux configurations de serveurs et des bases de données, une sauvegarde peut parfois vous sauver la vie. Une documentation fournie est disponible ici et là sur le Web, notamment sur des stratégies de sauvegarde, des tutoriels, des logiciels de sauvegarde et ainsi de suite. |
| |
La plupart du temps, le gros inconvénient des sauvegardes est l'occupation de l'espace disque. Un bon logiciel, ou une bonne stratégie, peut atténuer cela avec des sauvegardes incrémentielles. Mais, dans certains cas, l'apprentissage et l'implémentation d'un logiciel de sauvegarde spécialisé sont laborieux et fastidieux et la courbe d'apprentissage est trop haute, surtout quand nous n'avons besoin que « d'une simple copie » des derniers fichiers utiles ou du dernier vidage d'une base de données. De toute façon, un logiciel qui se configure tout seul n'existe pas : les stratégies et les politiques sont du domaine de l'administrateur système ou l'administrateur des sauvegardes. Enfin et surtout, quid d'une restauration ? Nous espérons tous ne pas devoir restaurer une sauvegarde, mais un désastre est toujours possible - de la suppression d'un document important au plantage d'un serveur de bases de données. | La plupart du temps, le gros inconvénient des sauvegardes est l'occupation de l'espace disque. Un bon logiciel, ou une bonne stratégie, peut atténuer cela avec des sauvegardes incrémentielles. Mais, dans certains cas, l'apprentissage et l'implémentation d'un logiciel de sauvegarde spécialisé sont laborieux et fastidieux et la courbe d'apprentissage est trop haute, surtout quand nous n'avons besoin que « d'une simple copie » des derniers fichiers utiles ou du dernier vidage d'une base de données. De toute façon, un logiciel qui se configure tout seul n'existe pas : les stratégies et les politiques sont du domaine de l'administrateur système ou l'administrateur des sauvegardes. Enfin et surtout, quid d'une restauration ? Nous espérons tous ne pas devoir restaurer une sauvegarde, mais un désastre est toujours possible, de la suppression d'un document important au plantage d'un serveur de bases de données. |
| |
Dans cet article, nous parlerons d'un type de sauvegarde incrémentielle. À quel point est-il difficile de récupérer une sauvegarde ou de restaurer une base de données à partir d'une sauvegarde incrémentielle ? Parfois, dans une entreprise, l'Administrateur système est aussi l'Administrateur des bases de données et même l'Administrateur des sauvegardes, tout à la fois, ce qui fait que tester les restauration des sauvegardes n'est, la plupart du temps, point prioritaire. | Dans cet article, nous parlerons d'un type de sauvegarde incrémentielle. À quel point est-il difficile de récupérer une sauvegarde ou de restaurer une base de données à partir d'une sauvegarde incrémentielle ? Parfois, dans une entreprise, l'administrateur système est aussi l'administrateur des bases de données et même l'administrateur des sauvegardes, tout à la fois, ce qui fait que tester la restauration des sauvegardes n'est, la plupart du temps, point prioritaire. |
| |
**As said before, space occupancy (hard disk or tapes) is a big question to address. | **As said before, space occupancy (hard disk or tapes) is a big question to address. |
Parlons d'un disque partagé par beaucoup d'utilisateurs ou des répertoires personnels de tels utilisateurs. Disons que nous voulons une solution simple et abordable se servant d'outils bien connus et qui soit également fiable. Le choix de l'outil, si nous travaillons sous Linux ou Unix, sera habituellement celui de rsync. | Parlons d'un disque partagé par beaucoup d'utilisateurs ou des répertoires personnels de tels utilisateurs. Disons que nous voulons une solution simple et abordable se servant d'outils bien connus et qui soit également fiable. Le choix de l'outil, si nous travaillons sous Linux ou Unix, sera habituellement celui de rsync. |
| |
Il faut tenir compte du fait que rsync ne supprime pas les fichiers sur la destination qui ne sont plus dans le source ; mais nous ne pouvons pas stocker des fichiers indéfiniment, notamment des documents supprimés exprès par des utilisateurs ou de vieux fichiers de configuration - que de déchets. Aussi, on peut utiliser l'option delete (supprimer) proposée par rsync ((rsync --delete: delete extraneous files from dest dirs)), mais ... qui sait si l'utilisateur n'a pas supprimé le fichier par erreur ? | Il faut tenir compte du fait que rsync ne supprime pas les fichiers sur la destination qui ne sont plus dans le fichier source ; mais nous ne pouvons pas stocker des fichiers indéfiniment, notamment des documents supprimés exprès par des utilisateurs ou de vieux fichiers de configuration, rien que de déchets. Aussi, on peut utiliser l'option delete (supprimer) proposée par rsync ((rsync --delete: efface les fichiers superflus des répertoires de destination)), mais... qui sait si l'utilisateur n'a pas supprimé le fichier par erreur ? |
| |
Ainsi, si nous utilisons rsync, nous devons nous préoccuper de telles choses : nous devons éviter les déchets et nous ne devons pas nous fier à une seule sauvegarde, c'est à dire celle de la dernière fois qu'on a exécuté rsync. En général, nous finissons par écrire un script complexe, ou nous passons du temps à chercher et à tester un script ou un logiciel trouvé sur le Net, retombant dans une courbe d'apprentissage sans raison d'être ou utilisant un script qui ne répond pas à nos besoins. | |
| |
En fait, un instantané de notre système de fichiers peut nous tirer du pétrin. Dans cet article, nous parlerons de la fonctionnalité instantané de ZFS. | |
| |
| |
| |
| |
| |
| |
| |
| Ainsi, si nous utilisons rsync, nous devons nous préoccuper de telles choses : nous devons éviter les déchets et nous ne devons pas nous fier à une seule sauvegarde, c'est-à-dire celle de la dernière fois qu'on a exécuté rsync. En général, nous finissons par écrire un script complexe, ou nous passons du temps à chercher et à tester un script ou un logiciel trouvé sur le Net, retombant dans une courbe d'apprentissage sans raison d'être ou utilisant un script qui ne répond pas à nos besoins. |
| |
| En fait, un instantané de notre système de fichiers peut nous tirer du pétrin. Dans cet article, nous parlerons de la fonctionnalité instantanée de ZFS. |
| |
===== 2 ===== | ===== 2 ===== |
ZFS | ZFS |
| |
ZFS est un gestionnaire de volume et de système de fichiers robuste et de classe entreprise développé par Sun, fin 2001. De nos jours, il s'agit du système de fichiers par défaut sur Solaris et pas mal d'autres systèmes d'exploitation basé sur le noyau Open Source Illumos, comme SmartOS, Openindiana, OmniOS, etc. Suite à des problèmes légaux liés à la licence qui empêchaient le développement d'un module du noyau Linux, un projet connexe fut créé en septembre 2013, appelé OpenZFS. Aujourd'hui, donc, les fonctionnalités puissantes de ZFS peuvent être utilisées également sur vos distributions Linux préférées. Il y avait pas mal de battage médiatique avant la sortie d'Ubuntu 16.04 LTS, quand l'annonce de l'inclusion par défaut d'un module du système de fichiers ZFS fut fait, car on pensait qu'une implémentation basée sur OpenZFS aurait reçu le support officiel de Canonical et beaucoup d'inquiétudes concernant les problèmes de licence sont parus. | ZFS est un gestionnaire de volume et de système de fichiers robuste et de niveau professionnel développé par Sun, fin 2001. De nos jours, il s'agit du système de fichiers par défaut sur Solaris et pas mal d'autres systèmes d'exploitation basés sur le noyau Open Source Illumos, comme SmartOS, Openindiana, OmniOS, etc. Suite à des problèmes légaux liés à la licence qui empêchaient le développement d'un module du noyau Linux, un projet connexe fut créé en septembre 2013, appelé OpenZFS. Aujourd'hui, donc, les fonctionnalités puissantes de ZFS peuvent être utilisées également sur vos distributions Linux préférées. Il y a eu pas mal de battage médiatique avant la sortie d'Ubuntu 16.04 LTS, quand l'annonce de l'inclusion par défaut d'un module du système de fichiers ZFS fut fait, car on pensait qu'une implémentation basée sur OpenZFS aurait reçu le support officiel de Canonical et beaucoup d'inquiétudes concernant les problèmes de licence sont apparues. |
| |
Je ne veux pas détailler les avantages, les caractéristiques techniques ou les options de ZFS, mais tout simplement mettre l'accent sur la simplicité d'utilisation de certaines des fonctionnalités fournies par ce système de fichiers, comme, pour être précis, les instantanés. | Je ne veux pas détailler les avantages, les caractéristiques techniques ou les options de ZFS, mais tout simplement mettre l'accent sur la simplicité d'utilisation de certaines des fonctionnalités fournies par ce système de fichiers, comme, pour être précis, les instantanés. |
sudo apt-get install zfsutils-linux | sudo apt-get install zfsutils-linux |
| |
Branchez une clé USB et utilisez fdisk pour créer une nouvelle GPT table vide de partitions (touche g) | Branchez une clé USB et utilisez fdisk pour créer une nouvelle table GPT vide de partitions (touche g) |
| |
sudo fdisk /dev/sdb | sudo fdisk /dev/sdb |
sudo zpool create tank /dev/sdb | sudo zpool create tank /dev/sdb |
| |
Veuillez regarder ce lien afin de comprendre pourquoi l'utilisation de sdb, plutôt que l'UUID du disque, pourrait ne pas être un bon choix. | Veuillez regarder ce lien afin de comprendre pourquoi l'utilisation de sdb, plutôt que l'UUID du disque, pourrait ne pas être un bon choix. http://zfsonlinux.org/faq.html#WhatDevNamesShouldIUseWhenCreatingMyPool |
| |
===== 4 ===== | ===== 4 ===== |
| |
sudo zfs snapshot tank/mybackup@201707091030 | sudo zfs snapshot tank/mybackup@201707091030 |
| |
| |
| |
| |
===== 5 ===== | ===== 5 ===== |
Puisqu'il ne s'agit pas d'une copie incrémentielle de fichiers, comme avec la Mac OS X Time machine, mais se fait au niveau des blocs, l'instantané se fait immédiatement. | Puisqu'il ne s'agit pas d'une copie incrémentielle de fichiers, comme avec la Mac OS X Time machine, mais se fait au niveau des blocs, l'instantané se fait immédiatement. |
| |
Au départ, l'espace disque occupé par un instantané est zéro, car l'instantané correspond précisément au système de fichiers original. Au fur et à mesure que les fichiers du système de fichiers changent (de nouveaux fichiers, des suppressions de fichiers, des fichiers mis à jour), l'espace disque sera occupé uniquement occupé par l'instantané et l'espace disque utilisé par l'instantané est directement lié aux modifications, créations et suppressions faites sur le système de fichiers. | Au départ, l'espace disque occupé par un instantané est zéro, car l'instantané correspond précisément au système de fichiers original. Au fur et à mesure que les fichiers du système de fichiers changent (de nouveaux fichiers, des suppressions de fichiers, des fichiers mis à jour), l'espace disque sera uniquement occupé par l'instantané et l'espace disque utilisé par l'instantané est directement lié aux modifications, créations et suppressions faites sur le système de fichiers. |
| |
Enfin, l'instantané est en lecture seule : vous ne risquez pas de perdre ou de modifier votre sauvegarde. | Enfin, l'instantané est en lecture seule : vous ne risquez pas de perdre ou de modifier votre sauvegarde. |
Afficher et accéder aux instantanés ZFS | Afficher et accéder aux instantanés ZFS |
| |
Vous pouvez accéder aux données « sauvegardées » dans l'instantané dans deux façons : en restaurant un instantané précédent (ce qui écrasera le système de fichiers qui fonctionne, autrement dit vous faites une restauration complète), ou en y accédant à fin d'y récupérer des fichiers ou des dossiers. | Vous pouvez accéder aux données « sauvegardées » dans l'instantané de deux façons : en restaurant un instantané précédent (ce qui écrasera le système de fichiers qui fonctionne, autrement dit vous faites une restauration complète), ou en y accédant afin d'y récupérer des fichiers ou des dossiers. |
| |
===== 6 ===== | ===== 6 ===== |
| |
That said, the backup policy can be the following: take a snapshot just before the rsync command and you are on your way. So you should not worry about previous versions of backups, incremental backups, huge used space, and so on.** | That said, the backup policy can be the following: take a snapshot just before the rsync command and you are on your way. So you should not worry about previous versions of backups, incremental backups, huge used space, and so on.** |
| |
| Faire une récupération complète est aussi simple que prendre un instantané : |
| |
| zfs rollback filesystem@name |
| |
| Mais faites attention : comme indiqué, faire une récupération écrasera le système de fichiers qui fonctionne ! Ainsi, une façon plus commode de récupérer des fichiers est d'aller dans le répertoire de l'instantané de parcourir l'arborescence du répertoire gelé. À l'intérieur du point de montage du système de fichiers se trouve un répertoire caché appelé « .zfs » (il est invisible, même avec ls -la). |
| |
| cd /mountpoint/.zfs/snapshot |
| |
| C'est ici que vous trouverez tous vos instantanés : chaque instantané aura son propre répertoire et vous pouvez utiliser les commandes habituelles (cp, rsync, scp, etc.) pour copier une version précédente d'un fichier où vous voudrez : vous pouvez remplacer ou restaurer un fichier ou un dossier directement dans le système de fichiers actif. |
| |
| Cela étant dit, la politique de sauvegarde peut être la suivante : faire un instantané juste avant de lancer la commande rsync et vous voilà parti ! Ainsi, vous n'avez pas à vous inquiéter des versions précédentes de sauvegardes, de sauvegardes incrémentielles, d'un espace disque énorme utilisé et ainsi de suite. |
| |
===== 7 ===== | ===== 7 ===== |
| |
You can find the script here | You can find the script here |
https://gist.github.com/alcir/7cb799edfb677a50fc38741dc706d73f** | https://gist.github.com/alcir/7cb799edfb677a50fc38741dc706d73f** |
| |
| Pour supprimer un instantané, la commande est simplissime : |
| |
| zfs destroy filesystem@name |
| |
| Ce qui, dans notre exemple, serait |
| |
| sudo zfs destroy tank/mybackup@201707091030 |
| |
| Exemple de script de sauvegarde |
| |
| Voici l'exemple d'un script simple pour illustrer les principes. Nous utilisons rsync via SSH avec une authentification basée sur une clé (vous trouverez beaucoup de guides étape par étape sur le Web sur comment configurer une connexion SSH basée sur une clé). |
| |
| Le script se trouve ici : |
| https://gist.github.com/alcir/7cb799edfb677a50fc38741dc706d73f |