Serait-il possible de faire une copie à chaud d'un système?

10

Je voudrais sauvegarder mon système sans l'éteindre. Le clone système devrait également pouvoir s'exécuter sur une autre machine.

J'ai essayé de "dd" la partition système entière sur un autre disque, après quoi je suis assuré qu'aucune tâche administrative n'est lancée. Je pense que je devais dire au grub de démarrer sur ce disque, j'ai donc exécuté la commande:

grub-install  /dev/sdc1 

mais j'ai eu cette erreur:

The file /boot/grub/stage1 not read correctly.

Je sais que je fais n'est pas très propre, alors avez-vous une bonne solution pour atteindre mes objectifs ou une idée pour résoudre le problème de larves?

Gaël
la source
Si vous devez le faire fonctionner, cela implique qu'il fait réellement quelque chose. Si tel est le cas, il est presque certain que le contenu de votre système changera pendant la sauvegarde. Cela rend les résultats quelque peu imprévisibles - testez beaucoup avant d'utiliser en production.
Joe

Réponses:

8

Il existe plusieurs options qui ont chacune des compromis. Vous ne pouvez pas utiliser ddpour cloner un système de fichiers pendant qu'il est monté en lecture / écriture ou le clone finira par être corrompu car la source est en cours de modification pendant la copie, de sorte que la destination sera partiellement obsolète et partiellement non. Si vous voulez vraiment pouvoir utiliser ddpour copier à chaud une partition, vous pouvez le faire avec des instantanés LVM . Cela nécessite que vous ayez installé le système à l'aide de LVM en premier lieu, mais vous pouvez ensuite créer un instantané à tout moment, et puisque l'instantané est gelé et non monté, vous pouvez en toute sécurité ddl'instantané, puis supprimez l'instantané. L'autre inconvénient de l'utilisationddest qu'il gaspille du temps à copier tout l'espace inutilisé dans le volume, et nécessite que la destination soit au moins aussi grande, même si la majeure partie de la source n'est pas utilisée.

Plutôt que d'utiliser dd, vous pouvez simplement utiliser des outils de sauvegarde traditionnels tels que tarou dumppour sauvegarder l'instantané. Cela a l'avantage de ne pas perdre de temps à copier de l'espace libre et peut être restauré sur une partition plus petite tant qu'il y a de l'espace pour les fichiers. Vous pouvez également extraire uniquement certains fichiers pour effectuer une restauration partielle. Vous n'avez pas non plus à utiliser LVM avec cette méthode: tant que vous êtes raisonnablement sûr qu'aucun fichier n'est modifié lors de la sauvegarde, il est sûr de le faire sur un système de fichiers monté. La pire chose qui puisse arriver est qu'un fichier individuel qui est modifié pendant la sauvegarde sera corrompu, plutôt que la sauvegarde entière soit corrompue, comme cela peut arriver avec dd.

Comme vous semblez l'avoir réalisé, après avoir restauré le système de fichiers, vous devez toujours réinstaller grub pour démarrer le système. Je ne sais pas pourquoi vous avez eu cette erreur lorsque vous avez essayé, mais il semble que vous utilisiez grub-legacy, car grub2 n'a pas d'étape1.

psusi
la source
Je n'ai pas utilisé LVM, mais je le pouvais, je cherche une solution durable. est-ce qu'il suffit de copier toute l'arborescence du système (hors proc) puis de modifier le grub?
Gael
@Gael, il suffit de copier tous les fichiers et de réinstaller grub, oui. Vous devrez peut-être également mettre à jour les UUID dans / etc / fstab. Notez que si vous utilisez, tarvous voulez exclure non seulement / proc, mais aussi / dev, / sys et / run également, ou utilisez le --one-file-systemcommutateur pour l'empêcher de descendre dans d'autres systèmes de fichiers.
psusi
merci, je vais essayer avec du goudron. Cette solution peut permettre un contrôle total de la sauvegarde.
Gael
3

Utiliser quelque chose comme rsyncou tarpour copier la partition peut être plus simple. Je monterais la partition sur un deuxième point de montage comme /mntavant la copie. Ces options vous permettent également de modifier la taille ou le type de la partition. Vous pouvez également avoir des structures sur des partitions supplémentaires. J'ai souvent des partitions séparées pour /varet /usr. Il faudra également en tenir compte.

Vous devrez peut-être fouiller dans la grubdocumentation pour déterminer comment cibler correctement le disque et la partition. install-grubpeut faire des hypothèses incorrectes qui ne font pas ce que vous voulez.

Il existe des outils comme ceux mondoqui vous permettent de créer un CD de récupération amorçable avec votre système d'exploitation installé dessus.

BillThor
la source
J'utilisais dd parce que je me disais que d'autres outils de copie de fichiers ne copieront que les fichiers, pas mbr et la table de partition. J'ai jeté un coup d'œil sur mondo, et cela pourrait être la solution la plus simple. Merci
Gael
@Gael Si vous ne clonez que SD1, vous n'obtiendrez pas le MBR. Il existe un certain nombre d'outils qui mettront à jour le MBR si nécessaire. Il a normalement déjà du code pour rechercher un enregistrement de démarrage.
BillThor
1

Je pense qu'il n'y a pas vraiment d'option pour faire une sauvegarde fiable d'un système en cours d'exécution au niveau de l'appareil: votre système de fichiers serait trop corrompu car vous ne pouvez pas figer l'état actuel et l'opération de sauvegarde prend beaucoup de temps.

Cependant, vous pouvez essayer les options suivantes:

  1. Exécutez le système dans une machine virtuelle. Vous pouvez créer un instantané du système, puis effectuer une sauvegarde de cet instantané. Une fois la sauvegarde terminée, l'instantané peut être facilement supprimé. Cela résout les problèmes mentionnés ci-dessus.
  2. Effectuez la sauvegarde au niveau du système de fichiers, pas au niveau du périphérique. Je peux recommander rsnapshot pour cela.
Vilmantas Baranauskas
la source
Je recherche une solution permettant de sauvegarder un système sans l'éteindre. Ainsi, quelle que soit la méthode utilisée, le système doit être exécuté. S'il suffit de copier uniquement le système de fichiers pour copier le système, rsync fera le travail, qu'est-ce qui apporte rsnapshot?
Gael
rsnapshot vous fournit autant de sauvegardes incrémentielles multiples que vous le souhaitez (toutes les heures, tous les jours, toutes les semaines, tous les mois) et les sauvegardes sont disponibles dans une structure de répertoires complète bien qu'elles soient incrémentielles.
Vilmantas Baranauskas