Ripristino immediato
Questo documento descrive un caso d'uso in cui un cyberadmin utilizza uno script PowerShell che sfrutta la capacità di Veeam® di eseguire un ripristino istantaneo di una macchina virtuale (VM) di produzione dal cyberbackup.
La funzione di ripristino istantaneo di Veeam consente di avviare una macchina virtuale direttamente dai file di backup. Il servizio Veeam® vPower NFS viene utilizzato per accedere ai file di backup.
Lo script esegue le seguenti operazioni:
- Viene eseguito da una finestra PowerShell sul server di backup Veeam o da una finestra PowerShell su un altro server in cui è installata l'estensione Veeam PowerShell. Il server di backup Veeam è abilitato anche per il remoting PowerShell.
- Richiede le seguenti variabili:
- Nome della macchina virtuale
<vm_name>
da vCenter e nome della rete<src_nw_name>
a cui la macchina virtuale è connessa. - Il nome dell'host VMware ESXi™
<esxi_hostname>
in cui viene ripristinata la macchina virtuale. - Un nome di pool di risorse
<resource_pool_name>
a cui appartiene la macchina virtuale ripristinata. - Il datastore
<datastore_name>
in cui viene ripristinato il backup. - Un nome di cartella
<folder_name>
in vCenter a cui appartiene il VM ripristinato. - Il nome della rete di destinazione
<tgt_nw_name>
a cui è collegata la macchina virtuale ripristinata.
- Nome della macchina virtuale
- Recupera il punto di conservazione più recente della macchina virtuale da ripristinare.
- Definisce il nome della macchina virtuale ripristinata con un suffisso CR seguito da un timestamp.
- Definisce una descrizione del ripristino nella variabile
$Reason
. - Ripristina la macchina virtuale:
- La macchina virtuale ripristinata è accesa.
- Il comando PowerShell viene eseguito in modo asincrono, poiché il ripristino è un processo di lunga durata.
- La scansione antivirus viene avviata per il sistema operativo Windows® e continua dopo il rilevamento della prima minaccia virale. Se viene rilevato un virus, la rete della macchina virtuale viene disattivata.
- Al termine del ripristino istantaneo, la macchina virtuale rimane accesa.
Per trovare i nomi delle macchine virtuali nel lavoro di backup, è possibile utilizzare il seguente comando in una finestra PowerShell, dove il JobName è impostato sul nome di un lavoro di backup. In questo esempio, il lavoro di backup è denominato
Cyber-backup - 1d1w30rp
:
$JobName = "Cyber-backup - 1d1w30rp"
Get-VBRJob -Name $JobName | Get-VBRJobObject | Select-Object -Property Name
L'esempio seguente mostra alcune variabili di esempio.
$VMName = "nrt01"
$SrcNetworkName = "192-168-3-0-24"
$EsxiHostname = "host002.test.ibmcloud.local"
$ResourcePoolName = "Cyber-restore-rp"
$DatastoreName = "workload_share_LkXB6"
$FolderName = "Cyber-restore"
$TgtNetworkName = "cyber-veeam-recovery"
Lo script PowerShell è mostrato nell'esempio seguente.
# VM variables
$VMName = "<vm_name>"
$SrcNetworkName = "<src_nw_name>"
# Restore variables
$EsxiHostname = "<esxi_hostname>"
$ResourcePoolName = "<resource_pool_name>"
$DatastoreName = "<datastore_name>"
$FolderName = "<folder_name>"
$TgtNetworkName = "<tgt_nw_name>"
# Conversions
$LastRestorePoint = Get-VBRRestorePoint -Name $VMName | Sort-Object -Property CreationTime -Descending | Select-Object -First 1
$Esxi = Get-VBRServer -Type ESXi -Name $EsxiHostname
$ResourcePool = Find-VBRViResourcePool -Server $Esxi -Name $ResourcePoolName
$Datastore = Find-VBRViDatastore -Server $Esxi -Name $DatastoreName
$Folder = Find-VBRViFolder -Server $Esxi -Name $FolderName
$SrcNetwork = Get-VBRViServerNetworkInfo -Server $Esxi | Where-Object { $_.NetworkName -eq $SrcNetworkName }
$TgtNetwork = Get-VBRViServerNetworkInfo -Server $Esxi | Where-Object { $_.NetworkName -eq $TgtNetworkName }
$RestorePointDate = $LastRestorePoint.CreationTime
$RestoreDate = Get-Date -Format yyyy-MM-dd-HH:mm
$Reason = "Cyber-restore of $VMName retention point: $RestorePointDate at $RestoreDate"
$RestoredVMName = "$VMName-CR-$RestoreDate"
# Instant restore
Start-VBRInstantRecovery -RestorePoint $LastRestorePoint -Server $Esxi -ResourcePool $ResourcePool -Datastore $Datastore -Folder $Folder -SourceNetwork $SrcNetwork -TargetNetwork $TgtNetwork -VMName $RestoredVMName -PowerUp:$True -Reason $Reason -RunAsync -EnableAntivirusScan -EnableEntireVolumeScan -VirusDetectionAction DisableNetwork
Log
I seguenti comandi PowerShell visualizzano le voci di registro dell'ultima sessione di ripristino della macchina virtuale <vm_name>
:
$VMName = "<vm_name>"
$Session = Get-VBRRestoreSession -Name $VMName | Sort-Object -Property CreationTime -Descending | Select-Object -First 1
$Logs = $Session.logger.GetLog().GetRecordsSortedByOrdinalId()
foreach ($Log in $Logs) { Write-Host $Log.Title }
L'esempio seguente mostra le voci di registro per una macchina virtuale chiamata nrt01
. La scansione antivirus è stata saltata per questa VM Linux®.
Skipping nrt01: operating system is not supported for antivirus scan
Starting nrt01-CR-2021-11-19-12:50 recovery
Connecting to host host002.partner.ibmcloud.local
Restoring from Linux Hardened Repository - LHBR01
Checking if vPower NFS datastore is mounted on host
Locking backup files
Publishing backup files
Preparing change storage
Updating VM configuration
Checking free disk space available to Power NFS server
Registering VM
Creating VM snapshot
Powering on VM
Updating session history
nrt01-CR-2021-11-19-12:50 has been recovered successfully
Waiting for user to start migration
Sul repository temprato Linux, le seguenti porte sono state temporaneamente aperte sul firewall Linux indicato dal commento Veeam rule 876f0752-7209-4e8b-8b34-fa0af7dbced4
.
ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW 10.38.207.142 # Allow SSH from trusted servers
6162/tcp ALLOW 10.38.207.157 # Allow Veeam Mgmt from Veeam BUR server
2500/tcp ALLOW Anywhere # Veeam rule 876f0752-7209-4e8b-8b34-fa0af7dbced4
2501/tcp ALLOW Anywhere # Veeam rule 876f0752-7209-4e8b-8b34-fa0af7dbced4
6162/tcp ALLOW OUT Anywhere # Veeam transport rule
2500/tcp ALLOW OUT Anywhere # Veeam rule 876f0752-7209-4e8b-8b34-fa0af7dbced4
2501/tcp ALLOW OUT Anywhere # Veeam rule 876f0752-7209-4e8b-8b34-fa0af7dbced4
Interruzione del recupero istantaneo
La sessione di recupero istantaneo può essere interrotta utilizzando il seguente comando Get-VBRInstantRecovery | Where-Object {$_.VMName -eq $RestoredVMName} | Stop-VBRInstantRecovery
.
Per un caso d'uso in cui un cyberadmin utilizza l'API di integrazione dei dati Veeam per accedere al cyberbackup, vedere Creazione di un server gestito Veeam Linux.