Che cos’è il tracciamento delle modifiche (CBT) di VMware e come funziona?
VMware mette a disposizione delle API per semplificare la protezione dei dati negli ambienti virtuali aziendali, con funzioni che consentono di eseguire backup senza agenti e migliorano l’efficienza dei backup incrementali delle VM. I backup incrementali consentono di risparmiare una notevole quantità di spazio di archiviazione rispetto ai backup completi
. Per quanto riguarda i moderni Soluzioni di backup di VMware, la maggior parte si affida alle API di VMware e utilizza la tecnologia Changed Block Tracking (CBT) per facilitare e velocizzare la creazione di backup incrementali delle VM. In questo post del blog spieghiamo Changed Block Tracking, illustrandone il principio di funzionamento e le applicazioni pratiche.
Che cos’è Changed Block Tracking?
Changed Block Tracking (CBT) è una funzionalità nativa di VMware che registra i blocchi modificati in un file di tracciamento. CBT fa parte del framework VMware vSphere Storage APIs – Data Protection lanciato per la prima volta nella versione 4.0, che consente alle applicazioni di protezione dei dati di terze parti di sfruttare CBT per eseguire backup e repliche in modo più efficiente.
CBT opera a livello di ESXi Storage Stack e permette alle soluzioni di backup di terze parti di eseguire il backup solo dei blocchi di dati modificati dall’ultimo backup, ovvero di creare backup incrementali, oppure dei blocchi in uso anziché dell’intera macchina virtuale. Ciò consente di ridurre drasticamente la quantità di dati da sottoporre a backup, specialmente in ambienti di grandi dimensioni con centinaia di VM, e di velocizzare il processo di backup.
VMware CBT riduce significativamente il tempo impiegato dal software di backup per eseguire i backup incrementali, poiché tiene traccia delle modifiche in uno speciale file di log. Le soluzioni di backup di terze parti causano un maggiore carico sulla CPU di un server ESXi se tracciano le modifiche senza CBT utilizzando altri metodi. Pertanto, CBT ottimizza anche le prestazioni di un server ESXi durante il backup dei dati.
CBT viene utilizzato anche dal processo VMware Storage vMotion che consente di spostare i file del disco di una VM da un archivio dati a un altro mentre questa è in esecuzione.
Come funziona VMware Changed Block Tracking
La funzione CBT funziona confrontando l’ultimo e l’attuale changeset IDs e individuando i settori del disco che sono stati modificati tra questi changeset IDs. VMware CBT identifica inoltre tutti i blocchi Virtual Machine File System (VMFS) in uso su un disco virtuale. Il tracciamento viene eseguito dall’hypervisor stesso e avviene al di fuori della VM.
CBT Requisiti
I requisiti per Changed Block Tracking includono:
- VMware vSphere (ESXi 4.0 o versioni successive)
- Hardware virtuale versione 7 o superiore
- Archivio dati locali {24} Archivio dati,
NFSoiSCSI - Provisioning a capacità fissa o variabile
- Nessun
RAW disk mappings.Raw Device Mapping (RDM)inPhysical Compatibility Modenon è supportato. - Una VM non deve avere snapshot per iniziare a utilizzare
VMware CBT
Come abilitare Changed Block Tracking
Per impostazione predefinita, CBT è disabilitato poiché consuma una piccola quantità di tempo della CPU dell’host. Tuttavia, per una soluzione di backup di terze parti come NAKIVO Backup & Replication, CBT deve essere abilitato per consentire al prodotto di eseguire backup incrementali veloci e affidabili.
CBT viene abilitato nelle impostazioni di configurazione avanzate di una VM:
- Apri le impostazioni della VM. È possibile farlo in
VMware vSphere Clientfacendo clic con il tasto destro del mouse su una VM e selezionandoEdit Settings. - Nella finestra
Edit settings, fare clic sulla schedaVM Options. - Fare clic sulla categoria di opzioni
Advancedper espandere le impostazioni e fare clic suEdit Configurationnella rigaConfiguration Parameters. Si apre la finestraConfiguration Parametersrelativa alla VM, che contiene diverse righe, ciascuna delle quali riporta il nome e il valore di un parametro. L’attivazione di CBTè determinata dalla seguente riga nella configurazione di.vmx:
ctkEnabled = "TRUE"
Inoltre, per ogni disco su cui è abilitato CBT , verrà inclusa una voce:
scsix:x.ctkEnabled = "TRUE"
Questi parametri devono essere impostati per abilitare Changed Block Tracking.
Nota : Per disabilitare CBT, modificare TRUE in FALSE nelle righe ctkEnabled e scsi0:0.ctkEnabled (utilizzare il numero appropriato del dispositivo SCSI ).
Quando CBT è abilitato su una VM, il VMkernel crea un file aggiuntivo denominato -ctk.vmdk nella directory della VM, utilizzato per memorizzare la mappatura dei blocchi del disco virtuale. Questo file è correlato al rispettivo disco .vmdk e contiene un elenco dei blocchi modificati in questo disco virtuale tra il momento specificato nell’ultimo changeset ID e lo stato attuale. La dimensione del file CTK che viene creato rimane invariata e non supera la dimensione originale a meno che non venga aumentata la dimensione del disco virtuale. La dimensione del file CTK è di circa 5 MB per ogni 10 GB di dimensione del disco della VM.
La maggior parte delle soluzioni di backup utilizza il metodo VMware SDK per abilitare a livello di programmazione CBT per una VM e utilizza un stun/unstun cycle, che include l’accensione o lo spegnimento, la sospensione/ripresa o la creazione/eliminazione di uno snapshot. Durante un stun/unstun cycle, viene inserito uno speciale filtro di tracciamento delle modifiche nel VMware storage stack per la VM specifica, il che consente a CBT di essere istanziato sulla VM.
Come verificare se CBT è abilitato
Nei casi in cui non si sia abilitato manualmente CBT , è possibile verificare se il software di backup ha abilitato CBT per eseguire il backup della VM. I passaggi per verificare le impostazioni di CBT sono simili a quelli per abilitare questa funzione. Tuttavia, in questa sede tratteremo un metodo leggermente diverso che utilizza un file di configurazione .vmx
Per verificare se CBT è abilitato per la VM, procedere come segue:
- Aprire
VMware vSphere Client. - Individuare la VM desiderata e assicurarsi che sia spenta.
- Accedere alla cartella della VM su un archivio dati.
- Individuare un file di configurazione della VM (.
vmx).
vmx file di configurazione dovrebbe contenere la voce ctkEnabled . Il valore della voce deve essere "TRUE". In caso contrario, modificare il valore in "TRUE" per abilitare CBT per la VM.Con l’opzione CBTabilitata, ogni disco virtuale è accompagnato da un file xxx-ctk.vmdk , dove "xxx" è il nome del disco virtuale. Se si notano questi file CTK , significa che la funzione CBT è attiva.
In alcuni casi, come lo spegnimento improprio dell’host o un’interruzione di corrente, CBT può perdere traccia delle modifiche mentre la VM è accesa. Ciò può causare il ripristino di CBT , il che significa che tutti i dati CBT raccolti in precedenza verranno cancellati e i nuovi dati inizieranno a essere raccolti dal momento del ripristino. Se si esegue un backup della VM dopo il ripristino di CBT , verrà effettuato un backup completo. Dopo aver eseguito un backup completo e aver rilevato le nuove modifiche, è possibile eseguire nuovamente i backup incrementali.
Utilizzo di VMware CBT in NAKIVO Backup & Replication
NAKIVO Backup & Replication è una soluzione universale per la protezione dei dati in grado di eseguire il backup, il ripristino e la replica delle VM in VMware vSphere. Per velocizzare il backup incrementale eseguito con la soluzione NAKIVO, CBT è abilitato per impostazione predefinita in qualsiasi nuovo lavoro di backup.
Esistono diversi casi d’uso in cui NAKIVO Backup & Replication, come qualsiasi altra soluzione di backup vSphere, non può utilizzare VMware CBT:
VMware CBTnon è supportato da una VM : Possibile causa – L’host ESXi è di versione inferiore alla v4.1, oppureVirtual Hardwarela versione è inferiore alla v7.
VMware CBTI dati non sono stati forniti : Possibile causa – Interruzione di corrente dell’host ESXi eCBTperdita del tracciamento delle modifiche incrementali della VM.
Nella sezione aggiuntiva “Tracciamento delle modifiche” settings, è possibile trovare le azioni che la soluzione dovrebbe intraprendere quando incontra un errore durante l’utilizzo di CBT.
Diamo un’occhiata più da vicino a queste On error azioni:
Switch to proprietary method: Verrà utilizzato il metodo di tracciamento delle modifiche proprietario di NAKIVO Backup & Replication, che è più lento rispetto aVMware CBTe consuma una maggiore quantità di risorse dell’host ESXi.Reset CBT:CBTverrà reimpostato per ilCBTin caso diCBTfallimento.Fail VM processing: L’elaborazione della VM verrà interrotta.
Inoltre, è possibile specificare quando applicare l’azione selezionata On error :
Immediately: L’azione in caso di errore viene applicata immediatamente (ad eccezione dell’azioneReset CBT).On the next retry: L’azione in caso di errore viene applicata al tentativo avanti.On the last retry: L’azione in caso di errore viene applicata all’ultimo tentativo.
È inoltre possibile selezionare la casella di controllo Double-check changed blocks provided by CBT . In questo caso, i dati forniti da VMware CBT verranno ulteriormente verificati rispetto al sistema di tracciamento delle modifiche proprietario di NAKIVO Backup & Replication. Questo approccio è più affidabile, ma potrebbe risultare più lento rispetto al normale VMware CBT.
Conclusione
VMware Changed Block Tracking è una funzione potente che rende il processo di backup più veloce e affidabile sotto ogni aspetto. La tecnologia è stata ampiamente testata ed è ampiamente utilizzata nelle soluzioni native di VMware, come ad esempio Storage vMotion.
VMware CBT è parte integrante delle moderne soluzioni di backup, come NAKIVO Backup & Replication, che garantiscono backup efficienti degli ambienti VMware senza alcun carico aggiuntivo sugli host.



