MySQL Backup & Veeam Backup & Replication Parte 2

In questo secondo articolo è illustrato dove ricercare gli script per realizzare backup consistenti di DataBase MySQL con Veeam Backup & Replication.

Per scoprire perché sia necessario utilizzare script, vi raccomando di leggere il precedente articolo.

Hot Backup Database Online Dump (Linux)

L’opzione prevede di integrare negli script il comando mysqldump.

Due esempi sono consultabili al seguente sito:

HotBackup Database Freeze (Linux)

L’opzione prevede di effettuare a caldo il flush delle tabelle.

Due esempi sono consultabili al seguente sito:

Cold Backup Database Shutdown (Linux)

L’opzione prevede di fermare il servizion MySQL prima di realizzare il backup.

Due esempi sono consultabili al seguente sito:

Hot Backup Database Online Dump (Windows)

Il seguente esempio in poweshell è puramente dimostrativo. Il mio consiglio è quello di chiedere al vostro esperto in powershell di crearne uno che rispetti le politiche aziendali di gestione e sicurezza.

Pre command (avvia lo script mySQLdump.ps1 sul server YOURMYSQLSERVER)

$password = ConvertTo-SecureString “YOURPWD” -AsPlainText -Force

$Cred = New-Object System.Management.Automation.PSCredential (“DOMAIN\USER”, $password)

New-PSSession -ComputerName mySQL-WIN -Credential $Cred

#Enter-PSSession -ComputerName YOURMYSQLSERVER

#Invoke-Command -Session 6 -FilePath “C:\Script\script-7.ps1” -ComputerName mySQL-WIN

Invoke-Command -ComputerName mySQL-WIN -Credential $Cred -ScriptBlock { C:\Script\mySQLdump.ps1}

mySQLdump.ps1 (Crea il file .sql che viene memorizzato in una specifica cartella sul server YOURMYSQLSERVER)

# Declare variables

$path = “/backups”                      # path of backup folder

$logFile = “automate-mysqldump.log”     # path of log file

$configFile = “C:\ProgramData\MySQL\MySQL Server 5.6\my.ini”           # path of my.cnf file

# Navigate to the backups folder

Set-Location $path

# get today’s date to name today backup folder

$date = Get-Date -UFormat “%Y-%m-%d”

# Check for log file

# Create if not found

