Fix dei problemi di boot migrando macchine Linux da VMWare a ProxMox

Seguendo l’apposita guida (http://pve.proxmox.com /wiki/Migration_of_servers_to_Proxmox_VE) ho copiato i files .vmdk dall’host VMWare a quello ProxMox (sia quelli con la stringa “flat” nel nome sia quelle senza), poi ho lanciato la conversione:

qemu-img convert -f vmdk FILE_IN_VMDK.vmdk -O qcow2 FILE_IN_QCOW.qcow2

Terminata questa operazione con TUTTI i dischi presenti sulla macchina siamo pronti per collegare i dischi alla nuova macchina KVM. Attenzione perché durante la conversione il sistema legge dal file vmdk e scrive su quello qcow2, occupando quindi moltissimo spazio (di fatto lo spazio occupato raddoppia)

A questo punto dalla console di ProxMox creare la nuova macchina KVM assegnandogli tanti dischi quanti sono quelli di origine, con dimensioni minime (5GB va bene) e SCSI nel caso di macchine virtuali Linux

All’interno della directory dove risiedono i files della VM ProxMox (/var(liv/vz/images/MACHINE_ID) a questo punto abbiamo tre tipi di files:

  1. i files originari .vmdk
  2. i files convertiti .qcow2
  3. i files dei dischi virtuali da 5 GB creati durante la creazione della VM (con estensione sempre .qcow2, ma con nomi diversi da quelli dei files convertiti)

Annotarsi i nomi dei files qcow2 convertiti, le dimensioni dei dischi e il loro posizionamento sulla catena SCSI (queste ultime due informazioni si possono dedurre dalla console di VMWare)

Editare il file di configurazione della macchina virtuale (/etc/pve/nodes/HOSTNAME/qemu-server/VMID.conf); per la precisione le righe che definiscono i dischi, che sono fatte in questo modo:

scsi0: local:VMID/vm-VMID-disk-1.qcow2,format=qcow2,size=5G

vanno modificate sostituendo il nome del disco che inizia con vm (che è quello creato durante la creazione della VM) con il nome del disco convertito da .vmdk. Inoltre verificare che il numero che sta dopo scsi sia quello corrispondente nella catena SCSI originale e la dimensione sia quella corretta.

A questo punto si può avviare la macchina migrata.

Si possono presentare dei problemi all’avvio; vediamo due casi reali: opensuse10.2: non si avviava perché nell’initrd non c’erano i driver per il controller dei dischi virtuale. Per risolvere questo problema procedere come segue:

  1. scaricare la ISO della distribuzione e avviare il sistema con questa;
  2. da Yast verificare quali sono i moduli utilizzati per accedere al controller e prenderne nota (nel caso in esame erano piix e sym53c8xx)
  3. montare la partizione / originale in /mnt: mount /dev/sda2 /mnt
  4. chroot /mnt
  5. spostarsi nella /boot: cd /boot
  6. rigenerare ‘initrd caricando i moduli mancanti:  mkintird -d /dev/sda2 -m piix -m sym53c8xx
  7. riavviare la macchina e tutto funzionerà

Centos 5: nell’initrd non erano correttamente registrati i volumi in LVM:

  1. scaricare la ISO di Centos 5 e avviare il sistema da essa in rescue mode. Il sistema trova l’installazione preesistente e segnala che l’ha montata in /mnr/sysimage
  2. chroot /mnt/sysimage
  3. cd /boot
  4. mkinitrd -v -f initrd2.4.18-19.8.0.img 2.4.18-19.8.0 (la stringa numerica deve essere quella del file initrd presente)
  5. reboot e tutto funziona
© 2021 Catfish Blog | Tema: Storto di CrestaProject WordPress Themes.