Preparare la migrazione senza agente VMware

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione di Linux che ha raggiunto lo stato di fine del servizio (EOL). Valutare le proprie esigenze e pianificare di conseguenza. Per ulteriori informazioni, consultare la Guida alla fine del ciclo di vita di CentOS.

Questo articolo offre una panoramica delle modifiche apportate quando si esegue la migrazione di macchine virtuali VMware ad Azure tramite il metodo di migrazione senza agente tramite lo strumento di migrazione e modernizzazione.

Prima di eseguire la migrazione della macchina virtuale locale ad Azure, potrebbero essere necessarie alcune modifiche per preparare la macchina virtuale per Azure. Queste modifiche sono importanti per assicurarsi che la macchina virtuale migrata possa essere avviata correttamente in Azure e che sia possibile stabilire la connettività alla macchina virtuale di Azure. Azure Migrate gestisce automaticamente queste modifiche di configurazione per le versioni del sistema operativo seguenti, per Linux e Windows. Questo processo è denominato idratazione.

Versioni del sistema operativo supportate per l'idratazione

  • Windows Server 2008 o versione successiva
  • Red Hat Enterprise Linux 9.x, 8.x, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.0, 6.x
  • Flusso CentOS
  • SUSE Linux Enterprise Server 15 SP4, 15 SP3, 15 SP2, 15 SP1, 15 SP0, 12, 11 SP4, 11 SP3
  • Ubuntu 22.04, 21.04, 20.04, 19.04, 19.10, 18.04LTS, 16.04LTS, 14.04LTS
  • Kali Linux (2016, 2017, 2018, 2019, 2020, 2021, 2022)
  • Debian 11, 10, 9, 8, 7
  • Oracle Linux 9, 8, 7.7-CI, 7.7, 6

È possibile usare questo articolo per preparare manualmente le macchine virtuali per la migrazione ad Azure anche per le versioni dei sistemi operativi non elencate in precedenza. A livello generale, queste modifiche includono:

  • Convalidare la presenza dei driver necessari
  • Abilitare la console seriale
  • Configurare le impostazioni di rete
  • Installare l'agente guest VM

Processo di idratazione

È necessario apportare alcune modifiche alla configurazione delle macchine virtuali prima della migrazione per assicurarsi che le macchine virtuali migrate funzionino correttamente in Azure. Azure Migrate gestisce queste modifiche di configurazione tramite il processo di idratazione. Il processo di idratazione viene eseguito solo per le versioni dei sistemi operativi supportati da Azure indicati in precedenza. Prima di eseguire la migrazione, potrebbe essere necessario eseguire manualmente le modifiche necessarie per altre versioni del sistema operativo non elencate in precedenza. Se viene eseguita la migrazione della macchina virtuale senza le modifiche necessarie, è possibile che la macchina virtuale non venga avviata o che non si disponga della connettività alla macchina virtuale migrata. Il diagramma seguente illustra che Azure Migrate esegue il processo di idratazione.

Procedura per l’idratazione

Quando un utente attiva Testa Esegui la migrazione o Esegui la migrazione, Azure Migrate esegue il processo di idratazione per preparare la macchina virtuale locale alla migrazione ad Azure. Per configurare il processo di idratazione, Azure Migrate crea una macchina virtuale di Azure temporanea e collega i dischi della macchina virtuale di origine per eseguire le modifiche e preparare la macchina virtuale di origine per Azure. La macchina virtuale temporanea di Azure è una macchina virtuale intermedia creata durante il processo di migrazione prima della creazione della macchina virtuale migrata finale. La macchina virtuale temporanea verrà creata con un tipo di sistema operativo simile (Windows/Linux) usando una delle immagini del sistema operativo del marketplace. Se la macchina virtuale locale esegue Windows, il disco del sistema operativo della macchina virtuale locale verrà collegato come disco dati alla macchina virtuale temporanea per l'esecuzione delle modifiche. Se si tratta di un server Linux, tutti i dischi collegati alla macchina virtuale locale verranno collegati come dischi dati alla macchina virtuale temporanea di Azure.

Azure Migrate creerà l'interfaccia di rete, una nuova rete virtuale, una subnet e un gruppo di sicurezza di rete (NSG) per ospitare la macchina virtuale temporanea. Queste risorse vengono create nella sottoscrizione del cliente. Se sono presenti criteri in conflitto che impediscono la creazione degli artefatti di rete, Azure Migrate tenterà di creare la macchina virtuale temporanea di Azure nella rete virtuale e nella subnet fornite come parte delle opzioni dei impostazione della destinazione della replica.

