DD via SSH > Sauvegarde/Restauration Partition serveur (VPS)

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour,

Pour un VPS OVH sous Debian 10


J'ai en mode "Rescue" ⇔ Live Session chargée en RAM :

Code : Tout sélectionner

root@rescue-pro:~# uname -a
Linux rescue-pro 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux

root@rescue-pro:~# cat /etc/debian_version
9.12


Disque du VPS

Code : Tout sélectionner

root@rescue-pro:~# fdisk -l
	Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
	Units: sectors of 1 * 512 = 512 bytes
	Sector size (logical/physical): 512 bytes / 512 bytes
	I/O size (minimum/optimal): 512 bytes / 512 bytes
	Disklabel type: dos
	Disk identifier: 0x00000000
	
	Device     Boot Start      End  Sectors Size Id Type
	/dev/sdb1  *     2048 41943006 41940959  20G 83 Linux
/dev/sdb est le disque ssd du vps
et /dev/sdb1 son unique partition.



Mon but :


Avant toute autre action :
1. une sauvegarde complète
2. être certain de sa validité
3. être certain de pouvoir la restaurer


Pour l'instant j'ai fait :


Démonter
°°°°°°°°°°°

Code : Tout sélectionner

root@rescue-pro:~# umount /mnt/sdb1

Sauvegarder le MBR
°°°°°°°°°°°°°°°°°°°°

Depuis mon PC

Code : Tout sélectionner

$ ssh root@xx.xx.xx.xx "sudo -S dd if=/dev/sdb " |dd of=vps-mbr-sda.img bs=512 count=1 && md5sum vps-mbr-sda.img > md5

	root@xx.xx.xx.xx's password: 
	sudo: unable to resolve host rescue-pro
	1+0 enregistrements lus
	1+0 enregistrements écrits
	512 octets copiés, 25,1378 s, 0,0 kB/s
dont j'ai comparé le MD5 avec celui obtenu par :

Code : Tout sélectionner

root@rescue-pro:~# dd if=/dev/sdb of=mbr-sda.img bs=512 count=1
=> les MD5 sont égaux.




Sauvegarder la partition
°°°°°°°°°°°°°°°°°°°°°°°°°°°


J'aurais bien utilisé partclone pour profiter d'image plus petites et compressée,
mais je ne suis pas parvenu à exécuter partclone sans devoir enregistrer l'image côté serveur.

J'utilise donc DD

Depuis mon PC

Code : Tout sélectionner

$ ssh root@xx.xx.xx.xx "sudo -S dd if=/dev/sdb1 status=progress | gzip -1 - " | dd of=vps-sda1.img.gz && md5sum vps-sda1.img.gz >> md5
	root@xx.xx.xx.xx's password: 
	sudo: unable to resolve host rescue-pro
	21424570880 bytes (21 GB, 20 GiB) copied, 468 s, 45.8 MB/s     
	41940959+0 records in
	41940959+0 records out
	21473771008 bytes (21 GB, 20 GiB) copied, 468.806 s, 45.8 MB/s
	1093289+121 enregistrements lus
	1093349+1 enregistrements écrits
	559794949 octets (560 MB, 534 MiB) copiés, 505,399 s, 1,1 MB/s
 
Cette commande a produit le fichier image compressé :

-rw-r--r-- 1 dezix dezix 559794949 févr. 13 12:56 vps-sda1.img.gz

et

le fichier extrait :

-rw-r--r-- 1 dezix data-shared 21473771008 févr. 13 13:48 vps-sda1.img

correspond en taille avec les : 512 x 41940959 secteurs = 21 473 771 008 octets donnés par FDISK



Quel moyen pour s'assurer de la validité de cette image ?

Mis à part de tester sa restauration !!!



Restauration
°°°°°°°°°°°°°


Justement,
j'ai des doutes sur ma commande,
j'aurais besoin d'une confirmation/correction (SVP)

Code : Tout sélectionner

