Backup ZFS Send /Receive

Moimemeici
Messages : 454
Inscription : ven. 12 janv. 2018 17:44

Backup ZFS Send /Receive

Message par Moimemeici »

Bonjour,

Je reviens encore vers vous pour avoir des informations sur "comment vous faites"

J'ai 1 serveur principal et un petit serveur de backup sous ZFS tout les 2.

Les 2 tournes sous Napp-it / Omnios.

je voudrais faire une redondance de donnée entre les 2 serveurs (qu'une parti des données)

J'ai vu qu'il y avait les commande zfs send / receive mais utilisé vous autre chose (un script ou un plugin ou autre)

Je ne veux pas faire obligatoirement de la HA mais pourquoi pas
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Backup ZFS Send /Receive

Message par Zedoune »

Salut

Je l'utilise pour copier des gros volumes d'un répertoire à l'autre.


J'ai une machine A qui contient les sauvegardes machines, et qui réplique ensuite sur B

J'ai la machine B qui historise plein de données et qui réplique sur A


Suffit de créer une snapshot et de faire un truc du genre

zfs send zpool/monvolume@masnapshoy | ssh machineB zfs recv zpool/monvolume


Je sais plus exactement les paramètres :D
Avatar de l’utilisateur
augur1
Messages : 13167
Inscription : ven. 12 janv. 2018 17:44
Localisation : où tout est neuf et tout est sauvage
Contact :

Backup ZFS Send /Receive

Message par augur1 »

Et pour du temps réel
... zfs stream
Moimemeici
Messages : 454
Inscription : ven. 12 janv. 2018 17:44

Backup ZFS Send /Receive

Message par Moimemeici »

Ok merci VOus 2 !
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Backup ZFS Send /Receive

Message par Zedoune »

Et pour du temps réel
... zfs stream
c'est nouveau ça ? Depuis quelle version et sous quel système tu trouves une commande zfs stream ?
A ma connaissance, y a que HammerFS qui permet de faire du stream sans passer par du snapshot, je peux me tromper mais même en cherchant un peu là, je trouve rien sur du zfs stream :/
Moimemeici
Messages : 454
Inscription : ven. 12 janv. 2018 17:44

Backup ZFS Send /Receive

Message par Moimemeici »

Pour ma part j'ai fait du SEND/RECEIVE ca fonctionne génial !

C'est vraiment cool ce FS.

Maintenant à voir comment BRTFS s'en sortira ....
Avatar de l’utilisateur
augur1
Messages : 13167
Inscription : ven. 12 janv. 2018 17:44
Localisation : où tout est neuf et tout est sauvage
Contact :

Backup ZFS Send /Receive

Message par augur1 »

Websync – Un gestionnaire pour gérer vos tâches Rsync
-> http://korben.info/websync-gestionnaire ... rsync.html
Avatar de l’utilisateur
augur1
Messages : 13167
Inscription : ven. 12 janv. 2018 17:44
Localisation : où tout est neuf et tout est sauvage
Contact :

Backup ZFS Send /Receive

Message par augur1 »

Pour rester dans ce topic : une réponse détaillée
-> http://unix.stackexchange.com/questions ... her-server
I would use incremental ZFS send/receive. It should be more efficient than rsync as ZFS knows what has been changed since the previous snapshot without needing to explore the whole file system.

Assuming you want to fully backup a file system namen datapool/fs.

You first create a pool to store your backup on the destination server and a recursive snapshot on the source pool:

[cpp]dest # zpool create datapool ...
source # zfs snapshot -r datapool/fs@snap1[/cpp]

then you send the whole data as an initial backup:

[cpp]source # zfs send -R datapool/fs@snap1 | ssh dest zfs receive datapool/fs[/cpp]

Next week (or whatever period you like), you create a second snapshot on the source pool and send it incrementally on the destination on. That time, ZFS is smart enough to only send what has changed during the week (deleted, created and modified files). When a file is modified, it is not sent as a whole but only the modified blocks are transmitted and updated.
[cpp]
source # zfs snapshot -r datapool/fs@snap2
source # zfs send -ri snap1 datapool/fs@snap2 |
ssh dest zfs receive -F datapool/fs[/cpp]

Repeat the operation with incrementing the snapshot numbers each time you backup.

Remove the unused old snapshots on either servers when you no more need them.

If you have bandwidth constraints, you can compress/decompress data on the fly, for example with inserting gzip/zip commands in the pipeline or by enabling ssh compression.
[cpp]
source # zfs send -ri snap1 datapool/fs@snap2 | gzip |
ssh dest "gunzip | zfs receive -F datapool/fs"[/cpp]

You might also leverage mbuffer get a steadier bandwidth usage, as described in this page:

[cpp]dest # mbuffer -s 128k -m 1G -I 9090 | zfs receive datapool/fs

source # zfs send -i snap2 datapool/fs@snap3 |
mbuffer -s 128k -m 1G -O w.x.y.z:9090[/cpp]

Note: The zfs -r flag is not available with non Solaris ZFS implementations, see http://lists.freebsd.org/pipermail/free ... 15074.html . In such case, don't use the -F flag on the target but instead explicitly rollback datasets. If new datasets have been created on the source, send them first independently before doing the snapshot + incremental send/receive.

Of course, if you have only one file system to backup without an underlying dataset hierarchy, or if you want to perform independent backups, the incremental backup is simpler to implement and should work identically whatever the ZFS implementation:

T0:

[cpp]zfs snapshot datapool/fs@snap1
zfs send datapool/fs@snap1 | ssh dest zfs receive datapool/fs[/cpp]

T1:
[cpp]
zfs snapshot datapool/fs@snap2
zfs send -i snap1 datapool/fs@snap2 |
ssh dest zfs receive -F datapool/fs[/cpp]

Répondre