Conseil pour un backup complet d'un pool

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Bonjour,
j'aimerai un conseil sur le moyen le plus simple de faire un backup quotidien complet sur un TN13 .
Le serveur est configuré avec 2 pools en mirroir, l'un pour le fonctionnement , l'autre pour le backup (je précise que les 2 pools sont de même capacité)

Donc, ce que je souhaite faire c'est un backup complet quotidien du pool A vers le Pool B . J'ai testé en créant une tache de réplication locale entre Pool A et Pool B mais cela ne dure à peine que quelques secondes ce qui me laisse penser que cela ne doit pas faire grand chose.

Tout avis est le bienvenu.:wink:
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Bonjour,

Alors effectivement, la réplication est la meilleure option je pense...
Pour qu'elle fonctionne correctement, il faut également que des snapshots automatiques existent sur le pool A (car la réplication se base sur les snapshots).
Donc si tu souhaites faire un backup quotidien, il faut un snapshot par jour (et qu'il soit fait avant que la réplication ne se fasse... bon c'est logique mais ça coûte rien de le préciser... :-D).
Ensuite, il est probable que cela ne dure pas longtemps puisqu'il s'agit de snapshots incrémentaux, donc dépendant de la quantité de données ajoutée depuis le dernier snapshot (et en plus comme la réplication se fait en local, tu n'es pas bridé par le réseau).

Bon après l'idéal c'est aussi de faire une sauvegarde déportée hein... ;-)

