J'ai besoin de cloner un serveur Linux fonctionnel. Nous ne pouvons pas arrêter le serveur de travail. Existe-t-il un moyen d'obtenir un clone et de le déployer sur un autre serveur?
J'ai besoin de cloner un serveur Linux fonctionnel. Nous ne pouvons pas arrêter le serveur de travail. Existe-t-il un moyen d'obtenir un clone et de le déployer sur un autre serveur?
Réponses:
Il existe de nombreuses façons de copier des disques, des systèmes de fichiers ou des fichiers. Généralement, la copie du système de fichiers vous donne un bon clone avec la flexibilité qu'il peut être d'une taille légèrement différente sur le système cible. Avec le système cible exécutant une sorte de Linux en direct (knoppix, ubuntu live, etc.), démarré à partir d'un cdrom, vous pouvez créer les partitions sur le disque en utilisant fdisk ou votre application de partition préférée. En supposant que vous disposez d'un serveur SSH en cours d'exécution sur le système source, adoptez une approche similaire à celle-ci:
http://www.linuxfocus.org/English/March2005/article370.shtml
La magie opère dans cette commande:
ssh sourcePC 'dump -0 -f - /' | restore -r -f -
Lorsque vous utilisez une méthode particulière pour cloner des disques sur un environnement Linux en direct, votre seule préoccupation serait probablement avec les bases de données. La meilleure façon de sauvegarder et de restaurer une base de données est d'utiliser leur outil de vidage pour créer un instantané de fichier ascii de la base de données juste avant le vidage du système de fichiers. Pour mysql il y a:
mysqldump --all-databases > mysql_databases.sql
Pour postgresql, il y a:
pg_dumpall > pg_databases.sql
Si vous rencontrez une sorte d'erreur de cohérence sur le nouveau système, restaurez la base de données. Alternativement, une fois que vous avez arrêté les services sur le système source, recommencez le vidage de la base de données et restaurez sur la cible, et vous ne manquerez aucune donnée récemment modifiée.
Construisez une disposition de disque sur la nouvelle machine comme vous le souhaitez.
Utilisez rsync pour transférer le contenu du disque. Répétez plusieurs fois pour rattraper complètement.
Sur la nouvelle machine, testez ce que vous devrez faire pour démarrer correctement. Grub par exemple, et obtenez-le dans un état cohérent.
Jusqu'à ce que vous puissiez arrêter l'ancienne machine, rsync à intervalles réguliers pour garder le nouveau disque proche de l'ancien.
Amenez ensuite l'ancien en mode de maintenance, rsync une fois de plus et démarrez le nouveau qui devrait se comporter comme l'ancien.
Mon collègue ne jure que par System Imager:
http://wiki.systemimager.org/index.php/Main_Page
Je ne sais pas dans quelle mesure cela fonctionnerait pour les systèmes "en direct".
Sinon, je pense que vous êtes coincé à faire les choses manuellement:
À condition que vous puissiez mettre vos bases de données dans un état cohérent sur le disque, vous pouvez simplement utiliser DAR pour faire une copie de tout, puis la réécrire sur votre nouveau serveur.
La synchronisation de vos bases de données vers un état cohérent sur le disque peut être délicate, mais il suffit de prendre un instantané, puis de le restaurer après avoir restauré l'image DAR. DAR aura un impact sur les performances du serveur pendant son exécution.
Une fois que vous avez votre image, vous pouvez modifier les paramètres réseau et vous devriez pouvoir la récupérer sans problème.