Skip to main content
NetApp virtualization solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Distribuisci manualmente l'operatore Shift (modalità standard)

Collaboratori netapp-jsnyder

Distribuisci manualmente il toolkit NetApp Shift come servizio containerizzato con NetApp Trident CSI e Migration Toolkit for Virtualization (MTV). Questo processo consente il provisioning dello storage automatizzato e la migrazione dei dischi delle macchine virtuali, sfruttando annotazioni ed etichette per instradare correttamente le richieste tra i componenti.

Componenti architetturali

Scopri come il toolkit NetApp Shift, Trident CSI e Migration Toolkit for Virtualization lavorano insieme per abilitare il provisioning dello storage automatizzato e la migrazione dei dischi delle VM nel tuo ambiente OpenShift.

Diagramma dell'architettura dell'operatore shift

NetApp Shift toolkit

  • Distribuito come servizio containerizzato tramite un image registry

  • Espone un endpoint che rimane in ascolto delle richieste Persistent Volume Claim (PVC) provenienti da MTV con un'annotazione specifica

  • Responsabile dell'elaborazione delle attività di migrazione del disco delle macchine virtuali, comprese le conversioni di formato

NetApp Trident CSI (versione 26.06 o successiva)

  • Agisce come provisioner della Container Storage Interface (CSI)

  • Riceve le richieste di importazione PVC dal toolkit Shift

  • Applica una logica basata su annotazioni e etichette PVC per determinare se elaborare la richiesta direttamente o reindirizzarla a Shift

Migration Toolkit for Virtualization (MTV 2.12 o versioni successive)

  • Orchestra i piani di migrazione delle macchine virtuali

  • Emette richieste PVC necessarie per il provisioning dello storage durante la migrazione delle VM

  • Aggiunge annotazioni per guidare l'elaborazione successiva

Prima di iniziare

Verifica che nel tuo ambiente OpenShift siano installati e configurati tutti i componenti necessari prima di distribuire l'operatore Shift.

  • Migration Toolkit for Virtualization Operator è in esecuzione nella versione 2.12 o successiva

  • Trident viene installato tramite OpenShift OperatorHub - "Guida all'installazione di Trident"

  • NetApp Shift viene distribuito come un container con l'endpoint Shift accessibile a NetApp Trident

  • Viene creata e annotata una Storage Class specifica per l'utilizzo con Shift toolkit

  • Le annotazioni identificano Shift toolkit come gestore previsto e specificano il backend Trident di destinazione

  • MTV include la seguente annotazione sui PVC: forklift.konveyor.io/netapp-shift: "true"

Passaggio 1: Scarica ed estrai il programma di installazione di Shift

Il pacchetto di installazione di Shift contiene tutto il necessario per distribuire l'operatore Shift e installare Shift.

Nota Se il cluster non ha accesso a quay.io, salta questo passaggio e segui la Installazione offline (cluster air-gapped) procedura alternativa. Torna al passaggio 2 una volta completata l'importazione dell'immagine offline.
Passi
  1. Scarica l'ultima versione del programma di installazione di Shift da "Toolchest del sito di supporto NetApp".

    Pagina di download del programma di installazione di Shift
  2. Estrai il pacchetto di installazione:

    tar -xf Shift-installer-1.0.0.tar.gz
  3. Passa alla directory dell'installer:

    cd shift-installer

Passaggio 2: Crea lo spazio dei nomi Shift e le credenziali API

Configura uno spazio dei nomi dedicato per l'operatore Shift e crea le credenziali necessarie per l'accesso sicuro all'API.

Passi
  1. Crea lo spazio dei nomi Shift:

    oc create ns shift
  2. Crea il segreto per l'accesso all'API di Shift all'interno dello spazio dei nomi di Shift. Sostituisci i valori di esempio con un nome utente univoco e una password complessa per il tuo ambiente:

    oc create secret generic shift-credentials -n shift \
      --from-literal=username='admin' \
      --from-literal=password='admin'
Nota Sostituisci la password con un valore a tua scelta.

Passaggio 3: Crea il certificato TLS ConfigMaps

Crea i ConfigMaps che forniscono il certificato TLS e la chiave privata che il servizio Shift utilizza per gestire il traffico HTTPS.