Dopo aver creato la macchina virtuale, Azure Migrate richiamerà l'estensione per script personalizzati nella macchina virtuale temporanea tramite l'API REST della macchina virtuale di Azure. L'utilità dell'estensione per script personalizzati eseguirà uno script di preparazione contenente la configurazione necessaria per l'idoneità per Azure sui dischi delle macchine virtuali locali collegati alla macchina virtuale temporanea di Azure. Lo script di preparazione viene scaricato da un account di archiviazione di proprietà di Azure Migrate. Le regole del gruppo di sicurezza di rete della rete virtuale verranno configurate per consentire alla macchina virtuale temporanea di Azure di accedere all'account di archiviazione di Azure Migrate per richiamare lo script.

Passaggi per la migrazione

Nota

I dischi delle macchine virtuali di idratazione non supportano la chiave gestita dal cliente. La chiave gestita dalla piattaforma è l'opzione predefinita.

Modifiche eseguite durante il processo di idratazione

Lo script di preparazione esegue le modifiche seguenti in base al tipo di sistema operativo della macchina virtuale di origine di cui eseguire la migrazione. È possibile usare questa sezione anche come guida per preparare manualmente le macchine virtuali per la migrazione per le versioni dei sistemi operativi non supportate per l'idratazione.

Modifiche eseguite nei server Windows

  1. Individuare e preparare il volume del sistema operativo Windows

    Prima di eseguire le modifiche di configurazione pertinenti, lo script di preparazione verificherà se il disco del sistema operativo corretto è stato selezionato per la migrazione. Lo script di preparazione esaminerà tutti i volumi collegati visibili al sistema e cercherà il percorso del file hive del Registro di sistema system per trovare il volume del sistema operativo di origine.

    In questo passaggio vengono eseguite le azioni seguenti:

    • Viene montata ogni partizione sul disco del sistema operativo collegato alla macchina virtuale temporanea.

    • Si cercano i file del Registro di sistema \Windows\System32\Config\System dopo il montaggio della partizione.

    • Se i file non vengono trovati, la partizione viene smontata e la ricerca della partizione corretta continua.

    • Se i file non sono presenti in una delle partizioni, potrebbe indicare che è stato selezionato un disco del sistema operativo non corretto o che il disco del sistema operativo è danneggiato. Azure Migrate fallirà il processo di migrazione con un errore pertinente.

    Nota

    Questo passaggio non è rilevante se si preparano manualmente i server per la migrazione.

  2. Apportare modifiche relative all'avvio e alla connettività

    Dopo aver rilevato i file del volume del sistema operativo di origine, lo script di preparazione caricherà l'hive del Registro di sistema system nell'editor del Registro di sistema della macchina virtuale temporanea di Azure ed eseguirà le modifiche seguenti per garantire l'avvio e la connettività della macchina virtuale. È necessario configurare queste impostazioni manualmente se la versione del sistema operativo non è supportata per l'idratazione.

    1. Convalidare la presenza dei driver necessari

      Verificare se i driver necessari sono installati e sono impostati per il caricamento all'avvio. Questi driver di Windows consentono al server di comunicare con l'hardware e gli altri dispositivi connessi.

      • IntelIde.sys
      • Atapi
      • Storfit
      • Storvsc
      • VMbus
    2. Impostare i criteri della rete di archiviazione (SAN) su Online All

      Questo criterio assicura che i volumi di Windows nella VM di Azure usino le stesse assegnazioni di lettere di unità della VM locale. Per impostazione predefinita, alle macchine virtuali di Azure viene assegnata l'unità D: da usare come spazio di archiviazione temporanea. Questa assegnazione di unità comporta l'incremento di una lettera per tutte le altre assegnazioni di unità di archiviazione collegate. Per impedire questa assegnazione automatica e per assicurarsi che Azure assegni la lettera di unità libera successiva al relativo volume temporaneo, impostare i criteri della rete di archiviazione (SAN) su OnlineAll.

      Per configurare manualmente questa impostazione:

      • Nel server locale, aprire il prompt dei comandi con privilegi elevati e immettere diskpart.

        Configurazione manuale

      • Immettere SAN. Se la lettera di unità del sistema operativo guest non viene mantenuta, verrà restituito Porta offline tutti i dischi o Porta offline dischi condivisi.

      • Al prompt di DISKPART immettere SAN Policy=OnlineAll. Questa impostazione garantisce che i dischi vengano portati online e che sia possibile eseguire operazioni di lettura e scrittura su entrambi i dischi.

        Criteri online del prompt dei comandi amministratore diskpart

  3. Impostare il tipo di avvio DHCP

    Lo script di preparazione imposta anche il tipo di avvio del servizio DHCP come Automatico. In questo modo la macchina virtuale migrata potrà ottenere un indirizzo IP e stabilire la connettività dopo la migrazione. Verificare che il servizio DHCP sia configurato e che lo stato sia in esecuzione.

    Impostare il tipo di avvio DHCP

    Per modificare manualmente le impostazioni di avvio DHCP, eseguire l'esempio seguente in Windows PowerShell:

    Get-Service -Name Dhcp
    Where-Object StartType -ne Automatic
    Set-Service -StartupType Automatic
    
  4. Disabilitare gli strumenti VMware

    Impostare il tipo di avvio del servizio "Strumenti VMware" su disabilitato, se esiste, perché non sono necessari per la macchina virtuale in Azure.

    Nota

    Per connettersi alle macchine virtuali Windows Server 2003, è necessario installare Hyper-V Integration Services nella macchina virtuale di Azure. I computer Windows Server 2003 non dispongono di questa opzione installata per impostazione predefinita. Vedere questo articolo per eseguire l’installazione in preparazione alla migrazione.

  5. Installare l'agente guest di Windows Azure

    Azure Migrate tenterà di installare l'agente di macchine virtuali di Microsoft Azure, un processo protetto e leggero che gestisce l'interazione delle macchine virtuali con il controller di infrastruttura di Azure. L'agente di macchine virtuali ha un ruolo primario nell'abilitazione e nell'esecuzione di estensioni di macchine virtuali di Azure che abilitano la configurazione post-distribuzione della macchina virtuale, ad esempio l'installazione e la configurazione del software. Azure Migrate installa automaticamente l'agente di macchine virtuali Windows su Windows Server 2008 R2 e versioni successive.

    L'agente di macchine virtuali di Windows può essere installato manualmente con un pacchetto di Windows Installer. Per installare manualmente l'agente di macchine virtuali di Windows, scaricare il programma di installazione dell'agente di macchine virtuali. È inoltre possibile cercare una versione specifica nelle release dell'agente di macchine virtuali IaaS Windows di GitHub. L'agente di macchine virtuali è supportato in Windows Server 2008 (64 bit) e versioni successive.

    Per verificare se l'agente di macchine virtuali di Azure è stato installato correttamente, aprire Gestione attività, selezionare la scheda Dettagli e cercare il nome del processo WindowsAzureGuestAgent.exe. La presenza di questo processo indica che l'agente di macchine virtuali è installato. È inoltre possibile usare PowerShell per rilevare l'agente di macchine virtuali.

    Installazione dell'agente di macchine virtuali di Azure riuscita

    Dopo l'esecuzione delle modifiche sopra indicate, verrà scaricata la partizione di sistema. La macchina virtuale è ora pronta per la migrazione. Altre informazioni sulle modifiche per i server Windows.

