Creare un piano di migrazione

Per iniziare la migrazione delle VM, crea una migrazione. Questo genera un oggetto del piano di migrazione. In genere sono necessarie ulteriori revisioni e personalizzazioni del piano generato prima di eseguire la migrazione.

La migrazione è l'oggetto centrale con cui puoi eseguire azioni, monitorare lo stato e le attività di migrazione con migctl e la console Google Cloud. L'oggetto di migrazione viene implementato come definizione di risorse personalizzate (CRD) di Kubernetes ed è contenuto insieme a risorse aggiuntive, come un PersistentVolumeClaim Kubernetes, nel piano di migrazione.

Prima di iniziare

  • Aggiungi un'origine della migrazione.
  • Trova l'ID istanza della macchina virtuale (VM), come descritto nella sezione seguente.
  • Se utilizzi Compute Engine come origine della migrazione, arresta la VM di origine prima di creare una migrazione. Dopo aver creato l'oggetto di migrazione, puoi riavviare la VM.

Trovare l'ID VM

Puoi trovare l'ID VM esplorando l'inventario VM o cercandolo manualmente, a seconda del tipo di origine.

Trovare l'ID utilizzando l'inventario VM

  • Quando utilizzi migctl, puoi visualizzare un elenco di VM utilizzando il seguente comando:

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Quando utilizzi la console Google Cloud, vai al tipo di origine: troverai una tabella che elenca tutte le VM di quel tipo.

Trovare manualmente l'ID

Puoi trovare l'ID VM manualmente in base al tipo di origine:

Compute Engine

VMware

  • vmId: ID o nome della VM di cui eseguire la migrazione, così come è noto sulla piattaforma di origine. Puoi utilizzare uno dei seguenti valori.

    • Il nome della VM. Se hai la certezza che ogni nome di VM sia univoco nel deployment VMware, il nome semplice della VM funziona. Se è possibile che i nomi delle VM siano duplicati, utilizza l'ID VM come descritto di seguito.

      Puoi ottenere il nome della VM dal client web vSphere, come mostrato nell'immagine seguente.

    • L'ID VM di vSphere (chiamato anche MoRef). È visibile dall'URL del client web vSphere quando si seleziona la VM.

      MoRef è nell'URL di vSphere

      Puoi trovare anche il MoRef utilizzando PowerCLI.

Requisiti di denominazione

Puoi assegnare un nome a una migrazione quando la crei in Migrate to Containers. Il nome deve soddisfare i seguenti requisiti:

  • Contenere al massimo 63 caratteri.
  • Contenere solo caratteri alfanumerici minuscoli o "-" (trattino).
  • Deve iniziare con un carattere alfanumerico.
  • Deve terminare con un carattere alfanumerico.

Carichi di lavoro supportati

Crea una migrazione

Carichi di lavoro Linux e Windows

Crea una migrazione utilizzando lo strumento migctl o la console Google Cloud.

migctl

  1. Arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-src --vm-id my-id --type server-type

    Dove --vm-id specifica il nome dell'istanza VM come mostrato nella console del tipo di origine. Dove --type è --type=windows-iis-container o linux-system-container.

Console

  1. Se l'origine della migrazione è una VM di Compute Engine, arrestala. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Apri la pagina Migrate to Containers nella console Google Cloud.

    Vai alla pagina Migrate to Containers

  3. Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.

  4. Fai clic su Crea migrazione.

  5. Inserisci il Nome migrazione.

  6. Seleziona l'origine della migrazione che hai creato in Aggiunta di un'origine di migrazione.

  7. Imposta il Tipo di carico di lavoro su Contenitore di sistema basato su immagini o Contenitore di Windows IIS.

  8. Inserisci l'ID VM di origine. Consulta Prima di iniziare per saperne di più sulla determinazione dell'ID VM.

  9. Fai clic su Crea migrazione.

    Al termine della creazione della migrazione, nella colonna Stato viene visualizzato Piano di migrazione generato.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, il campo name in sourceProviderRef specifica il nome di un SourceProvider creato in precedenza, mentre il campo sourceId specifica il nome dell'istanza Compute Engine. Type sarà --type=windows-iis-container o linux-system-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: linux-system-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Carichi di lavoro Tomcat

Specifica i parametri Tomcat

Devi specificare manualmente i valori di CATALINA_BASE e CATALINA_HOME.