$ dd if=vps-sda1.img.gz status=progress | ssh root@xx.xx.xx.xx "sudo -S gzip -dc - | dd of=/dev/sdb1 "
Le but étant (si possible) de décompresser l'image sur le serveur sans l'enregistrer (je ne dispose que de 2 Go de RAM et l'OS de secours est chargé dedans).


Merci.

PS: je suis en cours de test (VM) pour la dernière commande, je reviens avec le resultat
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 876
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

1) Pourquoi utiliser sudo avec le compte root ?
2) Pourquoi faire des images séparées du MBR et de la partition au lieu d'une image du disque entier ?
3) Si le chargeur d'amorçage est GRUB, une partie est contenue dans les secteurs non alloués situés entre le MBR et la partition. Sauvegarder le MBR ne suffit pas.
dezix a écrit : 13 févr. 2020, 16:38 Quel moyen pour s'assurer de la validité de cette image ?
Par comparaison des sommes de contrôle MD5.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Une fois de plus merci pour la critique constructive ...
PascalHambourg a écrit : 13 févr. 2020, 21:56 1) Pourquoi utiliser sudo avec le compte root ?
2) Pourquoi faire des images séparées du MBR et de la partition au lieu d'une image du disque entier ?
3) Si le chargeur d'amorçage est GRUB, une partie est contenue dans les secteurs non alloués situés entre le MBR et la partition. Sauvegarder le MBR ne suffit pas.
dezix a écrit : 13 févr. 2020, 16:38 Quel moyen pour s'assurer de la validité de cette image ?
Par comparaison des sommes de contrôle MD5.

Effectivement, sudo en root est un non-sens
que j'ai bêtement pompé sans prendre le recul suffisant.

Une image du disque complet ... j'y pensais
mais j'avais des doutes,
et en 1er essais j'ai aussi suivi bêtement le même exemple.

Je ne pensais plus à GRUB dans l'espace vide entre MBR et partition (maintenant que j'utilise gpt avec une partition ESP)


Les tests que j'ai pu faire :

D'abord,
Je ne suis pas parvenu à faire des tests sur une VM VBox en live session,
car pas de connexion ssh en live session (rescuecd)


Pour ne pas y perdre trop de temps,
j'ai fais directement les tests sur le VPS,
quitte à réinstaller le VPS en cas d'échec.

J'ai donc refait une image complète du SSD système (/dev/sdb 20Go)
avec :

Code : Tout sélectionner

$ ssh root@xx.xx.xx.xx "dd if=/dev/sdb status=progress | gzip - " | dd of=vps-sda-full.img.gz && md5sum vps-sda-full.img.gz >> md5
root@xx.xx.xx.xx's password: 
21470145536 bytes (21 GB, 20 GiB) copied, 443 s, 48.5 MB/s     
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB, 20 GiB) copied, 443.308 s, 48.4 MB/s
891415+1 enregistrements lus
891415+1 enregistrements écrits
456404481 octets (456 MB, 435 MiB) copiés, 456,54 s, 1000 kB/s

je me suis ensuite connecté par SSH au VPS toujours en mode Rescue/Live
et j'ai rempli le SSD de zéros avec :

Code : Tout sélectionner

root@rescue-pro:~# dd if=/dev/zero of=/dev/sdb bs=40k conv=notrunc
dd: error writing '/dev/sdb': No space left on device
524289+0 records in
524288+0 records out
21474836480 bytes (21 GB, 20 GiB) copied, 233.384 s, 92.0 MB/s
pour être certain de mettre le VPS en avarie.


J'ai restauré le système avec :

Code : Tout sélectionner

$ dd if=vps-sda-full.img.gz status=progress | ssh root@xx.xx.xx.xx " gzip -dc - | dd of=/dev/sdb "
root@xx.xx.xx.xx's password: 
456397312 octets (456 MB, 435 MiB) copiés, 7917 s, 57,6 kB/s
891415+1 enregistrements lus
891415+1 enregistrements écrits
456404481 octets (456 MB, 435 MiB) copiés, 7917,04 s, 57,6 kB/s
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB, 20 GiB) copied, 8487.16 s, 2.5 MB/s

Vérification

Avant de redémarrer normalement,
et afin de m'assurer de la validité de cette méthode,
j'ai refait une image du SSD complet qui vient d'être restauré.

Ce qui m'a permis de comparer les MD5 des images (extraites) avant et après.

=> les sommes md5 sont égales :))

Remarque : les MD5 des images compressées sont différentes !


Redémarrage en mode normal ⇒ OK!
:yahoo:

Pour moi, la méthode est validée.


Note :

Dans le cas présenté, on avait les tailles suivantes :

/dev/sda = 20Go
espace utilisé = 1.1Go
vps-sda-full.img.gz = 435Mo
vps-sda-full.img = 20Go


