Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

"Cloner" une machine

25 réponses
Avatar
Fabien LE LEZ
Bonjour,

J'ai un serveur que j'aimerais "cloner" vers une machine virtuelle
(VMware) pour pouvoir faire des tests.
Grosso modo, tous les logiciels et les données doivent être les mêmes,
mais bien sûr le matériel est très différent.
(Accessoirement, les paramètres IP seront différents aussi, mais ça,
c'est facile à modifier après coup.)

Difficulté supplémentaire : le serveur "source" est une machine
distante, à laquelle j'accède par SSH, et que je ne peux pas éteindre.
Je ne peux pas non plus me permettre de couper Apache ou MySQL plus de
quelques secondes.

Faut-il que, partant d'une machine virtuelle où Debian est déjà
installé (pour avoir un boot qui fonctionne sans me prendre la tête),
je copie (presque) tous les fichiers ?
Si oui, quels fichiers ne dois-je pas copier ?

Ou bien, y a-t-il une solution plus simple ?

(J'ai bien pensé à Mondorescue, mais je ne suis pas trop sûr de son
fonctionnement quand Apache et MySQL sont en route ; par ailleurs,
j'aimerais autant éviter d'installer trop de trucs sur le serveur.)

Merci d'avance...

10 réponses

1 2 3
Avatar
Fabien LE LEZ
(Oups, le message précédent est parti un peu vite, désolé... Je l'ai
annulé, mais certains serveurs refusent les Cancel :-( )


J'ai un serveur que j'aimerais "cloner" vers une machine virtuelle
(VMware) pour pouvoir faire des tests.


Mon premier essai est le clonage d'un serveur web -- en fait, un
serveur virtuel "VServer" <http://linux-vserver.org/>, sur une Debian
sarge.
Je n'ai pas réussi à installer VServer sous sarge, j'ai donc installé
une etch, car c'est beaucoup plus simple :
<http://howtoforge.com/linux_vserver_debian_etch>

La caractéristique de VServer par rapport à qemu ou UML, c'est que le
système de fichiers de la machine virtuelle est un sous-répertoire de
la machine-hôte (façon chroot). Du coup, les utilisateurs de la
machine virtuelle sont enregistrés dans le /etc/passwd de l'hôte en
plus de son propre /etc/passwd, ce qui explique l'étape 4 ci-dessous.
La machine hôte et les machines virtuelles partagent le même noyau.

La méthode de clonage utilisée est la suivante :

1/ Installer Debian (sur une machine virtuelle VMware, dans mon cas)
2/ Installer VServer
(<http://howtoforge.com/linux_vserver_debian_etch>)
3/ Créer une machine virtuelle.
4/ Créer sur la machine hôte les groupes et utilisateurs spécifiques à
la machine virtuelle (dans mon cas, "fabien" et quelques autres), avec
les mêmes GID et UID.
5/ rsync -a :/ /var/lib/vservers/test/
Les droits sont conservés, d'où l'utilité de l'étape 4.
6/ Lancer la machine virtuelle.

Dans l'ensemble, le premier démarrage fut conforme à mes espérances.
Apache est lancé, sshd aussi... à quelques détails près :
- Le serveur réel a une IP publique, ce que je ne sais pas
recréer sur la machine virtuelle. Du coup, Apache (et quelques autres)
râlent car ils ne peuvent pas écouter sur cette interface. Par contre,
Apache et PHP fonctionnent sur l'interface loopback.
- Une connexion SSH fonctionne, mais le mot de passe est refusé.
J'imagine que /etc/shadow n'est pas transportable.

C'est l'avantage des machines virtuelles : c'est très facile à
transporter.
Reste à voir si je serai capable de cloner une machine physique...

Avatar
Fabien LE LEZ
On Thu, 31 May 2007 01:17:58 +0200, "Arol" :

C'est pas possible.


AMHA, si, c'est possible. Juste un peu délicat.

Est ce qu'il t'arriverait l'idée de prendre le disque dur d'un serveur Bi
Xéon en scsi avec lan 1G, 4Go de ram etc... et le brancher sur un pc de de
bureau celeron 400, 128Mo de ram, etc... ?


Note qu'il y a très peu de différences entre les deux, surtout si le
Xeon est en 32 bits.
Si la carte réseau change, Linux est généralement capable de
s'adapter.
Pour la RAM, rien ne change : chaque application a toujours 4 Go de
RAM virtuelle ; éventuellement, il est possible que le swap soit un
peu plus utilisé sur la deuxième machine.

Si on transfère les fichiers depuis le disque SCSI vers un disque IDE,
il y a un petit souci dû aux conventions de nommage
(/dev/sda <-> /dev/hda), mais ce souci s'estompe avec le remplacement
progressif de l'IDE vers le SATA.

Avatar
Nicolas.MICHEL
Arol wrote:

"Fabien LE LEZ" a écrit dans le message de news:
Ou bien, y a-t-il une solution plus simple ?


ça dépend ce que tu veux "cloner" en fait.
Si c'est juste quelques fonctions de ton serveur, ben, tu pars de zéro : tu
installes le OS, puis les mêmes progs vérifier les versions) que tu veux
checker.


Bonjour

En lisant vos réponses, je suis un choqué :

Réinstaller à l'identique n'est pas un clone, rien à voir !

Si on ne peux pas faire un clone à chaud, alors Linux a un sérieux
problème ... Sauvegarder un système et pouvoir le restaurer sur une
autre machine, physique ou virtuelle, est juste nécessaire non ?

Bon, vous m'excuserez, je suis habitué à Mac où ce genre de chose est
simple.
--
Nicolas


Avatar
Mihamina Rakotomandimby (R12y)
Nicolas MICHEL wrote:
ça dépend ce que tu veux "cloner" en fait.
Si c'est juste quelques fonctions de ton serveur, ben, tu pars de zéro :
tu installes le OS, puis les mêmes progs vérifier les versions) que tu
veux checker.
En lisant vos réponses, je suis un choqué :

Réinstaller à l'identique n'est pas un clone, rien à voir !


Effectivement.

Si on ne peux pas faire un clone à chaud, alors Linux a un sérieux
problème ... Sauvegarder un système et pouvoir le restaurer sur une
autre machine, physique ou virtuelle, est juste nécessaire non ?
Bon, vous m'excuserez, je suis habitué à Mac où ce genre de chose est
simple.


Quand tu as une base de donnée de l'ordre de la centaine de Mo, que tu
connais le taux de transfert des disques durs actuels et que tu connais ce
que ça fait quand une base a des données incohérentes, tu te demandera
peut-etre comment les gars te chez Apple te font gober de telles énormités.

La machine principale de le ou je travaille maintenant a un système (tout le
système, logs compris) qui tient a peu pres dans 3 ou 4 Go.
Explique moi, meme en théorie mais en tenant compte des taux de transfert en
écriture, on peut faire une sauvegarde à chaud pendant que les utilisateurs
font des INSERT et UPDATE dans la base MySQL.


Avatar
Damien Wyart
La machine principale de le ou je travaille maintenant a un système
(tout le système, logs compris) qui tient a peu pres dans 3 ou 4 Go.
Explique moi, meme en théorie mais en tenant compte des taux de
transfert en écriture, on peut faire une sauvegarde à chaud pendant
que les utilisateurs font des INSERT et UPDATE dans la base MySQL.


Ben snapshots LVM, c'est fait pour ça...

--
DW

Avatar
Nicolas.MICHEL
Mihamina Rakotomandimby (R12y) wrote:

Explique moi, meme en théorie mais en tenant compte des taux de transfert en
écriture, on peut faire une sauvegarde à chaud pendant que les utilisateurs
font des INSERT et UPDATE dans la base MySQL.


Ce n'est pas à toi que je vais expliquer comment faire un dump.

Si c'est tout ce que tu as comme "excuse", c'est un peut triste, non ?
J'aurais voulu écrire un post constructif, mais je crois que c'est raté.

Si j'ai bien compris le problème, il y a déjà grub ou lilo qui suck,
merci Mr bios, puis il faut s'inquiéter des fichiers ouverts, puis la
gestion des drivers sous linux est dificile en cas de changement de
matos.

Donc on ne peux cloner qu'en rebootant sur un live CD et ce clone ne
fonctionnera que sur une machine strictement identique ... c'est ça ?
Pas très satisfaisant ...

Celà est-il valable même pour un noyaux "générique" comme on en trouve
sur les distrib précompilées ?
On ne peux pas juste demander à kudzu de refaire une tournée générale ?

--
Nicolas, naïf

Avatar
Michel Tatoute
Fabien LE LEZ wrote:

Bonjour,

J'ai un serveur que j'aimerais "cloner" vers une machine virtuelle
(VMware) pour pouvoir faire des tests.
Grosso modo, tous les logiciels et les données doivent être les mêmes,
mais bien sûr le matériel est très différent.
(Accessoirement, les paramètres IP seront différents aussi, mais ça,
c'est facile à modifier après coup.)


Il n'y a pas de gros problème: tu as deux solutions, soit tu utilise une
copie du disque ou des partitions soit une copie au niveau fichier.

Mais pour ça il faut de la place, et il y a le pb de la copie de l'état.

En tout cas pour l'avoir souvent fait, basculer un disque linux d'une
machine à une autre, réelle ou virtuelle ca ce passe generalement tres
bien.

Le probleme pour toi c'est la base mysql... Comment la copier dans un état
cohérent? Ca je te laisse chercher. Maintenant si c'est pour des test peut
être peux tu prendre des mesures appropriées (modele reduit de la base...
etc).


Difficulté supplémentaire : le serveur "source" est une machine
distante, à laquelle j'accède par SSH, et que je ne peux pas éteindre.
Je ne peux pas non plus me permettre de couper Apache ou MySQL plus de
quelques secondes.

Faut-il que, partant d'une machine virtuelle où Debian est déjà
installé (pour avoir un boot qui fonctionne sans me prendre la tête),
je copie (presque) tous les fichiers ?
Si oui, quels fichiers ne dois-je pas copier ?



a priori ce qu'il y a dans /boot
le reste... bof.
Utilise le même noyau.

Perso je ferais ainsi:

je boote la machine virtuelle sur un livecd qque, en mode texte (et meme
single user), avec un disque dur vierge de taille suffisante. je
partitionne le disque de façon adequate, mais le + simple c'est une seule
partition pour le futur / et même pas de swap. je monte / sur /mnt/newroot

Depuis la machine vituelle je me connecte par ssh sur le serveur et je copie
sur /mnt/newroot les repertoires: /etc , /bin , /sbin, et /lib. c'est
amplement suffisant pour booter une machine en single user.

je me chroot sur /mnt/newroot, et j'installe grub (ou lilo) dans le mbr.

# grub --batch
grub> find /boot/grub/stage1
(hd0,0)
grub> root (hd0,0)
grub> setup (hd0)
grub> q

verifier le /boot/grub/menu.lst

quitter le chroot, puis rebooter sans le live cd, en mode single (rescue?).

se connecter au serveur et copier le reste. Resoudre la problématique de
snapshot de mysql. Passer au level d'init normal (ou rebooter).

voila.

Ou bien, y a-t-il une solution plus simple ?


(J'ai bien pensé à Mondorescue, mais je ne suis pas trop sûr de son
fonctionnement quand Apache et MySQL sont en route ; par ailleurs,
j'aimerais autant éviter d'installer trop de trucs sur le serveur.)

Merci d'avance...
de rien,

Michel.

Avatar
Mihamina Rakotomandimby (R12y)
Nicolas MICHEL wrote:

Explique moi, meme en théorie mais en tenant compte des taux de transfert
en écriture, on peut faire une sauvegarde à chaud pendant que les
utilisateurs font des INSERT et UPDATE dans la base MySQL.
Ce n'est pas à toi que je vais expliquer comment faire un dump.



dump de quoi, exactement?
De MySQL? et le reste?

Si c'est tout ce que tu as comme "excuse", c'est un peut triste, non ?


Bah...

Si j'ai bien compris le problème, il y a déjà grub ou lilo qui suck,
merci Mr bios, puis il faut s'inquiéter des fichiers ouverts, puis la
gestion des drivers sous linux est dificile en cas de changement de
matos.


Evidemment, "cloner" un Mac vers/pour un autre Mac, c'est autrement plus
facile, compte tenu de l'homogénéité du matériel.

Donc on ne peux cloner qu'en rebootant sur un live CD et ce clone ne
fonctionnera que sur une machine strictement identique ... c'est ça ?
Pas très satisfaisant ...


Il ne voulait _pas_ cloner vers une machine identique de toutes façons,
mais vers vmware.

Celà est-il valable même pour un noyaux "générique" comme on en trouve
sur les distrib précompilées ?
On ne peux pas juste demander à kudzu de refaire une tournée générale ?



Avatar
Mihamina Rakotomandimby (R12y)
Damien Wyart wrote:

Ben snapshots LVM, c'est fait pour ça...


Ca prend combien de temps d'indisponibilité de passer un FS en LVM (s'il ne
l'a pas initialement été)?

Avatar
Thierry Boudet
On 2007-05-31, Damien Wyart wrote:

La machine principale de le ou je travaille maintenant a un système
(tout le système, logs compris) qui tient a peu pres dans 3 ou 4 Go.
Explique moi, meme en théorie mais en tenant compte des taux de
transfert en écriture, on peut faire une sauvegarde à chaud pendant
que les utilisateurs font des INSERT et UPDATE dans la base MySQL.


Ben snapshots LVM, c'est fait pour ça...


Je ne suis pas sur que ça fonctionne, à moins qu'il connaisse
un moyen de demander à la bédédé de "sync-er" ses données.


--
--{ http://tontonth.free.fr/ }--


1 2 3