Comment synchroniser deux instances d'une machine virtuelle à utiliser sur différents ordinateurs?

8

J'utilise VirtualBox sur mon bureau depuis un bon moment. Ayant récemment acheté un ordinateur portable, je veux pouvoir emporter ma machine virtuelle Ubuntu avec moi et faire en sorte que les modifications que j'effectue sur l'ordinateur portable se propagent sur le bureau, et vice-versa, à mon arrivée / mon départ. Le système d'exploitation hôte est Windows 7 sur les deux ordinateurs, exécutant VirtualBox 4.

Ma première pensée a été de synchroniser les fichiers du disque virtuel eux-mêmes. Mon outil de choix serait rsync, plus précisément sa version Cygwin, d'utiliser l' --inplaceoption pour réduire autant que possible les écritures. Mais ce serait irréalisable: cela m'empêcherait de travailler séparément sur les machines virtuelles, car rsyncn'aurait aucun moyen de détecter les conflits et de les fusionner correctement sans connaître les systèmes de fichiers qui se trouvent à l'intérieur des conteneurs.

L'option suivante serait de rsynccombiner les machines en cours d'exécution. Cela fonctionnerait-il sans gâcher la gestion des packages? Aurais-je besoin de faire quoi que ce soit manuellement en plus des mises à jour comme un nouveau noyau ou de nouveaux pilotes? Existe-t-il une autre solution qui pourrait mieux fonctionner?

danielkza
la source
Je pense que vous devriez diviser cette question en deux. Renseignez-vous d'abord sur la mise en miroir du serveur. Ensuite, lorsque vous avez (espérons-le) quelques réponses, demandez comment les implémenter sur une machine virtuelle.
Nifle
une autre possibilité serait d'avoir une seule instance de la VM sur le portable et d'y accéder à distance depuis le système principal à la maison.
Journeyman Geek
Vous ne devriez synchroniser que les logiciels et les documents - pas les machines virtuelles entières - car vous ne pouvez pas avoir deux machines sur le réseau avec les mêmes adresses MAC et noms d'hôte. Cela provoquerait un chaos.
paradroid
@Journeyman Geek: Je n'y avais pas pensé, cela pourrait fonctionner en effet, mais ce serait un peu plus lent compte tenu du disque dur de mon ordinateur portable qui rampe par rapport au SSD sur mon bureau.
danielkza
1
Y a-t-il une raison pour laquelle vous n'exécutez pas la machine virtuelle sur un disque externe et la déplacez d'un système à un autre?
Dave M

Réponses:

2

L'utilisation rsyncpour les opérations bidirectionnelles est difficile; Je vous suggère de considérer unisoncomme une alternative. Il fonctionnera dans les deux sens et vous indiquera ce qu'il va faire avant de le faire, et détectera également les fichiers manipulés simultanément des deux côtés.

L'exécution de la synchronisation en dehors de la machine virtuelle aura les problèmes que vous décrivez. Les résultats lorsqu'ils sont exécutés à l'intérieur de la machine virtuelle dépendent grandement de ce que vous synchronisez.

  • La synchronisation de votre répertoire personnel ne devrait poser aucun problème et devrait synchroniser la plupart de votre travail quotidien, je présume.
  • La synchronisation des données du gestionnaire de packages n'aura de sens que si vous effectuez une synchronisation complète de presque tout, peut-être à quelques exceptions mûrement réfléchies. Dans une synchronisation bidirectionnelle, cela entraînera presque toujours un conflit, donc je ne le conseillerais que pour une approche de style rsync.
  • La synchronisation /etcainsi que votre domicile devraient synchroniser la plupart des données de configuration et avoir encore peu d'impact sur ce que fait le gestionnaire de paquets. Mais si vous installez un logiciel sur une machine virtuelle, vous devrez également l'installer manuellement sur l'autre, et ne devriez probablement synchroniser qu'après l' avoir fait, au cas où la mise à niveau aurait changé un fichier de configuration.
MvG
la source
1

Pensez à ne pas essayer de «synchroniser» la machine virtuelle du tout.

Pensez-y: vous ne "synchronisez" pas votre ordinateur de bureau et votre ordinateur portable de cette façon. Vous les traitez comme des machines distinctes et utilisez des services tels que Dropbox, Google Apps, etc., ou même une clé USB, pour travailler sur vos fichiers. De même, traitez les deux machines virtuelles Ubuntu comme des ordinateurs distincts et utilisez des services tels que Ubuntu One et ceux ci-dessus pour synchroniser vos fichiers importants.

Si vous souhaitez conserver la synchronisation du logiciel installé, vous pouvez utiliser

dpkg --list-selections

pour obtenir la liste des logiciels que vous avez spécifiquement installés sur une machine, puis installez le même logiciel sur l'autre.

Michael Hampton
la source