Il certificato deve essere emesso con il CN/SAN impostato su shift-toolkit-service.shift.svc.cluster.local. I file del certificato e della chiave devono essere denominati server.cert e server.key, rispettivamente.

Passi
  1. Crea il ConfigMap per il certificato TLS:

    oc create configmap shift-toolkit-service-server-crt -n shift \
      --from-file=server.cert=server.cert
  2. Crea la ConfigMap per la chiave privata TLS:

    oc create configmap shift-toolkit-service-server-key -n shift \
      --from-file=server.key=server.key
Nota Se non usi HTTPS, imposta INSECURE_TLS=true in bundle.yaml. I ConfigMaps richiesti devono comunque essere creati come descritto sopra, anche quando HTTPS è disabilitato e i certificati TLS non vengono utilizzati attivamente.

Passaggio 4: Crea il CA bundle ConfigMap

Crea la ConfigMap che fornisce il bundle CA che il listener PVC utilizza per verificare il certificato TLS del servizio Shift.

Passi
  1. Indica `--from-file`il `server.cert`file PEM.

    La chiave nel ConfigMap deve essere ca.crt. Con questo ConfigMap in posizione, il listener viene eseguito con INSECURE_TLS=false e verifica il certificato Shift rispetto a questo bundle utilizzando SHIFT_CA_CERT_FILE.

  2. Crea il ConfigMap per il pacchetto CA:

    oc create configmap shift-toolkit-service-ca -n shift \
      --from-file=ca.crt=ca.cert

Passaggio 5: Crea richieste di volume persistenti

Crea i PVC necessari per il filedb (database) di Shift e per i log prima di distribuire il bundle.

Passi
  1. Prima di applicare le definizioni PVC, aggiorna deploy/filedb-pvc.yaml e deploy/logs-pvc.yaml per specificare l'opportuno storageClassName per il tuo cluster (ad esempio, ontap-storageclass).

    Nota Questi PVC devono essere creati e disponibili prima che il bundle venga distribuito nel passaggio 6: Distribuisci l'operatore Shift.
  2. Applica il manifest PVC di filedb:

    oc apply -f deploy/filedb-pvc.yaml
  3. Applica il manifest PVC dei log:

    oc apply -f deploy/logs-pvc.yaml

Passaggio 6: Distribuisci l'operatore Shift

Applica la configurazione dell'operatore Shift al tuo OpenShift cluster e verifica che i pod richiesti siano in esecuzione correttamente.

Passi
  1. Dalla directory shift-installer, esegui il comando deploy:

    oc apply -f deploy/shift-bundle.yaml
  2. Verifica l'installazione utilizzando lo stato di creazione del pod:

    oc get pods -n shift

    Esempio output:

    NAME                                     READY   STATUS    RESTARTS   AGE
    shift-68ccd597c-dtsj7                    1/1     Running   0          18s
    shift-pvc-listener-57d546f6b8-r9mgc      1/1     Running   0          18s
Nota Per annullare la distribuzione, esegui oc delete -f deploy/bundle.yaml --ignore-not-found. Questo comando rimuove le risorse distribuite da bundle.yaml preservando lo spazio dei nomi e il secret.

Passaggio 7: Configura la Storage Class per l'integrazione con Shift

Crea una nuova Storage Class o aggiorna una Storage Class esistente con le annotazioni necessarie per l'integrazione con Shift.

Informazioni su questa attività

La Storage Class deve includere le seguenti annotazioni:

  • shift.netapp.io/storage-class-type

  • shift.netapp.io/trident-backend-uuid

Passi
  1. Applica le annotazioni necessarie alla storage class:

    oc patch storageclass nimnas1172 \
      --type=merge \
      -p '{
        "metadata": {
          "annotations": {
            "shift.netapp.io/storage-class-type": "shift",
            "shift.netapp.io/trident-backend-uuid": "facc3aad-83bb-423a-b6a1-ba0fb8811217"
          }
        }
      }'

    Esempio output:

    storageclass.storage.k8s.io/nimnas1172 patched
    Nota L'UUID del backend puoi recuperarlo eseguendo oc get tbc -n trident
  2. Verifica le classi di storage esistenti:

    oc get sc

    Esempio output:

    nimnas1172 (default)   csi.trident.netapp.io   Delete          Immediate         true

Passaggio 8: Crea e avvia il piano MTV