if (-NOT (Test-Path $logFile)) {

    New-Item -Path . -Name $logFile -ItemType “file”

    Add-Content $logFile “Created on: $date`n”

}

# enter directory

# create today’s backup directory if it does not exist

if (-NOT (Test-Path $date)) {

    New-Item -ItemType “directory” $date

    Add-Content $logFile “[$date]: New $date directory is created”

}

# Set-Location $date

Add-Content $logFile “[$date]: Starting mysqldump”

# invoke mysqldump – insert mysqldump statement

mysqldump –defaults-file=$configFile -r $date/database-backup.sql –all-databases

Add-Content $logFile “[$date]: Backup for databases are completed”

Add-Content $logFile “”

# pause

 Post command (chiude la sessione remota)

Remove-PSSession -ComputerName YOURMYSQLSERVER

Nel prossimo articolo sarà illustrato come integrare gli script in Veeam Backup & Replication.

MySQL Backup e Veeam Backup & Replication – Parte 1

Il presente articolo illustrerà come implementare una strategia di protezione dei dati in ambienti MySQL.

Partiamo da una considerazione.

Per realizzare backup consistenti da un punto di vista applicativo, è necessario che prima che sia avviato  il processo di copia, l’applicazione abbia scritto su disco tutti i dati in memoria (flush).

Ad esempio, le applicazioni Microsoft® utilizzano una tecnologia denominata Shadow Copy che attraverso il coordinamento di driver VSS realizza la consistenza applicativa.

Una tecnologia simile non è disponibile su Linux ed in più MySQL non la supporta in ambiente Microsoft®.

Come ovviare?

Attraverso la creazione di script che automatizzino la consistenza applicativa prima di avviare la creazione della Snapshot.

Compreso questo aspetto, torniamo all’ambito dell’articolo, introducendo le opzioni disponibili per MySQL.

Nota 1: La consistenza applicativa avviene prima della creazione della snapshot.

  • 1. Backup Logico: Lo script crea un file con l’estensione .sql che in caso di ripristino permette la ricreazione del database e dei suoi dati.

Il file .sql è creato attraverso il comando nativo MySQL “mysqldump”.

I vantaggi del backup logico possono essere riassunti in:

  • Non vi sono dipendenze con software di terze parti.
  • I backup possono essere ripristinati su altri server.
  • 2. Backup Fisico/Cold: Sono create copie a freddo dei file del DB (ad esempio: ibdata, .ibd, .frm, ib_logfile, my.cnf).

Per essere certi che i backup siano realizzati in modalità “consistenza applicativa“, prima di effettuare la snapshot, è      indispensabile fermare i servizi MySQL.

E’ una strategia di backup di norma implementata in ambienti che non richiedano operatività 24×7.

Nota 2: Il servizio viene fermato solo per il tempo necessario alla creazione della snapshot e non per l’intera durata del backup.

  • 3. Backup Fisico/Hot: Se è in esecuzione il motore InnoDB, lo script permette la realizzazione di copie consistenti senza fermare i servizi (utilizzando ad esempio il comando mysqlbackup componente della suite Enterprise di MySQL (MySQL Product)).

Ora che conosciamo le opzioni di scripting disponibili, vediamo come le soluzioni Veeam possano integrarsi nativamente con gli  ambienti MySQL.

La prima opzione disponibile è il Veeam Agent for Linux (VAL) che automatizza le seguenti quattro fasi:

  1. Flush dei dati dalla memoria al disco (consistenza applicativa).
  2. Creazione della snasphot.
  3. Rilascio delle tabelle.
  4. Avvio del processo di Backup.

Nota 3: Come indicato nella prima parte dell’articolo, se il DB è del tipo MyISAM è possibile effettuare il backup con il blocco di tutte le tabelle.

I pre-requisti del VAL sono:

  • Versione di MySQL maggiore o uguale alla 5.8.
  • Sistema operativo sia Linux.

Domanda: E’ possibile effettuare il backup in ambienti Windows e dove la versione di MySQL è inferiore alla versione 5.8?

La risposta è si e gli scenari disponibili sono:

Backup Logico -> Hot-Backup Database Online Dump -> Comando mysqldump.

Backup Fisico/Cold -> Cold-Backup Database Shutdown -> Fermo temporaneo dei Servizi.

Backup Fisico/Hot -> Hot-Backup Database Freeze -> Comandi nativi mysql.

Nota4: Esiste anche la possibilità di effettuare Backup Parziali. In questo scenario si effettua il backup di specifiche tabelle e database. E’ utile quando si devono realizzare strategie di protezione differenti sullo stesso Server.

Nel prossimo articolo scopriremo come creare gli script e come integrarli in Veeam Backup & Replication.

Veeam & Google Cloud Platform – Parte 2

Nel precedente articolo, è stato illustrato come utilizzare VBR (Veeam Backup & Replication) come framework per proteggere le istanze (VM) presenti nella Piattaforma Google Cloud (GCP).

Il componente integrato di VBR che automatizza i processi di backup e restore, è il VBGP (Veeam Backup for Google Platform), giunto ad oggi (gennaio 2022) alla sua seconda versione.

Il VBGP permette di salvare a livello di immagine le istanze Google, ma ad oggi non è in grado di ripristanre in modalità granulare le applicazioni.

Nota 1: Il VBGP permette di realizzare backup “Application Consistency” delle istanze attraverso:

  • le VSS (Windows Volume Snapshot Copy Services) per i sistemi operativi Microsoft-Windows.
  • Script personalizzabili per i sistemi operativi Linux.

Nei casi in cui sia richiesto il backup dei transaction log o il ripristino granulare di oggetti applicativi, è necessario utilizzare il Veeam Agent (VA).

Nota 2: Nel sito www.gable.it troverete molti articoli che dettagliano come implementare i Veeam Agent.

Nota 3: Il Backup Server VBR può essere installato sia in cloud (ad esempio come istanza in GCP) che on-premises. In tutti gli scenari è necessario garantire la corretta connettività tra i componenti.

Nota 4: La versione 12 di VBR (in uscita nel 2022) aggiungerà una serie di miglioramenti in ambito Cloud. Ad esempio la possibilità di gestire il deploy e i componenti Veeam Agent, senza dover creare a priori una VPN tra il VBR on-premises e le istanze da proteggere.

Vediamo ora le due fasi principali per realizzare il Backup dell’istanza:

La prima fase ha lo scopo di realizzare discovery e il deploy dell’Agent sull’istanza (vedi immagine 1) (menù Inventory, Create a Protection Group).

Immagine 1

Nella seconda fase, la creazione del job di Backup selezionando la voce Veeam Agent for Windows (Immagine 2)

Immagine 2

Durante il Wizard selezioniamo alla voce Backup Mode,  Entire Computer (immagine 3) e alla voce Storage il Repostitory di Backup (immagine 4).

Immagine 3

Immagine 4

Il punto focale del presente articolo è la gestione della protezione delle applicazioni (in questo scenario MS-SQL).

Dopo aver abilitato l’application aware processing (immagine 5), è possibile operare a livello di Transaction Log, selezionando se cancellarli dopo ogni operazione di Backup (Trunking) oppure ancora se effettuare il backup dei soli T-Log. (immagini 6-8).

Immagine 5

Immagine 6

Immagine 7

Immagine 8

Dopo aver avviato il job, controlliamo che alla voce Disk sia presente almeno un punto di ripristino (vedi immagine 9).

Immagine 9

Concludiamo il presente articolo illustrando le opzioni di ripristino del Veeam Agent for Windows: (immagine 10)

  • Verso architetture virtuali VMware & Hyper-V
    • Instant Recovery
    • Ripristino di Volumi
    • Esportazione dei Dischi (VMDK, VHD, VHDX)
  • Verso architetture Public Cloud
    • AWS
    • Azure
    • GCP
  • La creazione di  un Recovery Media per realizzare un Bare Metal Restore
  • Il ripristino di File e Cartelle (immagine 10, disponibile anche con il VBGP)
  • Il ripristino di oggetti applicativi (immagine 11 & 12, disponibile unicamente via VA)

Immagine 10

Immagine 11

Immagine 12

Tutte le opzioni di ripristino utilizzando il Veeam Explorer per SQL sono disponibili al seguente sito.

Nota 5: Nell’ esempio è stato scelto uno Scale Out Backup Repository che ha il vantaggio di copiare i dati verso l’Object Storage di Google (vedi immagine 13). La versione 12 di VBR permetterà la scrittura diretta verso l’Object Storage

Immagine 13

A presto

Veeam & Google Cloud Platform – Parte 1

Il primo articolo del 2022 è dedicato a come proteggere le istanze Google (GCP).

Il flusso e l’architettura di protezione è riportato nell’immagine 1 dove sono presenti due componenti Veeam.

  1. L’ istanza Veeam Backup for Google Platform (VBGP) ha il compito di realizzare backup e ripristini delle istanze GCP.
  2. Veeam Backup & Replication (VBR) ha l’onere di gestire centralmente la movimentazione dei dati di Backup da e per il cloud (Data Mobility).

Immagine 1

  • Nota 1: VBGP può essere installato in modalità stand alone oppure utilizzando il wizard di VBR.
  • Nota 2: Il presente articolo mostrerà come agganciare da VBR un istanza VBGP già presente in GCP.

Vediamo in modalità dettagliata i passaggi:

Dalla console di VBR scegliamo la voce Backup Infrastructure.

Cliccando con il tasto destro del mouse, selezioniamo la voce add server e successivamente Google Cloud Platform (vedi immagine 2)

Immagine 2

Il prossimo passaggio è quello di inserire le credenziali di accesso al Service Account di Google (immagine 3)

Immagine 3

Il wizard prosegue chiedendovi di inserire il nome del server VBGP già creato (immagine 4)

Immagine 4

Dopo aver selezionato la tipologia di rete presente (immagine 5) il passaggio successivo è quello di inserire le credenziali di accesso al Repository (immagine 6).

Ricordo che la best practice di protezione è quella di effettuare il backup dell’istanza come snapshot, successivamente riversare la snapshot verso il Cloud Object Storage di Google.

Si rispetta così la regola del 3-2-1, avere cioè 3 copie dei dati (Produzione + Snapshot + Object Storage) su due differenti media (Storage primario + Object Storage) con una copia offsite (Object storage dovrebbe afferire ad un’altra region).

Immagine 5

Immagine 6

Concluso il wizard, sempre dalla console di VBR possiamo collegarci alla console al server VBGP (immagine 7) per iniziare a creare policy di protezione.

Immagine 7

Dopo aver inserito le credenziali di accesso (immagine 8)

Immagine 8

è possibile monitorare l’ambiente attraverso un overview delle istanze presenti, di quelle protette (immagine 9 & 10)

Immagine 9

Immagine 10

Gestire le politiche di protezione attraverso:

La creazione delle policy di Backup, indicando nome (immagine 12), selezionando il progetto (immagine 13), la region (immagine 14), le risorse (immagine 15), il target di Backup (immagine 16), la schedulazione e la tipologia di backup (immagini da 17 a 19)

Immagine 11

Immagine 12

Immagine 13

Immagine 14

Immagine 15

Immagine 16

Immagine 17

Immagine 18

Immagine 19

Le ultime due voci indicano la stima dei costi mensili per realizzare la policy di backup (immagine 20) e l’impostazione dei retry e delle notifiche (immagine 21)

Immagine 20

Immagine 21

Terminata la configurazione e dal monitoraggio verificato che la policy si è completata con successo, è possible procedere al ripristino (immagine 22).

Immagine 22

Le opzioni disponibili sono:

  • Intera Istanza
  • File e Cartelle

Le prossime immagini  (23-24-25) mostrano i passaggi chiave per ripristinare l’ìntera istanza.

Immagine 23

Immagine 24

Immagine 25

Nel prossimo articolo vedremo come poter proteggere e rispristinare un DB Sql presente in un’istanza GCP

A presto

Veeam Backup & Replication: Conteggio delle licenze

A partire dal 1 luglio 2022, la vendita di licenze perpetue per socket di Veeam Backup & Replication™, Veeam Availability Suite™, Veeam Backup Essentials™ e Veeam ONE™ cesserà sia ai clienti nuovi che a quelli esistenti.

I prodotti attualmente in esercizio, continueranno a funzionare ma non sarà possibile acquistare nuove licenze a Socket per effettuare un upgrade.

Le licenze acquistabili e disponibili sono le Veeam Universal License (VUL) che utilizzano come unità di misura il singolo workload.

I vantaggi più importanti del modello VUL possono essere riassunti in:

  1. Possibilità di proteggere qualsiasi workload supportato (ad esempio le istanze in AWS, Azure e GCP) e non solo le Virtual Machine VMware e Hyper-V.
  2. Libertà di muovere le licenze a seconda della necessità tra tutti i workload supportati.

Nota 1: Ogni istanza può essere utilizzata per proteggere 500 GB dati sorgente di un NAS

Nota 2: Facciamo un esempio per semplificare il conteggio: ipotizziamo di dover proteggere un ambiente composto da 50 VM Hyper-V, 30 istanze in Azure (oppure in Aws oppure in GCP), 10 server fisici e 5 TB di dati.

Il numero totale di istanze è la somma algebrica di:

a. 50 (VM-HV) + 30 (Azure) + 10 (Server) + 10 (NAS)=  100 istanze = 10 VUL

Se in un processo di ammodernamento 20 VM in Hyper-V sono migrate in Azure, il conteggio si trasforma in

b. 30+50+10+10 = 100 istanze = 10 VUL

Come potete osservare il numero totale di istanze non cambia.

La buona notizia è che Veeam ha messo a disposizione un piano per aiutare i clienti nella fase di migrazione delle licenze.

Il vostro referente commerciale in Veeam potrà indicarvi le migliori opzioni disponibili.

Nota 3: In questo scenario è indispensabile fornire al referente Veeam i file di log.

Quello che descrive le licenze utilizzate è denominato VMC.log

A presto

VMware VCSA 7.03b Backup

Dopo aver aggiornato i vCenter all’ultima versione disponibile, (7.0.3.00100), mi sono accorto che i backup precedentemente configurati non venivano completati con successo.

L’errore che compariva era il seguente: “Path not exported by the remote filesystem” (vedi immagine 1).

Immagine 1

Una veloce indagine sul sito VMware ha spiegato la ragione:

Quando la destinazione del  backup è una share di tipo SMB, la VCSA non è in grado di scrivere sul target i file di backup.  (https://kb.vmware.com/s/article/86069)

Riconfigurato il  job in modo tale che scrivesse verso un target di tipo NFS, speravo di aver risolto questo inconveniente ma … un nuovo errore ha fatto la sua comparsa.

“Db health is UNHEALTHY, Backup Failed. Disable health check to take backup in the current state”  (vedi immagine 2):

Immagine 2

Nuova indagine e nuova risposta esauriente da VMware.

Dalla kb 86084 (https://kb.vmware.com/s/article/86084) l’errore può comparire dopo aver installato la patch 7.0.3

La procedura è molto semplice e consiste nel collegarsi come utente root e via SSH alla VCSA e lanciare il seguente comando:

/usr/bin/dbcc -fbss embedded (vedi immagine 3).

Immagine 3

Completata l’operazione è possibile salvare la configurazione della VCSA (vedi immagini 4 e 5).

Immagine 4

Immagine 5

A presto!