Modifiche eseguite nei server Linux

  1. Individuare e montare partizioni del sistema operativo Linux

    Prima di eseguire le modifiche di configurazione pertinenti, lo script di preparazione verificherà se il disco del sistema operativo corretto è stato selezionato per la migrazione. Lo script raccoglierà informazioni su tutte le partizioni, sui relativi UUID e i punti di montaggio. Lo script esaminerà tutte le partizioni visibili per individuare le partizioni /boot e /root.

    In questo passaggio vengono eseguite le azioni seguenti:

    • Individuare la partizione /root:
      • Montare ogni partizione visibile e cercare etc/fstab.
      • Se i file fstab non vengono trovati, la partizione viene smontata e la ricerca della partizione corretta continua.
      • Se vengono trovati i file fstab, leggere il contenuto fstab per identificare il dispositivo radice e montarlo come punto di montaggio di base.
    • Individuare /boot e altre partizioni di sistema:
      • Usare il contenuto fstab per determinare se /boot è una partizione separata. Se si tratta di una partizione separata, ottenere il nome del dispositivo della partizione di avvio dal contenuto fstab o cercare la partizione, che ha il flag di avvio.
      • Lo script procederà all'individuazione e al montaggio di /boot e di altre partizioni necessarie in "/mnt/azure_sms_root" per compilare l'albero del file system radice necessario per il jail chroot. Tra le altre partizioni necessarie ci sono: /boot/grub/menu.lst, /boot/grub/grub.conf, /boot/grub2/grub.cfg, /boot/grub.cfg, /boot/efi (per avvio UEFI), /var, /lib, /etc, /usr e altre.
  2. Individuare la versione del sistema operativo

    Dopo aver individuato la partizione radice, lo script userà i file seguenti per determinare la distribuzione e la versione del sistema operativo Linux.

    • RHEL: etc/redhat-release
    • OL: etc/oracle-release
    • SLES: etc/SuSE-release
    • Ubuntu: etc/lsb-release
    • Debian: etc/debian_version
  3. Installare Hyper-V Linux Integration Services e rigenerare l'immagine del kernel

    Il passaggio successivo consiste nell'esaminare l'immagine del kernel e ricompilare l'immagine init di Linux in modo che contenga i driver Hyper-V necessari (hv_vmbus, hv_storvsc, hv_netvsc) nel disco ram iniziale. L'inclusione dell'immagine iniziale garantisce che la macchina virtuale possa essere avviata in Azure.

    Azure viene eseguito nell'hypervisor Hyper-V. Linux richiede quindi l'esecuzione di alcuni moduli kernel in Azure. Per preparare l'immagine Linux, è necessario ricompilare initrd in modo che almeno i moduli kernel hv_vmbus e hv_storvsc siano disponibili nel disco ram iniziale. Il meccanismo per ricreare l'immagine initrd o initramfs può variare a seconda della distribuzione. Per la procedura appropriata, consultare la documentazione della distribuzione o il supporto. Ecco un esempio di come ricompilare l'immagine initrd tramite l'utilità mkinitrd:

    1. Trovare l'elenco dei kernel installati nel sistema (/lib/modules)

    2. Per ogni modulo, controllare se i driver Hyper-V sono già inclusi.

    3. Se uno di questi driver non è presente, aggiungere i driver necessari e rigenerare l'immagine per la versione del kernel corrispondente.

      Nota

      Questo passaggio potrebbe non essere applicabile alle macchine virtuali Ubuntu e Debian perché i driver Hyper-V sono incorporati per impostazione predefinita. Altre informazioni sulle modifiche.

      Esempio illustrativo per la ricompilazione di initrd

      • Eseguire il backup dell'immagine initrd esistente
       cd /boot
       sudo cp initrd-`uname -r`.img  initrd-`uname -r`.img.bak
      
      • Ricompilare initrd con i moduli kernel hv_vmbus e hv_storvsc:
         sudo mkinitrd --preload=hv_storvsc --preload=hv_vmbus -v -f initrd-`uname -r`.img `uname -r`
      

    Nella maggior parte delle nuove versioni delle distribuzioni di Linux è presente per impostazione predefinita. Se non è inclusa, installarla manualmente per tutte le versioni ad eccezione di quelle evidenziate, seguendo la procedura indicata in precedenza.

  4. Abilitare la registrazione della console seriale di Azure

    Lo script apporta quindi modifiche per abilitare la registrazione della console seriale di Azure. L'abilitazione della registrazione della console consente di risolvere i problemi nella macchina virtuale di Azure. Altre informazioni sulla console seriale di Azure per Linux console seriale di Azure per Linux - Macchine virtuali | Microsoft Docs.

    Modificare la riga di avvio del kernel in GRUB o GRUB2 in modo da includere i parametri seguenti, perché tutti i messaggi della console vengano inviati alla prima porta seriale. Questi messaggi possono aiutare il supporto di Azure per il debug di eventuali problemi.

     console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300
    

    È inoltre consigliabile rimuovere i parametri seguenti, se presenti.

    rhgb quiet crashkernel=auto
    

    Per modifiche specifiche, vedere questo articolo.

  5. Modifiche di rete per la connettività

    In base alla versione del sistema operativo, lo script eseguirà le modifiche di rete necessarie per la connettività alla macchina virtuale migrata. Le modifiche includono:

    1. Spostare o eliminare le regole udev per evitare la generazione di regole statiche per l'interfaccia Ethernet. Le regole seguenti causano problemi quando si clona una macchina virtuale in Azure.

      Esempio illustrativo per i server RedHat

         sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
         sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
      
    2. Rimuovere Gestione rete, se necessario. Gestione rete può interferire con l'agente Linux di Azure per alcune versioni del sistema operativo. È consigliabile apportare queste modifiche per i server che eseguono distribuzioni RedHat e Ubuntu.

    3. Disinstallare il pacchetto eseguendo questo comando:

      Esempio illustrativo per i server RedHat

         sudo rpm -e --nodeps NetworkManager
      
    4. Eseguire il backup delle impostazioni NIC esistenti e creare il file di configurazione della scheda di interfaccia di rete eth0 con le impostazioni DHCP. A tale scopo, lo script creerà o modificherà il file /etc/sysconfig/network-scripts/ifcfg-eth0 e aggiungerà il testo seguente:

      Esempio illustrativo per i server RedHat

         DEVICE=eth0
         ONBOOT=yes
         BOOTPROTO=dhcp
         TYPE=Ethernet
         USERCTL=no
         PEERDNS=yes
         IPV6INIT=no
         PERSISTENT_DHCLIENT=yes
         NM_CONTROLLED=yes
      
    5. Reimpostare il file etc/sysconfig/network come indicato di seguito:

      Esempio illustrativo per i server RedHat

         NETWORKING=yes
         HOSTNAME=localhost.localdomain
      
  6. Convalida fstab

    Azure Migrate convaliderà le voci del file fstab e sostituirà le voci fstab con identificatori di volume permanenti, UUID, ovunque necessario. In questo modo, il nome dell'unità/partizione rimane costante indipendentemente dal sistema a cui è collegato.

    • Se il nome del dispositivo è un nome di dispositivo standard (ad esempio /dev/sdb1), allora:
      • Se si tratta di una partizione radice o di avvio, viene sostituita da UUID.
      • Se la partizione coesiste con la partizione radice o di avvio come partizioni standard nello stesso disco, viene sostituita da UUID.
    • Se il nome del dispositivo è UUID/LABEL/LV, non verranno apportate modifiche.
    • Se si tratta di un dispositivo di rete (nfs, cifs, smbfs e così via), lo script commenterà la voce. Per accedervi, è possibile rimuovere il commento e riavviare la macchina virtuale di Azure.
  7. Installare l'agente guest Linux di Azure

    Azure Migrate tenterà di installare l'agente Linux di Microsoft Azure (waagent), un processo protetto e leggero che gestisce il provisioning di Linux e FreeBSD e l'interazione delle macchine virtuali con il controller di Infrastruttura di Azure. Altre informazioni sulle funzionalità abilitate per le distribuzioni IaaS di Linux e FreeBSD tramite l'agente Linux.

    Esaminare l'elenco dei pacchetti necessari per installare l'agente di macchine virtuali Linux. Azure Migrate installa automaticamente l'agente di macchine virtuali Linux per RHEL 9.x, 8.x/7.x/6.x, Ubuntu 14.04/16.04/18.04/19.04/19.10/20.04, SUSE 15 SP0/15 SP1/12, Debian 9/8/7 e Oracle 7/6 quando si usa il metodo senza agente di migrazione di VMware. Seguire queste istruzioni per installare manualmente l'agente Linux per altre versioni del sistema operativo.

    È possibile usare il comando per verificare lo stato del servizio dell'agente Linux di Azure per assicurarsi che sia in esecuzione. Il nome del servizio potrebbe essere walinuxagent o waagent. Una volta apportate le modifiche di idratazione, lo script smonterà tutte le partizioni montate, disattiverà i gruppi di volumi e scaricherà i dispositivi.

       sudo vgchange -an <vg-name>
       sudo lockdev –flushbufs <disk-device-name>
    

    Altre informazioni sulle modifiche per i server Linux.

Pulire la macchina virtuale temporanea

Dopo aver eseguito le modifiche necessarie, Azure Migrate eseguirà lo spin-down della macchina virtuale temporanea e libererà i dischi del sistema operativo collegati (e i dischi dati). Questo segna la fine del processo di idratazione.

Successivamente, vengono clonati il disco del sistema operativo modificato e i dischi dati che contengono i dati replicati. Viene creata una nuova macchina virtuale nell'area di destinazione, rete virtuale e subnet, e i dischi clonati vengono collegati alla macchina virtuale. In questo modo viene contrassegnato il completamento del processo di migrazione.

Altre informazioni