Le temps de restauration (upload) est nettement supérieur (1h30) à celui pour récupérer l'image de sauvegarde (15'),
car le débit adsl sortant est très inférieur au débit entrant.

Voilà, si vous avez une meilleure solution,
n'hésitez pas à la partager.

:006:
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 876
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

dezix a écrit : 15 févr. 2020, 00:30 Je ne pensais plus à GRUB dans l'espace vide entre MBR et partition (maintenant que j'utilise gpt avec une partition ESP)
Dans le format GPT la table de partition n'est plus contenue dans le MBR mais dans les secteurs qui suivent, ça ne change donc pas grand-chose : il faut toujours sauvegarder et restaurer ces secteurs, ou du moins le contenu de la table de partition d'une façon ou d'une autre (par exemple avec sfdisk).

A noter que dans le format traditionnel DOS seule la table de partition principale (partitions 1 à 4) est contenue dans le MBR, pas la table de partition étendue (partitions logiques 5 et suivantes) qui est répartie dans des secteurs situés avant chaque partition logique. Sauvegarder le MBR ne suffit donc pas quand il y a une partition étendue.
dezix a écrit : 15 févr. 2020, 00:30 j'ai refait une image du SSD complet qui vient d'être restauré.
Ce qui m'a permis de comparer les MD5 des images (extraites) avant et après.
Tu aurais pu simplement comparer les sommes MD5 du SSD avant la sauvegarde et après la restauration.

Si tu n'as pas activé le "batch discard" (TRIM périodique), pense à faire un TRIM de la partition avec fstrim afin de marquer tous les blocs vides écrits comme inutilisés.
dezix a écrit : 15 févr. 2020, 00:30 Voilà, si vous avez une meilleure solution,
Meilleure, je ne sais pas. Mais différente : puisque la partition racine est peu remplie, la réduire et créer un seconde partition qui servirait à contenir les sauvegardes du système, voire un système de secours. Cela permettrait de transférer les sauvegardes avec sftp ou scp, ce qui est plus pratique qu'en combinant ssh et dd.
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Bonjour,
ton sujet m'interesse j'aimerais en faire autant sur un VPS ovh , j'ai suivi ton post mais cela n'a pas marché.
As tu pu ensuite installer ton iso sur une virtual box, penses tu que cela soit possible ?
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour, et Bienvenue sur le forum.
ahuds75 a écrit : 24 mai 2022, 10:32 j'aimerais en faire autant sur un VPS ovh , j'ai suivi ton post mais cela n'a pas marché.
Pourtant il n'y a rien de particulier dans l'exécution de DD via SSH.

Donc, si tu n'expliques pas ce qui n'a pas fonctionné : comment, pourquoi, quels messages d'erreurs,...
on ne peut rien te répondre.


ahuds75 a écrit : 24 mai 2022, 10:32 As tu pu ensuite installer ton iso sur une virtual box, penses tu que cela soit possible ?
L'image produite par la commande dd n'est pas un ISO,
c'est une image brute (raw) du périphérique fournit comme input file (if)

Je ne me souviens plus si j'ai tenté ou pas de refaire un DD vers le disque d'une VBox,
mais je doute que cela fonctionne ; cela ne fonctionne que pour une plateforme matérielle identique.
Donc sauf miracle ça ne devrait pas le faire sur une VBox.

Si tu connais exactement le type de VM utilisé par OVH et que tu l'installes,
un DD sur le disque virtuel d'une telle VM pourrait fonctionner.

Si tu veux faire des tests sur une Vbox dans des conditions très proches (mais pas identiques),
tu installes exactement les mêmes paquets que ceux présents sur l'image d'OVH
et tu compares les config au fur et à mesure des modifs.

C'est ce que je fais, ce n'est pas du clonage mais ça permet de tester "à blanc".
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

PascalHambourg a écrit : 15 févr. 2020, 10:05 Meilleure, je ne sais pas. Mais différente : puisque la partition racine est peu remplie, la réduire et créer un seconde partition qui servirait à contenir les sauvegardes du système, voire un système de secours. Cela permettrait de transférer les sauvegardes avec sftp ou scp, ce qui est plus pratique qu'en combinant ssh et dd.

La méthode suggérée ici est probablement mieux que la mienne (PascalHambourg étant incomparablement plus expérimenté que moi).
**Simple Utilisateur** -- Debian stable - XFCE
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Salut Dezix, merci pour ta réponse, en effet mon commentaire manquait de détails.