Une autre option est d'utiliser rsync mais si tu utilises déjà la réplication ça sert à rien de s'embêter...
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Merci pour ta réponse, j'ai des snapshots qui existent (2) pour le pool A qui doit contenir 200Go de données mais la réplication ne dure que quelques secondes, comment savoir si cela a rééllement fait le job?
sais tu comment restaurer un snapshot sur poolB et voir si le contenu est la ?
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Il faut que dans la tâche de réplication les snapshots soient bien définis avec le même nom que ceux qui existent.
J'ai pas de TrueNAS sous la main mais dans la tâche de réplication, il est fait référence aux snapshots à utiliser selon un format particulier (par exemple "auto-%Y%M%d.%h%m-6m").
Donc il faut que tes snapshots correspondent à ce même format sinon la réplication ne se fera pas. Tu peux regarder les logs (je crois que dans l'interface web, il y a un bouton pour regarder les log de la réplication, si je ne me trompe pas...).

comment savoir si cela a rééllement fait le job?
Il suffit d'aller voir dans le pool B si les fichiers y sont... :smile:
Une fois la réplication terminée, tu devrais trouver le pool B peuplé avec les données du snapshot du pool A.

Par ailleurs, dans la liste des snapshots, pour le pool B tu devrais voir un snapshot (qui est celui qui vient d'être répliqué).

sais tu comment restaurer un snapshot sur poolB
Tu n'as pas à restaurer le snapshot. Une fois la réplication terminée, les donnés sont sur le pool B.
Voici de manière illustrée:

- Pool A - Snapshot 1 - Ficher 1 - Ficher 2

Tu fait une réplication du pool A vers le pool B du snapshot 1 et tu auras alors:
- Pool B - Snapshot 1 - Ficher 1 - Ficher 2

Donc ton pool B sera à l'identique du snapshot 1 du pool A. Tu n'as pas besoin de restaurer le snapshot.
Si jamais tu voulais restaurer un snapshot alors c'est dans le cas où tu en as plusieurs et que tu souhaites récupérer une version antérieur d'un fichier...
Mettons que tu le pool A, tu fais des snapshots tous les jours que tu répliques sur le pool B. Ces snapshot ont une durée de vie de 2 jours mettons.
Et mettons que tu le pool B, tu as une politique du suppression des snapshots plus longue (mettons 30 jours).
Alors tu te retrouverais avec quelque chose comme:
- Pool A - Snapshot 48 - Snapshot 49

- Pool B - Snapshot 1 - Snapshot 2 - Snapshot 3 ... - Snapshot 46 - Snapshot 47 - Snapshot 48 - Snapshot 49

Et tu pourrais alors restaurer le snapshot 35 du pool B si jamais tu souhaitais récupérer un fichier de ce jour là.
Alors, tu montes le snapshot 35 du pool B, tu récupères le fichier puis tu démontes le snapshot.
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Une fois encore tu m'épates:wink: , tes réponses sont toujours claires et très pédagogiques. Tu es enseignant?
Alors pour ce qui est des logs de réplication , j'ai trouvé, j'ai téléchargé une log mais il semble y avoir des infos contradictoires sur le résultat,
considéré comme réussi mais avec des erreurs et une durée de 8 secondes.
Voici la log de la réplication
Code:
[2022/11/26 20:00:02] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:02] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/Gestion' to 'Backup-pool/Disques/Gestion' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:03] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/Gestion', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:03] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/Install' to 'Backup-pool/Disques/Install' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:04] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/Install', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:04] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/Sauvegardes' to 'Backup-pool/Disques/Sauvegardes' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:04] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/Sauvegardes', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:04] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage' to 'Backup-pool/Disques/iocage' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:05] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:05] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/download' to 'Backup-pool/Disques/iocage/download' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:06] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/download', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:06] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/images' to 'Backup-pool/Disques/iocage/images' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:06] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/images', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:06] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/jails' to 'Backup-pool/Disques/iocage/jails' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:07] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/jails', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:07] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/log' to 'Backup-pool/Disques/iocage/log' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:08] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/log', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:08] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/releases' to 'Backup-pool/Disques/iocage/releases' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:09] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/releases', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:09] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/iocage/templates' to 'Backup-pool/Disques/iocage/templates' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:09] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/iocage/templates', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
[2022/11/26 20:00:09] INFO     [replication_task__task_1] [zettarepl.replication.run] For replication task 'task_1': doing push from 'Disques/jails' to 'Backup-pool/Disques/jails' of snapshot='auto-2022-11-26_20-00' incremental_base='auto-2022-11-26_00-00' receive_resume_token=None encryption=False
[2022/11/26 20:00:10] INFO     [replication_task__task_1.process] [zettarepl.transport.zfscli.exception] Caught 'failed to create mountpoint: Read-only file system' but ('Backup-pool/Disques/jails', 'auto-2022-11-26_20-00') is present on remote side. Assuming replication success.
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
tes réponses sont toujours claires et très pédagogiques. Tu es enseignant?
Merci!
Non je ne suis pas enseignant mais porte beaucoup d'intérêt à la pédagogie et à la vulgarisation (et j'aime ça :smile: ).


Pour ce qui est des logs... c'est en gros 10 fois la même chose (juste pour différent datasets on dirait) et voici ce que j'en comprends:
- "doing push from 'Disques/Gestion' to 'Backup-pool/Disques/Gestion' of snapshot='auto-2022-11-26_20-00'", donc là il va faire une réplication du snapshot "auto-2022-11-26_20-00" du pool Disques/Gestion vers le pool Backup-pool/Disques/Gestion. Bref, en gros là il dit "je vais lancer la réplication".
- Puis il dit "failed to create mountpoint: Read-only file system": il ne peut pas créer le point de montage (alors là je sais pas en détail de quel point de montage il parle... est-ce que pour créer le snapshot sur le pool de backup, il lui faut un point de montage!?) car le système de fichier est en lecture seule mais ajoute que but ('Backup-pool/Disques/Gestion', 'auto-2022-11-26_20-00') is present on remote side. finalement c'est pas grave parce qu'un snapshot existe déjà sur le pool de backup.
Un snapshot avec ce même nom existe sur le pool de backup (auto-2022-11-26_20-00) et là, peut-importe le contenu de ce snapshot, il ne va rien faire puisqu'il le dit: "Assuming replication success". Je soupçonne que même s'il pouvait faire quelque chose, il a quand même un soucis avec l'accès en lecture seule...

