Voici ma situation:
- Deux serveurs dédiés dans le même centre de données avec Ethernet gigabit entre eux.
- Les deux serveurs dédiés ont démarré dans un environnement de secours basé sur Debian Squeeze avec des outils et des utilitaires supplémentaires ajoutés. Aussi beaucoup d'espace tmp (32 Go de RAM sur les deux boîtiers) pour télécharger des logiciels, installer des packages et / ou compiler au besoin.
- Les deux serveurs dédiés ont environ 3 To d'espace utilisable.
- Le serveur "source" dispose de 4 disques de 1,5 To en matériel RAID-10 avec un contrôleur de port Adaptec 4.
- Le serveur «de destination» dispose de 2 disques de 3 To en matériel RAID-1 avec un contrôleur de port Adaptec 2 - même génération que l'autre, mais nombre de ports différent.
- Le nombre de blocs utilisables sur
/dev/sda
diffère de moins de 10 Mo, mais la baie du serveur de destination est pour une raison quelconque de quelques mégaoctets plus petite. - Les deux matrices RAID sont configurées pour utiliser toute la surface du disque de tous les disques constitutifs pour créer un seul volume RAID.
- Le système d'exploitation démarre en mode MBR; aucun démarrage UEFI n'est utilisé.
Ce que je veux faire:
- Copiez, au niveau de la couche de bloc, la totalité de l'image du système d'exploitation (il ne s'agit que du chargeur de démarrage GRUB2 dans la table de partition GPT, la partition / boot et / partition) du serveur "source" vers le serveur "destination".
- Si possible , la copie doit avoir lieu "en direct": cela signifie que je n'ai pas assez d'espace pour stocker un fichier approprié de l'image disque du côté destination, à moins que je ne déballe l'image disque sur le disque dur en tant que copie. a lieu . La connexion Ethernet gigabit entre les serveurs est suffisamment fiable pour que je sois à l'aise avec cela, et je vais bien sûr courir
fsck
aux deux extrémités (source et destination) pour vérifier que le système de fichiers est OK avant et après le transfert. - Si possible , ne transférez pas de blocs sur le réseau, qui ne sont pas utilisés par les systèmes de fichiers constitutifs de chaque partition (toutes les partitions sont formatées en ext4). En effet, plus de 50% du disque "source" est de l'espace libre dans la
/
partition. - Ajustez la taille de la
/
partition de sorte que lorsqu'elle est copiée, elle soit redimensionnée pour s'adapter à la taille à peine plus petite du disque de destination. - Une fois la copie réussie, montez chaque volume et corrigez les références aux adresses IP statiques pour refléter les adresses IP du nouveau serveur. (Peut le faire très bien sans autre aide)
Mes questions:
- Dois-je d' abord calculer la différence (en octets) entre la taille de
/dev/sda
sur chaque serveur, puis l'utilisere2resize
pour réduire de façon non destructive la taille de la/
partition côté source afin qu'elle tienne dans l'espace du côté destination? - Dois-je exécuter
dd
sur le périphérique de bloc brut,/dev/sda
de la source à la destination (surssh
), ou dois-je créer une disposition de partition équivalente sur la destination et l'exécuterdd
sur chaque partition ? Notez que la gestion d'une partition à la fois me laisse le problème du chargeur de démarrage, mais si je ne le fais pas une partition à la fois, ildd
faut savoir arrêter de transférer les données une fois qu'il a écrit autant d'octets que la destination peut contenir (qui, espérons-le, "fermera" la toute fin de la/
partition sur le dernier bloc, qui est logiquement "à droite de" toutes les autres partitions dans la disposition des partitions de la source).
Quelques misc. détails:
- Le système d'exploitation hôte sur la boîte source est Ubuntu Server 12.04 exécutant plusieurs invités OpenVZ
- Étant donné que les deux boîtiers sont démarrés en mode de secours, l'accès direct au disque est possible sans attendre de modification des données sous-jacentes par le système d'exploitation en cours d'exécution.