1- Je dois procéder avant la fin du mois de juin à la résiliation d'un VPS hebergé chez Ovh . de reparti en sda1 et sdb1 (80go)
Mais j'aimerais créer une sauvegarde du VPS sous forme d'un ISO afin de l'installer localement sur une VBOX ou l'installer prochainement sur un VPS OVH ou autres fournisseurs, lorsque j'en aurais à nouveau besoin et afin d'eviter de tout reinstaller à chaque fois ( il y a plusieurs choses qui fonctionne dessus actuellement)

2- L'option "Backup" ainsi que "Snapshot" chez OVH ne me permet pas de recuperer une image disque.

J'ai découvert recement l'utilisation du mode rescue mais je me suis pas parvenue à en faire bonne usage.
Par le passé j'ai reussi avec Clonezilla quand j"étais physiquement en face de la machine à faire un clone, mais je n'ai pas réussis à exécuter cette procédure à distance en SSH.
J'ai cherché differents tutos mise à part le tiens ici même je n'ai pas trouvé.

Merci pour ta réponse. :-)
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

ahuds75 a écrit : 25 mai 2022, 08:11 VPS hebergé chez Ovh . de reparti en sda1 et sdb1 (80go)
Il faut bien que tu comprennes la distinction à faire entre sauvegarde système et données qui sont 2 problématiques différentes.

Comme écrit plus haut ici on ne peut parler d' Image ISO (CD/DVD),
mais d'images de disques (périphérique) ou de partitions (système de fichiers) qui peuvent être de diverses natures selon les outils qui les produisent.

Donc tu vas avoir 2 choses à faire :

1. Sauvegarder tes données (c'est possiblement un autre sujet).
2. T'occuper du système, car tu ne pourras probablement pas cloner ton système actuel sur une autre installation.


Pour le point 1 ça inclut les données qui peuvent être sur sda1 et je suppose que sdb1 est uniquement dédié aux données donc hors du point 2.

Est-ce que cette installation est en cours d'usage ou peux-tu librement la bidouiller sans incidence ?

Que renvoient :

# fdisk -l

et

# lsblk -f


Conseils d'édition

Pour fournir les sorties du terminal,
les captures d'écrans sont à éviter car peu exploitables et gourmandes en ressources.

Utiliser les balises BBcode > Boutons cmd et </> de l'Éditeur complet
  • cmd => commandes ou termes techniques insérés dans le fil du texte
  • </> => bloc de code avec coloration syntaxique
Copier/coller la sortie complète (ce qui inclut les invites de commande initiaux et finaux comme expliqué ICI )

Pour copier la sélection dans un émulateur de terminal
c'est souvent la combinaison des touches [Ctrl+Alt+C] (voir le manuel de l'émulateur)
**Simple Utilisateur** -- Debian stable - XFCE
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Merci pour ta réponse :

Oui on peut faire ce que l'on veut le site n'est pas en production pour le client et un snap shot à été effectué.

- Voici les informations suite aux commandes :

Code : Tout sélectionner


root@vps802519:~# fdisk -l

Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1  *     2048 167772126 167770079  80G 83 Linux


root@vps802519:~# lsblk -f
NAME   FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda
└─sda1 ext4         77e3f255-2ef2-47bc-ad89-7cdbd65f5fbc   70,6G     6% /


Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Il n'y a donc qu'un seul disque de 80Go dont 10Go utilisés

Les données ont-elles été déjà copiées et mises à l'abri ?
**Simple Utilisateur** -- Debian stable - XFCE
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Le site contient,

- un site wordpress qui est backupé
- un service de stockage customisé que j'ai copié, mais qui ne fonctionne pas totalement sur mon nouveau serveur.

C'est pourquoi je voudrais cloner cette installation pour comprendre ce qui ne fonctionne pas.

En outre cloner le server, me permet de le repliquer quand j'ai une commande client qui necessite ce serveur ce qui serait plus rapide

Actuellement le site + le service de stockage sont hébergés sur un serveur moins chère car il ne sont pas en production.

L'idée est d'avoir un backup, que je puis reinstaller rapidement.

Mais pour répondre à ta question : oui les données sont sauvegardés.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