Je ne sais pas exactement mais d'après le log, aurais-tu crée plusieurs tâches de réplication? Une pour chaque dataset ou répertoire (on voit Disques/Gestion, Disques/Install, Disque/Sauvegardes...) peut-être?


On va partir du début et étape par étape:
1. Comment sont organisés tes disques (pas au niveau RAIDz mais plutôt au niveau pool)?
2. Qu'as-tu comme datasets?
3. Comment as-tu configuré le(s) snapshot(s)?
4. Comment as-tu configuré la(les) tâche(s) de réplication?
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
1. Comment sont organisés tes disques (pas au niveau RAIDz mais plutôt au niveau pool)?
  • Le Pool A est "Disques" c'est un mirroir de 2* 2To sur Seagate ironwolf
  • Le pool B est "Backup-pool" c'est un mirroir de 2*2To WD RED

2. Qu'as-tu comme datasets?
Je remarque que sur le dataset de backup que tout ce qui est copié est en "Read only", mais je ne sais pas pourquoi.
1669552303945.png

3. Comment as-tu configuré le(s) snapshot(s)?
il y en a 2, un conservé pendant 1 mois et l'autre 2 semaines
1669552572865.png


Détail du snapshot planifié pour 1 mois
1669552631835.png


Détail du snapshot planifié pour 2 semaines
1669552723246.png


4. Comment as-tu configuré la(les) tâche(s) de réplication?
1669552835759.png

1669552938524.png

1669552982871.png


Voilà le tableau
 

Attachments

  • 1669552798855.png
    1669552798855.png
    22.9 KB · Views: 82

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Alors déjà on voit plusieurs choses...

D'après 2., on peut voir que le pool backup est bien peuplé avec des données (et c'est consistant avec les données présentes du pool source), donc la réplication a fonctionné.
Je n'explique pas que le pool de backup soit en lecture seule...
J'aurai bien vérifié avec mes réplications mais pour l'instant c'est pas possible...
Pour le reste de la configuration, ça me semble correct. Là aussi j'aurai bien aimé comparer avec les réplications que j'ai configurées mais ce n'est pas possible pour le moment. (pas avant la semaine prochaine)