migctl

  1. Arresta la VM di Compute Engine. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-ce-src --vm-id my-id
    --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
    
    • --vm-id specifica il nome dell'istanza visualizzato nella console di servizio.
    • catalina-base specifica un elenco di valori CATALINA_BASE separati da due punti.
    • catalina-home specifica il valore di CATALINA_HOME.
    • java-version un parametro facoltativo che specifica la versione Java che verrà utilizzata dal contenitore.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, imposta i seguenti campi:

    • sourceProvider: specifica il nome di un SourceProvider creato in precedenza.
    • sourceId: specifica il nome dell'istanza VM di Compute Engine.
    • parameters: imposta parametri specifici per i carichi di lavoro Tomcat.

    Di seguito è riportato un esempio di file di migrazione con i seguenti valori dei campi impostati:

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: tomcat-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: catalina-base
           value: /opt/tomcat
         - name: catalina-home
           value: /opt/tomcat
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Carichi di lavoro tradizionali di WebSphere

Specifica WAS_HOME

La variabile di ambiente WAS_HOME specifica dove è installato WAS tradizionale, ad esempio /opt/IBM/WebSphere/AppServer/. Migrate to Containers utilizza questo valore quando crei una migrazione per eseguire script che recuperano informazioni su un'app e per determinare il percorso di un profilo di app. Se Migrate to Containers non riesce a individuare la cartella di installazione, puoi impostare il valore WAS_HOME.

migctl

  1. Arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-was-src --vm-id my-id
    --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/
    

    dove --vm-id specifica il nome dell'istanza come mostrato nella console di servizio.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, imposta i seguenti campi:

    • sourceProvider: specifica il nome di un SourceProvider creato in precedenza.
    • sourceId: specifica il nome dell'istanza VM di Compute Engine.
    • parameters: imposta parametri specifici per i carichi di lavoro WebSphere.

    Di seguito è riportato un esempio di file di migrazione con i seguenti valori dei campi impostati:

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: websphere-traditional-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: was_home
           value: /opt/IBM/WebSphere/AppServer/
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Carichi di lavoro JBoss

Crea una migrazione utilizzando lo strumento migctl o la console Google Cloud.

migctl

  1. Arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-src --vm-id my-id --type=jboss-container --parameters jboss-home=/opt/jboss

    Dove --vm-id specifica il nome dell'istanza VM come mostrato nella console del tipo di origine.

Console

  1. Se l'origine della migrazione è una VM di Compute Engine, arresta la VM di Compute Engine. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Apri la pagina Migrate to Containers nella console Google Cloud.

    Vai alla pagina Migrate to Containers

  3. Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.

  4. Fai clic su Crea migrazione.

  5. Inserisci il Nome migrazione.

  6. Seleziona l'origine della migrazione che hai creato in Aggiunta di un'origine di migrazione.

  7. Imposta il Tipo di carico di lavoro su Contenitore JBoss.

  8. Inserisci il Nome istanza di origine. Vedi Prima di iniziare per saperne di più sulla determinazione del nome dell'istanza.

  9. Imposta il parametro JBOSS_HOME e utilizza il percorso di installazione di JBoss.

  10. Fai clic su Crea migrazione.

    Al termine della creazione della migrazione, nella colonna Stato viene visualizzato Piano di migrazione generato.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, il campo name in sourceProviderRef specifica il nome di un SourceProvider creato in precedenza, mentre il campo sourceId specifica il nome dell'istanza Compute Engine. Nel campo type, inserisci jboss-container. Puoi aggiungere un elenco di parametri di rilevamento in discoveryParameters. Ogni parametro discoveryParameters ha due proprietà: name e value. Quando crei una migrazione JBoss, è obbligatorio il parametro discoveryParameters denominato jboss-home, che specifica il percorso home di JBoss come value.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
      name: my-migration
      namespace: v2k-system
    spec:
      type: jboss-container2
      discoveryParameters:
      - name: jboss-home
        value: /path-to-jboss-home
      sourceSnapshotTemplate:
        spec:
          sourceProviderRef:
            name: my-ce-src
          sourceId: my-id
    
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Carichi di lavoro Apache

Crea una migrazione utilizzando lo strumento migctl o la console Google Cloud.

migctl

  1. Arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-src --vm-id my-id --type=apache-container

    Dove --vm-id specifica il nome dell'istanza VM come mostrato nella console del tipo di origine.

