backup:zfs

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
backup:zfs [2021/11/08 10:17] – [Sauvegarde dans un fichier] davidbackup:zfs [2024/03/30 16:13] (Version actuelle) – [Sauvegarder] david
Ligne 34: Ligne 34:
  
 Préparez votre hôte <label type="success">D</label> pour recevoir la sauvegarde. Préparez votre hôte <label type="success">D</label> pour recevoir la sauvegarde.
 +
 +==== Disque ====
 +
 +Si vous avez un disque dédié à la sauvegarde, préparez le:
  
 <code bash> <code bash>
-$ zfs create zroot/BCK +zpool create svgd /dev/da0 
-$ zfs create zroot/BCK/S +</code> 
-$ zfs set canmount=off zroot/BCK/S+ 
 +==== Dataset ==== 
 + 
 +Créer vos //dataset//: 
 + 
 +<code bash> 
 +$ zfs create svgd/BCK 
 +$ zfs create svgd/BCK/S 
 +$ zfs set canmount=off svgd/BCK/S
 </code> </code>
  
 La dernière ligne vous assure que votre sauvegarde ne sera jamais remontée automatiquement, ce qui va éviter de sérieux problèmes si la sauvegarde contient des points de montage de la hiérarchie standard, hier(7). Ce qui est en général le cas. La dernière ligne vous assure que votre sauvegarde ne sera jamais remontée automatiquement, ce qui va éviter de sérieux problèmes si la sauvegarde contient des points de montage de la hiérarchie standard, hier(7). Ce qui est en général le cas.
  
 +=== Chiffrement ===
 +Vous pouvez aussi chiffrer le disque, pour éviter que votre disque soit lisible par d'autres:
 +<code>
 +zfs create -o encryption=aes-256-gcm -o keyformat=passphrase  svgd/BCK
 +</code>
 +
 +=== Permissions  ===
 Nous allons faire passer le flux de données au travers d'un tunnel //ssh//, nous allons avoir besoin: Nous allons faire passer le flux de données au travers d'un tunnel //ssh//, nous allons avoir besoin:
  
Ligne 49: Ligne 68:
  
 <code bash> <code bash>
-$ zfs allow -u david create,mount,destroy,receive zroot/BCK/S+$ zfs allow -u david create,mount,destroy,receive svgd/BCK/S
 </code> </code>
  
 +==== options ====
  
 +Comme ce //dataset// est dédié à la sauvegarde, utilisez des paramètres appropriés:
 +
 +<code bash>
 +$ zfs set -o compression=lz4 svgd/BCK/
 +$ zfs set copies=2 svgd/BCK/
 +$ zfs set atime=off svgd/BCK/
 +$ zfs set dedup=off svgd/BCK/
 +</code>
 ===== Sauvegarder ===== ===== Sauvegarder =====
  
Ligne 58: Ligne 86:
  
 <code bash> <code bash>
-$ zfs send -R zroot@maintenant | ssh -i my_id_rsa david@sauvegarde.D.net zfs recv -Fduv zroot/BCK/S+$ zfs send -R zroot@maintenant | ssh -i my_id_rsa david@sauvegarde.D.net zfs recv -Fduv svgd/BCK/S
 </code> </code>
  
Ligne 64: Ligne 92:
   * ''-d'' va supprimer le nom du ''pool'' du chemin de la sauvegarde.   * ''-d'' va supprimer le nom du ''pool'' du chemin de la sauvegarde.
   * ''-u'' ne pas monter le système sur la cible.   * ''-u'' ne pas monter le système sur la cible.
-  * ''-F'' va supprimer sur la cible les clichés qui ne sont plus sur la source.+  * ''-F'' va supprimer sur la cible les clichés qui ne sont plus sur la source. Ne fonctionne qu'avec ''-R''.
  
 Affinez et accélérer le transfert par : Affinez et accélérer le transfert par :
  
 <code bash> <code bash>
-$ zfs send -c -R zroot@maintenant | ssh -i my_id_rsa david@sauvegarde.D.net zfs recv -Fduv zroot/BCK/S+$ zfs send -c -R zroot@maintenant | ssh -i my_id_rsa david@sauvegarde.D.net zfs recv -Fduv svgd/BCK/S
 </code> </code>
  
Ligne 93: Ligne 121:
 En particulier, un //dataset// qui aurait des blocs de taille supérieurs à ''128K'' (paramètre ''recordsize'') autorisé par l'option ''large_blocks'' n'est pas pris en charge par le boot-loader. En particulier, un //dataset// qui aurait des blocs de taille supérieurs à ''128K'' (paramètre ''recordsize'') autorisé par l'option ''large_blocks'' n'est pas pris en charge par le boot-loader.
 </callout> </callout>
 +
 +==== Précautions ====
 +Pour éviter des montages inattendus sur la machine cible, évitez de transférer les point de montages avec la sauvegarde
 +
 +  * '' zfs recv … -x canmount -x mountpoint ''
 +ou
 +  *'' zfs recv … -o canmount=off -x mountpoint ''
 +
 +Si vous avez autorisé le passage de la propriété ''canmount'' sur <label type="success">D</label>.
  
 ==== Sauvegarde incrémentale ==== ==== Sauvegarde incrémentale ====
Ligne 112: Ligne 149:
  
  
-L'option ''-r'' (//récursif//) donnée à ''zfs send'' va envoyer en cascade le ''dataset'' parent ainsi que ses enfants. +L'option ''-R'' (//replicate//) donnée à ''zfs send'' va envoyer en cascade le ''dataset'' parent ainsi que ses enfants. 
-Ça a un coté pratique, puisque vous n'aurez pas à définir un par un les éléments que vous voulez sauvegarder. +Ça a un coté pratique, puisque vous n'aurez pas à définir un par un les éléments que vous voulez sauvegarder et qu'il est nécessaire pour que ''-F'' fonctionne.
 D'un autre coté, vous allez absolument tout sauvegarder, en particulier de nombreuses données dont vous n'aurez pas besoin ensuite, par exemple ''/usr/src'', ''/tmp'' et une partie des enfants de ''/var''. D'un autre coté, vous allez absolument tout sauvegarder, en particulier de nombreuses données dont vous n'aurez pas besoin ensuite, par exemple ''/usr/src'', ''/tmp'' et une partie des enfants de ''/var''.
  
Ligne 135: Ligne 172:
 $ zfs destroy  -vr zroot@%vieux  $ zfs destroy  -vr zroot@%vieux 
 </code> </code>
- 
-Utilisé avec l'option ''-F'' de ''receive'', la cible sera aussi nettoyée. 
- 
 ==== Sauvegarde dans un fichier ==== ==== Sauvegarde dans un fichier ====
  
  • backup/zfs.1636366650.txt.gz
  • Dernière modification : 2021/11/08 10:17
  • de david