Dopo aver completato la distribuzione dell'operatore Shift e la configurazione della storage class, puoi creare e avviare il piano MTV.

Piano di migrazione MTV

Per informazioni dettagliate sulla creazione del piano MTV, consulta il "Documentazione di Migration Toolkit for Virtualization".

La seguente screenshot mostra la sequenza di passaggi eseguiti quando viene avviato il piano di migrazione.

Fasi di esecuzione del piano di migrazione

La seguente screenshot mostra i PVC convertiti utilizzando il toolkit Shift e successivamente importati da NetApp Trident.

PVC importati da NetApp Trident
Piano di migrazione completato con successo

Piano di migrazione completato con successo — 5 macchine virtuali e circa 5 TB di dati migrati in circa 6 minuti.

Cosa c'è dopo

Al termine della migrazione, ogni volume clone deve essere scollegato. Il metodo di scollegamento dipende dalla versione di ONTAP: usa clone split per ONTAP 9.17.1 e versioni successive, oppure vol move per le versioni precedenti.

Sia clone split che vol move sono operazioni in background e non influiscono sui carichi di lavoro di produzione mentre sono in esecuzione. Uno script per avviare il processo di distacco è disponibile nel widget Post Migrate Detach all'interno del NetApp Console Automation Catalog.

Installazione offline (cluster air-gapped)

Questa sezione descrive un percorso di installazione alternativo per i cluster che non hanno accesso a quay.io. Se il tuo cluster può raggiungere quay.io, segui invece i passaggi da 1 a 8.

Per i cluster che non hanno accesso a quay.io, importa gli archivi tar delle immagini nel registro interno di OpenShift prima di distribuire il bundle.

Non è necessario alcun percorso di registro esterno. Sia le operazioni di push delle immagini che i riferimenti alle immagini del bundle utilizzano image-registry.openshift-image-registry.svc:5000, che è accessibile tramite la rete del cluster e protetto dalla CA del cluster.

Prima di iniziare
  • `oc`Accesso alla CLI con privilegi di cluster-admin

  • `skopeo`installato

  • File tarball delle immagini disponibili sull'host:

    • shift-toolkit-1.0.0-image.tar

    • shift-toolkit-listener-1.0.0-image.tar

Passi
  1. Abilita il registro interno (operazione da eseguire una sola volta; salta questo passaggio se è già configurato):

    oc patch configs.imageregistry.operator.openshift.io cluster \
      --type=merge -p '{"spec":{"defaultRoute":true}}'
    oc get route default-route -n openshift-image-registry
  2. Genera le credenziali di registro utilizzando la sessione oc attiva:

    Non utilizzare un raw service account token, perché potrebbe non funzionare durante il caricamento dei blob. Usa oc registry login per creare un file di autenticazione compatibile con il flusso di reindirizzamento del registry.

    REGISTRY=image-registry.openshift-image-registry.svc:5000
    oc registry login --skip-check \
      --registry=$REGISTRY \
      --to=/tmp/registry-auth.json
  3. Carica l'immagine del toolkit Shift nel registro interno:

    skopeo copy \
      docker-archive:shift-toolkit-1.0.0-image.tar \
      docker://$REGISTRY/shift/shift-toolkit:1.0.0 \
      --dest-tls-verify=false \
      --dest-authfile=/tmp/registry-auth.json
  4. Carica l'immagine del listener di Shift Toolkit nel registro interno:

    skopeo copy \
      docker-archive:shift-toolkit-listener-1.0.0-image.tar \
      docker://$REGISTRY/shift/shift-toolkit-listener:1.0.0 \
      --dest-tls-verify=false \
      --dest-authfile=/tmp/registry-auth.json
  5. Aggiorna i riferimenti alle immagini in deploy/bundle.yaml per utilizzare il registro interno:

    sed -i \
      -e "s|quay.io/netapp/shift-toolkit:1.0.0|$REGISTRY/shift/shift-toolkit:1.0.0|g" \
      -e "s|quay.io/netapp/shift-toolkit-listener:1.0.0|$REGISTRY/shift/shift-toolkit-listener:1.0.0|g" \
      -e "s|imagePullPolicy: Always|imagePullPolicy: IfNotPresent|g" \
      deploy/bundle.yaml
  6. Distribuisci il pacchetto:

    oc apply -f deploy/bundle.yaml