Console

  1. Se l'origine della migrazione è una VM di Compute Engine, arresta la VM di Compute Engine. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Apri la pagina Migrate to Containers nella console Google Cloud.

    Vai alla pagina Migrate to Containers

  3. Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.

  4. Fai clic su Crea migrazione.

  5. Inserisci il Nome migrazione.

  6. Seleziona l'origine della migrazione che hai creato in Aggiunta di un'origine di migrazione.

  7. Imposta il Tipo di carico di lavoro su Contenitore Apache.

  8. Inserisci l'ID VM di origine. Consulta Prima di iniziare per saperne di più sulla determinazione dell'ID VM.

  9. Fai clic su Crea migrazione.

    Al termine della creazione della migrazione, nella colonna Stato viene visualizzato Piano di migrazione generato.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, il campo name in sourceProviderRef specifica il nome di un SourceProvider creato in precedenza, mentre il campo sourceId specifica il nome dell'istanza Compute Engine. Nel campo type, inserisci apache-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: apache-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Carichi di lavoro WordPress

Crea una migrazione utilizzando lo strumento migctl o la console Google Cloud.

migctl

  1. Arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Crea la migrazione:

    migctl migration create my-migration --source my-src --vm-id my-id --type=wordpress-container

    Dove --vm-id specifica il nome dell'istanza VM come mostrato nella console del tipo di origine.

Console

  1. Se l'origine della migrazione è una VM di Compute Engine, arresta la VM di Compute Engine. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  2. Apri la pagina Migrate to Containers nella console Google Cloud.

    Vai alla pagina Migrate to Containers

  3. Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.

  4. Fai clic su Crea migrazione.

  5. Inserisci il Nome migrazione.

  6. Seleziona l'origine della migrazione che hai creato in Aggiunta di un'origine di migrazione.

  7. Imposta il Tipo di carico di lavoro su Contenitore WordPress.

  8. Inserisci l'ID VM di origine. Consulta Prima di iniziare per saperne di più sulla determinazione dell'ID VM.

  9. Fai clic su Crea migrazione.

    Al termine della creazione della migrazione, nella colonna Stato viene visualizzato Piano di migrazione generato.

CRD

  1. Per definire una migrazione, crea un file di migrazione denominato my-migration.yaml.

    In questo file, il campo name in sourceProviderRef specifica il nome di un SourceProvider creato in precedenza, mentre il campo sourceId specifica il nome dell'istanza Compute Engine. Nel campo type, inserisci wordpress-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: wordpress-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, arresta la VM. Per creare una migrazione, la VM deve essere arrestata. Al termine della migrazione, puoi riavviare la VM.

  3. Applica il file:

    kubectl apply -f my-migration.yaml

Monitora la creazione della migrazione

Utilizza lo strumento migctl o la console Google Cloud per monitorare l'avanzamento della creazione della migrazione.

migctl

  1. Attendi il termine della fase di creazione della migrazione:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Se stai eseguendo la migrazione di una VM di Compute Engine, riavviala. Dopo questo passaggio non è necessaria una VM arrestata.

Console

Quando lo stato della migrazione indica che è stata creata, puoi andare al passaggio successivo:

  1. Apri la pagina Migrate to Containers nella console Google Cloud.

    Vai alla pagina Migrate to Containers

  2. Fai clic sulla scheda Migrazioni per visualizzare una tabella contenente le migrazioni disponibili.

  3. Visualizza lo stato di una migrazione per:

    • Visualizzazione della colonna Stato per la riga relativa alla migrazione.

    • Fai clic sul nome della migrazione. Viene visualizzata la pagina Dettagli della migrazione. Fai clic sulla scheda Monitoring per visualizzare lo stato dettagliato o sulla scheda Eventi per visualizzare gli eventi di migrazione.

  4. Al termine della creazione della migrazione, lo Stato mostra Piano di migrazione generato.

  5. Se stai eseguendo la migrazione di una VM di Compute Engine, riavviala. Dopo questo passaggio non è necessaria una VM arrestata.

CRD

Utilizza kubectl per ottenere informazioni sulla migrazione e lo stato MigrationStatus specificando un JSONPath nel campo necessario.

  1. Attendi il termine della fase di creazione della migrazione:

    Utilizza due comandi kubectl wait, uno per attendere la condizione "Pronto" e l'altro per attendere la condizione "Non riuscito". La fase di creazione del piano di migrazione è in esecuzione finché non viene soddisfatta la prima condizione.

    unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]}
    kill ${pids[@]/$met_pid} # terminate the process that did not complete.
    

    Una volta completata l'operazione, puoi andare al passaggio successivo.

  2. Recuperare lo stato del piano di migrazione:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration

    Restituisce True quando il piano di migrazione è pronto o False se non è riuscito.

  3. Quando la fase di creazione della migrazione non va a buon fine, utilizza il comando seguente per visualizzare il messaggio di errore:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration

  4. Se stai eseguendo la migrazione di una VM di Compute Engine, riavviala. Dopo questo passaggio non è necessaria una VM arrestata.

Passaggi successivi