Iscriviti al feed

Molte aziende e organizzazioni stanno passando dalle tradizionali piattaforme di virtualizzazione alle soluzioni di cloud ibrido. Di recente un gruppo di ingegneri Red Hat ha intrapreso questo percorso eseguendo una migrazione su larga scala da Red Hat VirtualizationRed Hat OpenShift, utilizzando Migration Toolkit for Virtualization, uno strumento avanzato per la migrazione di carichi di lavoro su OpenShift.

Il nostro ambiente Red Hat Virtualization ha eseguito correttamente centinaia di macchine virtuali (VM) per oltre un decennio, alcune utilizzate dagli ingegneri per scopi di sviluppo e test e altre per i carichi di lavoro di produzione. Tuttavia, con l'avvicinarsi della fine del ciclo di vita di Red Hat Virtualization, abbiamo deciso che era giunto il momento di eseguire la migrazione delle nostre VM a OpenShift.

Considerando la natura delle VM in esecuzione in Red Hat Virtualization e il nostro desiderio di ridurre al minimo le interruzioni per gli utenti finali, abbiamo deciso di continuare a eseguire i carichi di lavoro all'interno delle VM su OpenShift utilizzando OpenShift Virtualization. A tal fine, la migrazione è stata eseguita con Migration Toolkit for Virtualization 2.4, che in quel momento era la versione più avanzata con funzionalità di migrazione ottimizzate.

Il nostro percorso da Red Hat Virtualization a OpenShift ha evidenziato alcune problematiche, sia per noi che per gli utenti. Questo articolo spiega come le abbiamo affrontate e offre altri spunti dalla nostra esperienza.

Preparazione e pianificazione

Una pianificazione accurata è stata essenziale per il successo dell'operazione. Quando abbiamo iniziato a pianificare la migrazione, ci siamo resi conto di avere diverse difficoltà.

Innanzitutto, dovevamo assicurarci che il cluster OpenShift di destinazione disponesse di risorse sufficienti per far fronte ai carichi di lavoro trasferiti. Abbiamo individuato le macchine virtuali che non erano state utilizzate di recente in Red Hat Virtualization e quelle per cui i proprietari avevano chiesto di non eseguire la migrazione al nuovo ambiente OpenShift. Queste VM non sono state incluse nella migrazione. Ci siamo quindi assicurati di disporre di spazio di storage sufficiente in OpenShift per i dischi delle VM per cui avevamo pianificato la migrazione. Inoltre, ci siamo accertati che ci fossero abbastanza indirizzi IP da assegnare alle VM che avevamo in programma di trasferire nella VLAN di destinazione in OpenShift.

In secondo luogo, ci siamo resi conto della necessità di creare un ponte tra il modello di provisioning utilizzato in Red Hat Virtualization e quello dell'ambiente OpenShift Virtualization. In Red Hat Virtualization, le nuove VM venivano assegnate agli utenti dagli amministratori. Al contrario, in OpenShift Virtualization gli utenti vengono associati ai progetti dagli amministratori e possono creare personalmente macchine virtuali nei loro progetti.

In terzo luogo, in Migration Toolkit for Virtualization, i provider sorgente e di destinazione vengono impostati con le credenziali dell'utente. In questo modo, gli utenti definiscono un provider sorgente per cui dispongono delle autorizzazioni da cui eseguire la migrazione delle VM e un provider di destinazione su cui creare le VM per conto proprio. Nel nostro caso abbiamo preferito eseguire la migrazione di tutte le VM contemporaneamente piuttosto che chiedere a ciascun utente di eseguire la migrazione delle proprie. Pertanto, abbiamo dovuto operare con utenti che disponevano di privilegi di amministratore su entrambe le piattaforme, consentendo loro di accedere a tutte le VM in Red Hat Virtualization e di creare VM in tutti i progetti in OpenShift.

Abbiamo scoperto che il recupero delle VM utilizzate di recente, nel nostro caso nell'ultimo anno, e le dimensioni dei loro dischi per stabilire se il cluster OpenShift di destinazione disponeva di una capacità di storage sufficiente non era un'attività banale. Inoltre, convincere i proprietari delle VM di Red Hat Virtualization a creare i progetti corrispondenti in OpenShift per collegare i diversi modelli di provisioning ha richiesto un impegno aggiuntivo. Abbiamo affrontato queste sfide implementando gli script Python.