D'après 3., tu fais 2 snapshots par jour (à 20h), l'un avec une durée de rétention de 2 semaines et l'autre de 1 mois.
Là je te conseillerai peut-être une configuration différence...
Soit de garder les 2 snapshots par jour mais alors décalés, par exemple à 8h et à 20h, car les faire au même moment n'a que peu d'intérêt (et un snapshot aura peut-être un delta mais celui qui arrivera juste après, sera toujours nul, donc autant qu'il serve.
Un commentaire personnel: je trouve que faire 2 snapshot par jour au même moment avec une rétention de 2 semaines pour l'un et 1 mois pour l'autre n'est pas très intéressant... Je ferai plutôt quelque chose comme: un snapshot par jour avec 2 semaines de rétention et un snapshot par semaine avec 6 mois de rétention (et pourquoi pas 1 par mois avec 1 an de rétention).

D'après 4., je ne vois pas bien comment tu as configuré l'exécution de ta tâche de réplication, on dirait qu'elle n'est pas activée pour s'exécuter automatiquement. Je te conseille de l'exécuter quotidiennement, à 21h par exemple (ou plus tard) si ton snapshot se fait à 20h.
Perso, je choisirai des heures creuses pour faire les snapshot et la réplication (par exemple 2h et 3h du matin).

Je dirai qu'il semblerait que les snapshots fonctionnent dans ton cas (puisque les données sont bien sur le pool de backup). Au niveau de la config, tu as peut-être quelques aménagements à faire pour éviter 2 snapshots consécutifs un peu inutiles (en terme de données).
Tu peux également vérifier tout cela en regardant la liste des snapshots disponibles sur ton pool de backup. Tu devrais retrouver les snapshots qui ont été transférés.


Ensuite, si tu ne l'as jamais fait, je te conseille aussi la restauration d'un snapshot, histoire de l'avoir fait au moins une fois et de ne pas devoir le faire lorsque tu en as besoin! :-D (ça rajoute inutilement au stress généralement)
Et c'est pas une grosse affaire, il suffit de sélectionner le snapshot que l'on veut restaurer et TrueNAS va monter un dataset pour ce snapshot qui sera accessible qu'en lecture seule, évidemment (après on peut faire un partage SMB dessous ou autre pour y accéder depuis un client).


Mais peut-être que d'autres membres du forums ont des commentaires...
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
Le serveur est configuré avec 2 pools en mirroir, l'un pour le fonctionnement , l'autre pour le backup (je précise que les 2 pools sont de même capacité)

Déjà, en matière de backup, ce n'est pas vraiment une solution. Puisque les deux instances sont dans le même serveur, les deux tomberont suite au même incident physique (feu, eau, vol, ...). Même s'ils sont séparés sur deux pools différents, ils sont dans le même système d'exploitation et tomberont tous les deux sous plusieurs incidents logiques (intrusion, erreur humaine, ...). Voir ma signature pour un modèle de sauvegarde complet.

J'ai testé en créant une tache de réplication locale entre Pool A et Pool B mais cela ne dure à peine que quelques secondes ce qui me laisse penser que cela ne doit pas faire grand chose.

Les snapshots ne contiennent que les deltas entre l'état précédent et le nouvel état. Ainsi, cela peut effectivement correspondre à "pas grand chose" mais cela demeure un snapshot. C'est une autre des raisons pour lesquelles un snapshot n'est pas une sauvegarde. Il n'existe au final qu'une seule instance de la données. Les snapshots sont plus des pointeurs vers cette donnée unique qu'une copie de la donnée en question.

comment savoir si cela a rééllement fait le job?
Il suffit d'aller voir dans le pool B si les fichiers y sont...
Attention : si l'on regarde dans le système de fichiers directement, on ne verra rien. En effet, les snapshots sont cachés par défaut, qu'ils soient le résultat d'une réplication ou pris localement.

sais tu comment restaurer un snapshot sur poolB et voir si le contenu est la ?
La meilleure façon est de faire un clône du snapshot. Le clône deviendra accessible en lecture et écriture. Tu pourras faire ce que tu voudras avec, sans affecter l'original ni le snapshot utilisé en source. Une fois satisfait, il n'y a qu'à détruire le clône. Détruire le clône ne touchera pas au snapshot d'origine et donc tu ne perdras que les modifs faites dans le clône (si tu en as fait).

Je n'explique pas que le pool de backup soit en lecture seule...
Ce n'est pas le pool de backup qui est en lecture seule, c'est la réplication. Les snapshots répliqués sont toujours en lecture seule.

Il semble qu'il y ait des résidus de démarches autres. Je commencerais par supprimer la tâche de réplication, supprimer tout le contenu du pool de backup et reconfigurer ensuite la réplication.
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Merci pour vos retours,
pour la sauvegarde , je vais courant janvier ajouter une réplication Cloud chez backblaze , donc là on sera hors de la machine.
Il semble qu'il y ait des résidus de démarches autres. Je commencerais par supprimer la tâche de réplication, supprimer tout le contenu du pool de backup et reconfigurer ensuite la réplication.
Ou tu vois des résidus? tu as raison, je vais tout purger et refaire depuis le début.
 

profwalken

Patron
Joined
Nov 19, 2013
Messages
410
Finalement, j'ai tout supprimé, snapshots, réplications, volume backup et je suis reparti depuis le début.
Volume, taches snapshots, puis réplication , tout semble OK et je n'ai plus de contenu en lecture seule, je pense que c'etait lié (sauf erreur de ma part) au paramètre par défaut réglé sur "SET" dans la tache de réplication, je l'ai mis sur "IGNORE".
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Alors si tout se déroule comme espéré, c'est inespéré... :-D
Bon sans jeu de mot, je pense effectivement que c'est une bonne chose d'être reparti de zéro et que ça fonctionne comme voulu.
 
Top