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 [2020/05/07 08:09] – n davidbackup:zfs [2022/03/10 21:45] (Version actuelle) – [Nettoyer] david
Ligne 62: Ligne 62:
  
   * ''my_id_rsa'' est  [[net::ssh|la clef SSH]] pour se connecter à <label type="success">D</label>.   * ''my_id_rsa'' est  [[net::ssh|la clef SSH]] pour se connecter à <label type="success">D</label>.
-  * ''-F'' va supprimer sur la cible les clichés qui ne sont plus sur la source.+  * ''-d'' va supprimer le nom du ''pool'' du chemin de la sauvegarde. 
 +  * ''-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. 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 -D -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 zroot/BCK/S
 </code> </code>
  
   * ''-c'' pour compresser ce qui peut l'être   * ''-c'' pour compresser ce qui peut l'être
-  ''-D'' pour utiliser la -duplicationc'est à dire n'envoyer qu'une fois les blocs qui sont identiques.+ 
 +Selon les capacités de vos ''pool'', soit ''large_blocks'' et ''embedded_data'', autant sur la cible que sur la source: 
 + 
 +<code bash> 
 +root@popeye:~ # zpool get feature@embedded_data zroot 
 +NAME   PROPERTY               VALUE                  SOURCE 
 +zroot  feature@embedded_data  active                 local 
 +root@popeye:~ # zpool get feature@large_blocks zroot 
 +NAME   PROPERTY              VALUE                 SOURCE 
 +zroot  feature@large_blocks  enabled               local 
 +</code> 
 + 
 +vous pouvez ajouter les options ''-L'' et ''-e'' à la commande ''send''
 + 
 + 
 +<callout type="warning" icon="true"> 
 +Attention à ne pas activer certaines capacités dans l'unique but  d'accélérer le transfert. Consultez d'abord la documentation, zpool-features(7). 
 +\\ 
 +En particulierun //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> 
 + 
 +==== 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 ==== 
 + 
 +Une fois le premier cliché sauvegardé, vous allez pourvoir utiliser la sauvegarde incrémentale. 
 +\\ C'est à dire, faire une sauvegarde à partir de deux clichés. Typiquement, entre le cliché le plus récent que vous avez pris sur la source <label type="primary">S</label> et le dernier que vous avez envoyé à l'hôte <label type="success">D</label>, qui doit bien sûr toujours exister sur <label type="primary">S</label>
 +\\ Il suffit de donner ces deux clichés à ''send'' derrière l'option ''-i''
 + 
 +<code bash> 
 +zfs send -c -i zroot/dataset@${REMOTE_ZLAST} zroot/dataset@${LOCAL_ZLAST} | ssh user@D zfs recv -Fdu zfs/${REMOTE_POOL} 
 +</code> 
 + 
 +  - ''${REMOTE_ZLAST}'', cliché le plus récent transféré sur <label type="success">D</label>; 
 +  - ''${LOCAL_ZLAST}'' , cliché le plus récent pris sur <label type="success">S</label>
 + 
 +Une fois transféré, vous pouvez supprimer le cliché ''${REMOTE_ZLAST}'' de <label type="primary">S</label>, ''${LOCAL_ZLAST}'' prenant sa place.
  
 ==== En cascade ==== ==== En cascade ====
  
  
-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''.
  
-Par contre, si la machine contient des [[jails:zfs|jails]], vous allez sauvegarder non seulement ces dernières, mais aussi la base qui a servi à les construire.+Par contre, si la machine contient des [[jails:zfs|jails]], vous allez sauvegarder non seulement ces dernières, mais aussi la base qui a servi à les construire.Sans parler de vos [[ports:poudriere|poudrières]].
  
 <callout type="primary" icon="true"> <callout type="primary" icon="true">
-Assurez vous par ailleurs que toutes vos [[https://www.freebsd.org/doc/handbook/zfs-term.html#zfs-term-clone|clones]] sont promus, en particulier ceux des [[jails:zfs#multiplier|jails]]. Sinon, attendez vous à un beau bordel.les clichés à l'origine des clones vont entrer en conflits avec ceux destinés à la sauvegarde.+Assurez vous par ailleurs que toutes vos [[https://www.freebsd.org/doc/handbook/zfs-term.html#zfs-term-clone|clones]] sont promus, en particulier ceux des [[jails:zfs#multiplier|jails]].\\ 
 +Sinon, attendez vous à un beau bordel.les clichés à l'origine des clones vont entrer en conflit avec ceux destinés à la sauvegarde.
 </callout> </callout>
  
Ligne 98: Ligne 144:
 $ zfs destroy  -vr zroot@%vieux  $ zfs destroy  -vr zroot@%vieux 
 </code> </code>
 +==== Sauvegarde dans un fichier ====
  
-Utilisé avec l'option ''-F'' de ''receive'', la cible sera aussi nettoyée.+Vous pouvez tout simplement sauvegarder vos //dataset// dans des fichiersPour les transférer ensuite à votre guise sur un autre support:
  
 +<code bash>
 +zfs send -c -e ${dataset}@${LAST} > /bck/${ZFILE}.bck
 +</code>
 +
 +Avec:
 +<code bash>
 +ZFILE=`echo "${dataset}" | sed 's+\/+_+g'`
 +</code>
 +
 +par exemple, pour remplacer les séparateurs.
  
 ===== En savoir plus ===== ===== En savoir plus =====
Ligne 108: Ligne 165:
   * [[https://www.freebsd.org/doc/handbook/zfs-zfs.html|Le manuel ]].   * [[https://www.freebsd.org/doc/handbook/zfs-zfs.html|Le manuel ]].
 </alert> </alert>
 +
 +
  • backup/zfs.1588838942.txt.gz
  • Dernière modification : 2020/05/07 08:09
  • de david