Il primo gruppo di script ha raccolto i dati da Red Hat Virtualization utilizzando oVirt SDK. Sulla base di questi dati, abbiamo identificato l'ultimo utilizzo delle VM e abbiamo filtrato quelle che non erano state utilizzate nell'ultimo anno. Una volta ottenuto l'elenco definitivo delle VM per cui eseguire la migrazione, abbiamo raccolto informazioni sulle dimensioni dei loro dischi e sui relativi proprietari. I dati ottenuti da Red Hat Virtualization ci hanno mostrato che lo spazio di storage nel cluster OpenShift non era sufficiente per archiviare i dati delle VM trasferite. Per risolvere questo problema, abbiamo aumentato lo storage nel cluster OpenShift aggiungendo una nuova classe di storage.

Un secondo gruppo di script è stato utilizzato per preparare i progetti nel cluster OpenShift utilizzando l'API Kubernetes. Utilizzando i dati ottenuti dal primo set di script, abbiamo identificato il set di proprietari di ciascuna delle VM trasferite. Per ognuno di questi set abbiamo quindi creato un progetto nel cluster OpenShift e l'abbiamo assegnato ai proprietari concedendo loro il ClusterRole con autorizzazioni di amministratore.

Prendiamo come esempio una VM chiamata shared_vm che appartiene a due utenti Red Hat Virtualization, Alice e Bob. In OpenShift, creiamo un progetto denominato alice-bob-ns, per il quale entrambi dispongono delle autorizzazioni. Eseguiamo quindi la migrazione della VM, shared_vm, al progetto alice_bob_ns. Anche altre VM di proprietà di Alice e Bob in Red Hat Virtualization possono essere trasferite allo stesso progetto, alice_bob_ns. Alice e Bob possono essere assegnati ad altri progetti con VM di Red Hat Virtualization di proprietà esclusiva o con altri utenti. Questo approccio ci consente di affrontare i diversi modelli di provisioning negli ambienti Red Hat Virtualization e OpenShift.

Una volta risolto il problema, siamo passati alla migrazione delle macchine virtuali.

Esecuzione

La migrazione prevedeva diversi passaggi:

  1. Deployment di Migration Toolkit for Virtualization nel cluster OpenShift verso cui è stata eseguita la migrazione. Questo strumento consente di eseguire la migrazione delle VM al cluster OpenShift su cui viene eseguito o ai cluster OpenShift remoti aggiunti come provider di destinazione. Nel nostro caso, tutte le VM sono state trasferite su un singolo cluster OpenShift, quindi abbiamo installato l'operatore Migration Toolkit for Virtualization su quel cluster.
  2. Nella web console di OpenShift, abbiamo utilizzato un utente amministratore per configurare il cluster OpenShift per la migrazione provvedendo a:
    1. Creare un progetto di gestione designato per la migrazione.
    2. Creare un provider sorgente di Red Hat Virtualization, il cluster OpenShift locale come provider di destinazione e i mapper di storage e rete nel progetto di gestione.
  3. A causa dell'elevato numero di piani di migrazione necessari per il trasferimento ai progetti di destinazione, ne abbiamo automatizzato la creazione e l'esecuzione utilizzando gli script che abbiamo implementato e che venivano eseguiti con privilegi di amministratore. Questi script eseguivano le seguenti azioni:
    1. Creazione di un piano di migrazione a freddo per progetto di destinazione. Abbiamo scelto la modalità a freddo perché non eravamo preoccupati per il tempo di fermo delle VM e perché questo tipo di migrazione è in genere più veloce di quelle a caldo.
    2. Creazione di un piano migrazione per migrazione per attivare i piani di migrazione.

La maggior parte dei piani di migrazione delle VM è stata completata correttamente, ma abbiamo dovuto risolvere due difficoltà interessanti.

In primo luogo, mentre aspettavamo il completamento della prima migrazione della VM, abbiamo notato che ci voleva più tempo del previsto. Ciò era dovuto all'esecuzione simultanea di un numero elevato di piani di migrazione.

In Migration Toolkit for Virtualization è possibile limitare il numero di migrazioni di VM eseguite in parallelo all'interno dello stesso piano di migrazione, ma non si può fare altrettanto nel caso in cui i piani siano diversi. Pertanto, eseguendo più piani di migrazione contemporaneamente, abbiamo esaurito la larghezza di banda della rete, rallentando le migrazioni delle VM.

Nel nostro caso, il tempo necessario per eseguire la migrazione di tutti i piani era più importante del tempo di fermo di ciascuna VM trasferita e il tempo complessivo della migrazione non è stato influenzato da questa scelta. Tuttavia, quando il tempo complessivo è influenzato dall'esaurimento della larghezza di banda della rete (che può verificarsi quando le migrazioni delle VM vanno in timeout o se è necessario ridurre al minimo il tempo di fermo di ciascuna VM) è consigliabile implementare i piani di migrazione in modo graduale o eseguire migrazioni a caldo.

