Migrazione delle VM da VMware ESXi a Red Hat OpenShift Virtualization
Migrare le VM da VMware ESXi a Red Hat OpenShift Virtualization utilizzando Shift Toolkit preparando le VM, convertendo i formati dei dischi e configurando l'ambiente di destinazione.
Shift Toolkit consente la migrazione delle VM tra piattaforme di virtualizzazione tramite la conversione del formato del disco e la riconfigurazione della rete nell'ambiente di destinazione.
Prima di iniziare
Prima di iniziare la migrazione, verificare che siano soddisfatti i seguenti prerequisiti.
-
Endpoint del cluster OpenShift con i seguenti operatori installati:
-
Operatore di virtualizzazione OpenShift
-
Driver NetApp Trident CSI
-
Stato del Nuovo Messico
-
-
NetApp Trident CSI configurato con backend e classi di storage appropriati
-
NodeNetworkConfigurationPolicy e NetworkAttachmentDefinitions (NAD) configurati con le VLAN appropriate
-
Il cluster OpenShift è raggiungibile dalla rete con le voci del file host correnti
-
Privilegi di livello amministratore sul cluster
-
File Kubeconfig scaricato
-
I file VMDK possono essere configurati in diversi modi: tutti i file VMDK possono risiedere su un singolo volume NFSv3 (eliminando la necessità di Storage vMotion), ciascun file VMDK può essere posizionato su un volume individuale oppure più file VMDK possono essere organizzati all'interno di un qtree in un volume.
Il Shift Toolkit rileva automaticamente il layout e seleziona il metodo di clonazione e i driver di storage NAS appropriati. Quando i file VMDK vengono inseriti all'interno di un qtree, Shift Toolkit utilizza il driver ONTAP-NAS-economy. -
Gli strumenti VMware sono in esecuzione sulle VM guest
-
Le VM da migrare sono in stato RUNNING per la preparazione
-
Le VM devono essere spente prima di attivare la migrazione
-
La rimozione degli strumenti VMware avviene sull'hypervisor di destinazione una volta accese le VM
-
ONTAP-NAS: I VMDK possono risiedere tutti su un singolo volume oppure ciascun VMDK può trovarsi su un volume individuale. La selezione delle VM può essere fatta a livello di datastore o a livello di singola VM.
-
ONTAP-NAS-Economy: I file VMDK devono risiedere su un singolo volume e il nome del volume deve rispettare la seguente convenzione di naming:
trident_qtree_pool_<storage-prefix>_<10 random characters>. La selezione delle VM all'interno di un gruppo di risorse avviene solo a livello di datastore.Per ONTAP-NAS-Economy, il volume con la convenzione di naming specificata sopra deve preesistere e deve essere utilizzato come datastore su VMware vCenter. Questo significa che la VM deve essere Storage vMotioned su questo specifico datastore, oppure un datastore esistente deve essere rinominato per corrispondere alla convenzione di naming: trident_qtree_pool_<storage-prefix>_<10 random characters>.Per ONTAP-NAS-Economy, la configurazione del backend Trident (TBC) dovrebbe avere il parametro Deny New Volume Poolsimpostato sutrue. Anche la storage class utilizzata dovrebbe limitare i storagePools atbc name: <aggr name where the trident_qtree_pool_<storage-prefix>_<10 random characters> resides>.Esempio di configurazione TBC per il driver ONTAP-NAS-Economy
apiVersion: v1 kind: Secret metadata: name: nas-eco-data-1172-secret namespace: trident type: Opaque stringData: username: <svm-admin-username> password: <svm-admin-password> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: nas-eco-data-1172 namespace: trident spec: backendName: nas-eco-data-1172 credentials: name: nas-eco-data-1172-secret dataLIF: "192.168.1.100" denyNewVolumePools: "False" managementLIF: "192.168.1.50" storageDriverName: ontap-nas-economy svm: data_1172 version: 1Il parametro denyNewVolumePoolsdeve essere impostato sutruesubito dopo chetrident_qtree_pool_<storage-prefix>_<10 random characters>viene creato come parte della creazione iniziale del PVC. Impostando questo valore sutruegarantisci che Trident utilizzi il pool qtree esistente per posizionare i PVC basati su qtree.Puoi patchare il TBC usando il seguente comando:
oc patch tbc nas-eco-data-1172 -n trident --type=merge -p '{"spec":{"denyNewVolumePools":"true"}}'Esempio di YAML per la storage class
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nas-eco-data-1172 annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: csi.trident.netapp.io parameters: backendType: ontap-nas-economy fsType: nfs storagePools: "nas-eco-data-1172:NSOL_NetApp_C800_T18U13_02_SSD_CAP_1" allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: Immediate -
ONTAP-SAN: I VMDK devono essere posizionati su volumi individuali (simulando la struttura VMDK su PVC/PV) utilizzando Storage vMotion. La selezione della VM avviene a livello di VM.
-
ONTAP-SAN-Economy: I file VMDK devono risiedere su un singolo volume NFSv3 e il nome del volume deve rispettare la seguente convenzione di naming:
trident_lun_. La selezione delle VM all'interno di un gruppo di risorse avviene solo a livello di datastore.Per ONTAP-SAN-Economy, il volume con la convenzione di naming trident_lun_deve preesistere e deve essere utilizzato come datastore su VMware vCenter. Questo significa che la VM deve essere Storage vMotioned su questo specifico datastore, oppure un datastore esistente deve essere rinominato per corrispondere alla convenzione di namingtrident_lun_.Esempio di configurazione TBC per ONTAP-SAN-Economy
apiVersion: v1 kind: Secret metadata: name: ontap-san800-eco-secret namespace: trident type: Opaque stringData: username: <svm-admin-username> password: <svm-admin-password> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: ontap-san800-eco namespace: trident spec: backendName: ontap-san800-eco aggregate: NSOL_NetApp_C800_T18U13_01_SSD_CAP_1 credentials: name: ontap-san800-eco-secret dataLIF: "192.168.1.110" defaults: protocol: iSCSI snapshotPolicy: none spaceAllocate: "true" spaceReserve: none tieringPolicy: none managementLIF: "192.168.1.60" storage: - labels: backend: san800-eco storageDriverName: ontap-san-economy svm: data_1172 version: 1Esempio di configurazione della classe di archiviazione per ONTAP-SAN-Economy
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sc-ontap-san-eco provisioner: csi.trident.netapp.io parameters: backendType: ontap-san-economy selector: "backend=san800-eco" allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: ImmediatePer ONTAP-SAN e ONTAP-SAN-Economy, le VM devono essere vMotioned da qualsiasi datastore basato su blocchi a volumi ONTAP NFSv3 prima di tutto. Shift Toolkit convertirà quindi i VMDK in LUN e li importerà come PVC nel rispettivo namespace.
La selezione delle macchine virtuali (VM) per i gruppi di risorse può essere effettuata a livello di VM o a livello di datastore. A seconda della selezione, il flusso di lavoro seleziona il driver di storage ONTAP NAS o SAN appropriato. Ad esempio, se viene selezionata una singola VM, viene utilizzato il driver ONTAP-NAS. Se più VMDK risiedono sullo stesso volume, viene utilizzato il driver ONTAP-NAS o ONTAP-NAS-Economy in base al volume di origine e alla relativa SVM, insieme al TBC e alla classe di storage configurati sul lato OpenShift.
-
Per le VM Windows: utilizzare le credenziali di amministratore locale
-
Per le VM Linux: utilizzare un utente con autorizzazioni per eseguire comandi sudo senza richiesta di password
-
Per le VM Windows: montare l'ISO VirtIO sulla VM (scaricare da"Qui" )
Lo script di preparazione utilizza il pacchetto .msi per installare i driver e qemu-guest-agents.
Passaggio 1: aggiungere il sito di destinazione (OpenShift)
Aggiungere l'ambiente di virtualizzazione OpenShift di destinazione a Shift Toolkit.
-
Fare clic su Aggiungi nuovo sito e selezionare Destinazione.
Mostra esempio
-
Inserisci i dettagli del sito di destinazione:
-
Nome del sito: Fornisci un nome per il sito
-
Hypervisor: Seleziona OpenShift
-
Posizione del sito: seleziona l'opzione predefinita
-
Connettore: seleziona la selezione predefinita
-
-
Fare clic su Continua.
Mostra esempio
-
Inserisci i dettagli di OpenShift:
-
Endpoint: FQDN dell'endpoint del cluster OpenShift (ad esempio, api.demomigsno.demoval.com)
-
Carica il file Kubeconfig: usa il file kubeconfig con autorizzazioni minime
L'estensione del file deve essere yaml.
Mostra esempio
-
-
Fare clic su Crea sito.
Mostra esempio
Il volume di origine e quello di destinazione saranno gli stessi poiché la conversione del formato del disco avviene a livello di volume all'interno dello stesso volume.
Passaggio 2: creare gruppi di risorse
Organizzare le VM in gruppi di risorse per preservare l'ordine di avvio e le configurazioni del ritardo di avvio.
Assicurarsi che i VMDK delle VM vengano spostati nei singoli volumi del datastore su un ONTAP SVM appena creato.
-
Vai a Gruppi di risorse e clicca su Crea nuovo gruppo di risorse.
-
Seleziona il sito di origine dal menu a discesa e fai clic su Crea.
-
Fornisci i dettagli del gruppo di risorse e seleziona il flusso di lavoro:
-
Migrazione basata su cloni: esegue la migrazione end-to-end dall'hypervisor di origine a quello di destinazione
-
Conversione basata su clonazione: converte il formato del disco nel tipo di hypervisor selezionato
-
-
Fare clic su Continua.
-
Selezionare le VM utilizzando l'opzione di ricerca.
La selezione delle VM per i gruppi di risorse si basa sulla macchina virtuale e non a livello di datastore. Mostra esempio
Mostra esempio
-
Aggiorna i dettagli della migrazione:
-
Seleziona Sito di destinazione
-
Seleziona Voce di destinazione OpenShift
-
Seleziona la classe di archiviazione
Mostra esempio
Se è presente un solo TBC, il backend Trident verrà mappato automaticamente al volume sorgente; tuttavia, se sono presenti più TBC, è possibile selezionare il backend.
-
-
Configurare l'ordine di avvio e il ritardo di avvio per tutte le VM selezionate:
-
1: Prima VM ad accendersi
-
3: Predefinito
-
5: Ultima VM ad accendersi
-
-
Fare clic su Crea gruppo di risorse.
Mostra esempio
Il gruppo di risorse è stato creato ed è pronto per la configurazione del blueprint.
Fase 3: creare un progetto di migrazione
Creare un progetto per definire il piano di migrazione, inclusi i mapping della piattaforma, la configurazione di rete e le impostazioni della VM.
-
Vai su Progetti e clicca su Crea nuovo progetto.
-
Fornire un nome per il progetto e configurare i mapping degli host:
-
Selezionare Sito di origine e vCenter associato
-
Seleziona Sito di destinazione e la destinazione OpenShift associata
-
Configurare il cluster e la mappatura degli host
Mostra esempio
-
-
Selezionare i dettagli del gruppo di risorse e fare clic su Continua.
-
Imposta l'ordine di esecuzione per i gruppi di risorse se esistono più gruppi.
-
Configurare la mappatura di rete sulle reti logiche appropriate.
Le definizioni degli allegati di rete dovrebbero essere già predisposte all'interno del cluster OpenShift con le opzioni VLAN e trunk appropriate. Per la migrazione di prova, selezionare "Non configurare la rete" per evitare conflitti di rete nella produzione; assegnare manualmente le impostazioni di rete dopo la conversione. Mostra esempio
-
Esaminare le mappature delle classi di archiviazione e del backend (selezionate automaticamente in base alla selezione della VM).
Assicurarsi che i VMDK siano trasferiti in anticipo ai singoli volumi, in modo che la macchina virtuale possa essere creata e accesa dal PVC. -
In Dettagli VM, seleziona i dettagli di configurazione e fornisci le credenziali dell'account di servizio per ciascun tipo di sistema operativo:
-
Windows: utilizzare un utente con privilegi di amministratore locale (è possibile utilizzare anche le credenziali di dominio)
-
Linux: utilizzare un utente in grado di eseguire comandi sudo senza richiesta di password
Mostra esempio
La selezione della configurazione consente di selezionare il formato dell'immagine del disco, ignorare l'override prepareVM e scegliere se dividere il volume dal padre. Per impostazione predefinita, la clonazione divisa è disabilitata e il flusso di lavoro utilizza il formato RAW.
-
-
Configurare le impostazioni IP:
-
Non configurare: opzione predefinita
-
Mantieni IP: Mantieni gli stessi IP del sistema sorgente
-
DHCP: assegna DHCP alle VM di destinazione
Assicurarsi che le VM siano accese durante la fase prepareVM e che VMware Tools sia installato.
-
-
Configurare le impostazioni della VM:
-
Ridimensiona i parametri CPU/RAM (facoltativo)
-
Modificare l'ordine di avvio e il ritardo di avvio
-
Accensione: seleziona per accendere le VM dopo la migrazione (predefinito: ON)
-
Rimuovi strumenti VMware: Rimuovi VMware Tools dopo la conversione (predefinito: selezionato)
-
Firmware VM: BIOS > BIOS ed EFI > EFI (automatico)
-
Conserva MAC: conserva gli indirizzi MAC per i requisiti di licenza
Se è necessario mantenere il nome dell'interfaccia mantenendo l'indirizzo MAC, assicurarsi che vengano create le regole udev appropriate sulla VM di origine. -
Sostituzione dell'account di servizio: specificare un account di servizio separato, se necessario
-
-
Fare clic su Continua.
-
(Facoltativo) Pianifica la migrazione selezionando una data e un'ora.
Pianificare le migrazioni con almeno 30 minuti di anticipo per consentire la preparazione della VM. -
Fare clic su Crea progetto.
Shift Toolkit avvia un processo prepareVM che esegue script sulle VM di origine per prepararle alla migrazione.
Mostra esempio
Il processo di preparazione:
-
Inietta script per aggiornare i driver VirtIO, installare qemu-agent, rimuovere gli strumenti VMware, eseguire il backup dei dettagli IP e aggiornare fstab
-
Utilizza PowerCLI per connettersi alle VM guest (Linux o Windows) e aggiornare i driver VirtIO
-
Per le VM Windows: memorizza gli script in
C:\NetApp -
Per le VM Linux: memorizza gli script in
/NetAppE/opt
|
|
Per tutti i sistemi operativi VM supportati, Shift Toolkit installa automaticamente i driver VirtIO necessari prima della conversione del disco per garantire un avvio corretto dopo la conversione. |
Una volta completato correttamente prepareVM, lo stato del progetto viene aggiornato in "PrepareVM completato". La migrazione verrà ora eseguita all'ora programmata oppure potrà essere avviata manualmente facendo clic sull'opzione Migra.
Mostra esempio
Mostra esempio
Passaggio 4: eseguire la migrazione
Avvia il flusso di lavoro di migrazione per convertire le VM da VMware ESXi a OpenShift Virtualization.
Tutte le VM vengono spente correttamente in base al programma di manutenzione pianificato.
-
Nel progetto, fare clic su Migra.
Mostra esempio
-
Shift Toolkit esegue i seguenti passaggi:
-
Elimina gli snapshot esistenti per tutte le VM nel blueprint
-
Attiva gli snapshot della VM all'origine
-
Attiva l'istantanea del volume prima della conversione del disco
-
Clona i singoli volumi
-
Converte VMDK in formato RAW per ogni VMDK
Shift Toolkit trova automaticamente tutti i VMDK associati a ciascuna VM, incluso il disco di avvio primario.
-
|
|
Se sono presenti più file VMDK, ciascun VMDK verrà convertito e inserito in un proprio PVC in base al driver di storage utilizzato. |
-
Pulisce i volumi per avere solo il file disk.img
Una volta convertita l'immagine del disco della macchina virtuale in formato RAW, Shift Toolkit pulisce i volumi, rinomina il file raw in disk.img e assegna le autorizzazioni necessarie.
-
Importa i volumi come PVC utilizzando l'importazione Trident
I volumi vengono quindi importati come PVC utilizzando le API NetApp Trident .
-
Crea VM utilizzando file yaml specifici per VM
Una volta importati i PVC e posizionati i PV, Shift Toolkit utilizza OC CLI per creare ogni VM in base al sistema operativo utilizzando file yaml.
|
|
Le VM vengono create con lo spazio dei nomi "Default". |
-
Accende le VM sulla destinazione
A seconda del sistema operativo della VM, Shift Toolkit assegna automaticamente l'opzione di avvio della VM insieme alle interfacce del controller di archiviazione. Per le distribuzioni Linux viene utilizzato VirtIO o VirtIO SCSI. Per Windows, la VM si accende con l'interfaccia SATA, quindi lo script pianificato installa automaticamente i driver VirtIO e modifica l'interfaccia in VirtIO.
-
Registra le reti su ogni VM
Le reti vengono assegnate in base alla selezione del progetto.
-
Rimuove gli strumenti VMware e assegna indirizzi IP utilizzando cron job
Mostra esempio
|
|
L'opzione di verifica può essere esercitata sul blueprint una volta completato il lavoro. Per ulteriori informazioni, fai riferimento a Verifica la migrazione. |
Usa Migration Toolkit per la virtualizzazione con Shift Toolkit (approccio tramite script)
Questa sezione descrive come utilizzare Migration Toolkit for Virtualization (MTV) con NetApp Shift Toolkit per una migrazione senza problemi a Red Hat OpenShift Virtualization.
Assicurarsi che siano soddisfatti i seguenti prerequisiti:
-
Cluster OpenShift con operatore OpenShift Virtualization e driver NetApp Trident CSI installati
-
MTV 2.9.4 (che include la modalità di conversione)
-
"Kit di strumenti per il cambio"installato
Poiché viene utilizzata solo l'API di Shift Toolkit, non è necessario configurare gruppi di risorse o progetti di Shift Toolkit. -
Privilegi di livello amministratore sul cluster OpenShift
-
Un'istanza Linux con lo strumento da riga di comando OC installato
-
Kubeconfig esportato o accesso OC eseguito per connettersi al cluster
-
Scarica lo script denominato "Shift-VM-to-OpenShift-MTV" dall'interfaccia utente di Shift Toolkit (Impostazioni > Accesso sviluppatore > Blocco script)
-
Decomprimi il file:
unzip Shift-VM-to-OpenShift-MTV.zip -
Assicurati che Python3 sia installato:
dnf install python3 -
Installa OpenJDK 8 o versione successiva:
yum install java-1.8.0-openjdk -
Requisiti di installazione:
pip install -r requirements.txt
-
-
Requisiti della macchina virtuale per MTV: i VMDK possono essere organizzati in diversi modi: possono essere tutti inseriti in un singolo volume (evitando la necessità di Storage vMotion), assegnati singolarmente a volumi separati o raggruppati all'interno di un qtree in un volume NFS. Lo script rileva automaticamente la struttura e seleziona il metodo di clonazione e i driver di storage NAS appropriati in base all'UUID TBC.
-
Crea piani di migrazione utilizzando MTV.
Per sfruttare la rapida conversione VMDK, creare un piano di migrazione per le VM e assicurarsi che i seguenti parametri siano presenti nel file YAML:
-
targetNamespace: default -
type: conversion -
storage: {}Il piano deve essere creato in anticipo per garantire che le impostazioni IP di conservazione siano configurate da MTV.
-
-
Mappare le VM da vCenter e i volumi sullo storage ONTAP .
Utilizzare lo script per creare i PVC necessari e importarli nel cluster OpenShift. I PVC devono avere le seguenti etichette e annotazioni:
Etichette:
-
vmID e vmUUID nel PVC (Forklift cerca questi valori)
Annotazione:
-
Il nome del disco vmdk per
forklift.konveyor.io/disk-sourceLo script assicura che questi attributi siano impostati per ogni PVC e aggiorna i permessi disk.img:
-
"owner": { "id": 107 } -
"group": { "id": 107 } -
"mode": "0655"
-
-
Aggiorna il file JSON con i seguenti dettagli:
-
* Cluster ONTAP *: può essere un SVM; è possibile utilizzare vsadmin. Imposta splitclone su "False" se il volume clone non necessita di distacco immediato
-
vCenter: diritti RBAC minimi per individuare le VM e i file VMDK associati
-
* Classe di archiviazione Trident *: dovrebbe essere il backend NFS con la versione corretta in yaml
-
OpenShift: specifica il nome del progetto (come esempio viene utilizzato il nome predefinito)
Mantenere i restanti valori come predefiniti.
-
-
Una volta soddisfatti i prerequisiti, eseguire
python3 main.pyper creare PVC e importarli nell'OpenShift Cluster. -
Una volta importati i PVC, avviare la migrazione tramite MTV per creare la VM con le specifiche appropriate.
Mostra esempio
Mostra esempio
-
Convertire VMDK con MTV.
Lo script trova automaticamente tutti i VMDK associati a ciascuna VM, incluso il disco di avvio primario.
Se sono presenti più file VMDK, ogni VMDK verrà convertito. -
Carica l'immagine RAW su OpenShift Virtualization.
Lo script utilizza Trident CSI per importare i volumi come PVC nel cluster. Il file PVC yaml è popolato con etichette e annotazioni.
-
Crea una macchina virtuale con MTV.
Dopo l'importazione, chiamare il piano MTV per avviare la migrazione. L'interfaccia utente viene visualizzata come "fredda", ma in base alle specifiche yaml di conversione, MTV verifica ogni PVC e vmID/vmUUID, li mappa e inizializza la migrazione.
Mostra esempio
Le VM vengono create nel progetto "Default" per le macchine virtuali, ma questo può essere modificato nel file YAML del piano di migrazione MTV. -
Avviare la VM per la prima volta con MTV.
A seconda del sistema operativo della VM, MTV assegna automaticamente l'opzione di avvio della VM insieme alle interfacce del controller di archiviazione.
Mostra esempio
Migrazione completata in 6 minuti per una VM con disco dati da 1,5 TB (suddiviso su 3 PVC). Ciò dimostra un approccio semplificato e a basso impatto per il re-homing delle VM tramite storage ONTAP .
Lo script può essere eseguito utilizzando un file di configurazione o specificando parametri. Un esempio di esecuzione dello script utilizzando parametri è mostrato di seguito:
Lo script supporta anche la clonazione tra SVM, permettendoti di creare PVC tra diverse SVM in base ai parametri di input forniti. python3 main.py --mode params --ontap-server 10.192.102.56 --ontap-username admin --ontap-password 'correct password' --ontap-source-vserver manila --ontap-target-vserver manila --ontap-data-lif 10.63.172.249 --ontap-skip-ssl --vcenter-server 10.63.172.125 --vcenter-username administrator@demoenv.com --vcenter-password 'correct password' --vcenter-skip-ssl --shift-server 10.61.187.117 --shift-username admin --shift-password 'correct password' --trident-backend-name tbc-ontap-manila-nimo --trident-backend-uuid 778245f4-1f50-453c-b81c-3dd82e166bbc --trident-storage-class nimmanila --mtv-project openshift-mtv --mtv-plan casetst --ocp-server https://api.demomigsno.demoval.com:6443 --ocp-token sha256~co89ATebn-ktVyrMbNJUGByVWph_kjLamYtIOPmqfQM --ocp-project default --import-volume --execution-mode clone_shrink --snapshot-prefix ""Al termine della migrazione, è necessario scollegare il volume clone. Il metodo da utilizzare dipende dalla versione di ONTAP: usa clone split per ONTAP 9.17.1 e versioni successive, oppure vol move per le versioni precedenti. Uno script per avviare il processo di scollegamento è disponibile nella cartella "Post migrate" all'interno del pacchetto ZIP fornito.
Dimostrazione video
Il seguente video illustra il processo descritto in questa soluzione.