ahuds75 a écrit : 25 mai 2022, 11:43 cloner le server, me permet de le repliquer quand j'ai une commande client qui necessite ce serveur ce qui serait plus rapide
....
L'idée est d'avoir un backup, que je puis reinstaller rapidement.
Ce que tu décris -- dans mon idée -- correspond plus à une instance de conteneur.

Je n'ai qu'une connaissance très superficielle du concept de conteneur et surtout du comment les utiliser en production (location/gestion de l'hébergement sur le cloud),
mais un conteneur qui embarque tout ce que tu as sur ton actuel VPS, serait par essence clonable à volonté.

Je crois aussi qu'il est de l'usage courant d'attribuer un IP propre au conteneur, ce qui le rend équivalent à un serveur indépendant (vu du web).

Construire un conteneur n'est pas plus compliquer que de configurer un VPS neuf,
et on peut se fournir (si on a confiance en la source) un conteneur préinstallé Debian ou autre.

Ensuite il faut rajouter une couche (layer) avec ta config perso et ça roule....
Pour les données tu pourrais peut-être les mettre sur un stockage (cloud aussi) indépendant du (ou des) conteneur(s)
comme cela tu n'aurais qu'une source de données à gérer.

Voilà, c'est une piste à creuser....
**Simple Utilisateur** -- Debian stable - XFCE
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

genre docker ?
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Au départ je pensais qu'un script de sauvegarde simple etait suffisant pour backuper son vps sur ovh en faite c'est plus compliqué que prevue.

Mais effectivement, le container c'est une bonne idée en effet, voici ce que j'ai trouvé https://linit.io/creer-sa-premiere-image-docker/ peut être que cela fonctionnera,

Merci
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

ahuds75 a écrit : 25 mai 2022, 19:42genre docker ?
Oui, Docker semble une solution très répandue => Docker > WordPress

Après il faut voir pour l'hébergement, je suppose que des services permettent de gérer les conteneurs de manière très analogue à la gestion des VPS via un tableau de bord :017:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

ahuds75 a écrit : 25 mai 2022, 19:46 Au départ je pensais qu'un script de sauvegarde simple etait suffisant pour backuper son vps sur ovh en faite c'est plus compliqué que prevue.
La difficulté n'est pas le "backup" du VPS, pour cela un script tout simple ou même une commande unique peut le faire.

Mais ce que tu veux (pouvoir réinstaller/cloner sur une autre installation) n'est plus du ressort du "backup" compris comme la sauvegarde/restauration du système.

PS: STP fais moi savoir si tu comptes poursuivre la discussion au sujet du "clonage" ;
dans ce cas je scinderai ce fil vers un nouveau sujet spécialement dédié, car nous dérivons beaucoup du sujet initial.
**Simple Utilisateur** -- Debian stable - XFCE
ahuds75
Messages : 7
Inscription : 24 mai 2022, 10:30
Status : Hors-ligne

Merci pour la réponse, j'ai eu un empechement pour donner suite à notre conversation tu peux cloturer le post. Merci pour l’échange. Je vais me renseigner pour docker.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Tu pourrais aussi regarder du côté de LXC (LinuX Containers)
Pour quelque(s) conteneur(s) c'est certainement plus simple que docker
et tu reviendrais donc sur un hébergement VPS que tu connais déjà.

Il y a un gestionnaire de conteneur plus "user friendly" LXD
mais il n'est pas disponible dans les dépôts Debian
(LXC/D sont des projets de Canonical donc disponibles sous Ubuntu et d'autres distributions).

Pour utiliser LXD sous Debian il faut passer par snapd ;
personnellement ce genre de solution ne me séduit pas car on perd la sécurité apportée par le sérieux des dépôts Debian...

.... mais pour un usage ponctuel et si pas de données sensibles .... ça simplifie beaucoup les choses.

Sinon passer par une autre distribution, p.ex. Ubuntu server.

Noter tout de même que LXC fonctionne déjà très bien et assez simplement (voir des tutos en ligne),
J'ai pu tester sans problème l'usage de conteneur privilégiés (processus appartenant à root)
et j'ai échoué pour mettre en place un conteneur non-privilégié (utilisateur dédié au(x) conteneur(s)),
ça doit pouvoir se faire sous Debian, mais ça demande des connaissances qui dépassent mon humble niveau :((


Voilà @+

:006:
**Simple Utilisateur** -- Debian stable - XFCE
Répondre