In secondo luogo, 3 migrazioni di VM su 120 non sono riuscite. Dalla nostra indagine su questi errori è emerso che non sono riuscite a causa di un bug nella nostra code base. Siamo riusciti a correggere il bug rapidamente e con una versione corretta di Migration Toolkit for Virtualization abbiamo portato a termine la migrazione di tutte le VM. La correzione per questo problema è inclusa in Migration Toolkit for Virtualization 2.5.

Con queste modifiche, abbiamo eseguito correttamente la migrazione di tutte le VM a OpenShift.

Convalida delle VM su OpenShift

Una volta completate tutte le migrazioni con Migration Toolkit for Virtualization, abbiamo eseguito controlli di integrità su diverse VM selezionate casualmente su OpenShift Virtualization e ogni VM selezionata ha superato la prova. Abbiamo quindi aspettato altri feedback da parte dei proprietari delle VM. Nel complesso, abbiamo ricevuto feedback positivi dagli utenti in merito alle loro VM trasferite in OpenShift Virtualization, ma sono stati segnalati alcuni problemi.

Uno di essi riguardava il mancato avvio di alcune VM, che mostravano il messaggio "nessun sistema operativo trovato". Indagando, abbiamo scoperto che ciò era accaduto solo per le macchine virtuali con più dischi e solo quando era stato scelto un disco errato per l'avvio. Abbiamo risolto questo problema modificando manualmente l'ordine di avvio delle VM, assicurandoci che si avviassero dal disco corretto. Questo problema è stato corretto in Migration Toolkit for Virtualization 2.5.

Inoltre, sono state segnalate alcune interruzioni del servizio. Durante la migrazione, le VM hanno cambiato la VLAN a causa di vincoli infrastrutturali e alcuni carichi di lavoro e servizi all'interno delle VM erano inaccessibili all'avvio. Ciò era dovuto alla presenza di record DNS configurati con nomi di dominio completi e indirizzi IP diversi nella nuova VLAN. Questo problema è stato risolto chiedendo agli utenti di adattare i carichi di lavoro e i client esterni alle nuove impostazioni di nomi di dominio completi.

Lezioni apprese

La transizione dai data center tradizionali alle soluzioni di cloud ibrido è complessa. Sono disponibili diversi approcci, supportati da diversi strumenti, tra cui gli utenti possono scegliere. In questo articolo abbiamo descritto una migrazione di VM da Red Hat Virtualization a OpenShift eseguita internamente in Red Hat.

Questa migrazione ha richiesto una pianificazione attenta e completa e una comunicazione chiara con tutte le parti interessate dell'organizzazione. Sebbene Migration Toolkit for Virtualization fornisca gli strumenti per facilitare le migrazioni a OpenShift Virtualization, non sempre copre tutti i passaggi tecnici necessari.

In questo articolo abbiamo spiegato come abbiamo utilizzato Migration Toolkit for Virtualization insieme agli script che abbiamo implementato per le operazioni non gestite da questo strumento. Questi script sono disponibili su GitHub. Con questi strumenti, siamo riusciti a trasferire in modo efficace 120 VM con 12 TB di dati, che ora vengono eseguite correttamente su OpenShift.

Con l'avvicinarsi della fine del ciclo di vita di Red Hat Virtualization, ci aspettiamo che molte organizzazioni prendano in considerazione una migrazione simile. Ci auguriamo che la nostra esperienza e i nostri strumenti ti aiutino a eseguire la migrazione delle VM a OpenShift utilizzando Migration Toolkit for Virtualization, che include correzioni per i problemi menzionati in questo articolo e offre molti altri miglioramenti.


Sugli autori

Joined Red Hat in 2020, initially as an engineer in the storage virtualization team. Later transitioned to work on diverse proof-of-concept and research projects centered around OpenShift as a virtualization platform and its orchestration. Currently part of the MTV team, dedicated to developing new features and capabilities, and implementing migrations from traditional virtualization platforms to OpenShift virtualization.

Read full bio

Arik is a hands-on engineering manager that leads the Migration Toolkit for Virtualization team. During his time at Red Hat since joining in 2012, Arik primarily contributed to Red Hat Virtualization, OpenShift Virtualization and other OpenShift projects as an individual contributor, prior to managing Red Hat Virtualization engineering teams.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Ricerca per canale

automation icon

Automazione

Novità sull'automazione IT di tecnologie, team e ambienti

AI icon

Intelligenza artificiale

Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque

open hybrid cloud icon

Hybrid cloud open source

Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido

security icon

Sicurezza

Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti

edge icon

Edge computing

Aggiornamenti sulle piattaforme che semplificano l'operatività edge

Infrastructure icon

Infrastruttura

Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale

application development icon

Applicazioni

Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili

Original series icon

Serie originali

Raccontiamo le interessanti storie di leader e creatori di tecnologie pensate per le aziende