Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

Per organizzare un file automatico Prenota copia macchine virtuali in esecuzione sul server VMWare ESXi, utilizzeremo l'utilità gratuita MKSBackup, che puoi scaricare (al momento della stesura di questo documento, l'ultimo versione disponibile MKSBackup 1.0.4 dal 24.01. 2013). Questa utilitàè una sorta di front-end che si integra con vari script di backup, tra cui GhettoVCB(Script di backup della VM scritto in perl e gestito da appassionati). GhettoVCB consente il backup online delle macchine virtuali in esecuzione. Una copia di backup di una VM viene creata creando il suo snapshot (snapshot).

Importante. GhettoVCB non funziona con macchine virtuali avere le proprie immagini. Per eseguire il backup di una macchina virtuale, è necessario eliminare tutti gli snapshot (ad esempio, tramite Snapshot Manager).

MKSBackup è uno dei pochi strumenti di backup che ti consente di eseguire il backup di macchine virtuali online. MKSBackup può essere utilizzato per eseguire il backup di macchine virtuali che eseguono entrambe le edizioni commerciali di VMware ESXi e l'hypervisor gratuito VMware. L'utilità è sviluppata in Python ed è multipiattaforma. L'utilità MKSBackup non ha GUI, lavora attraverso riga di comando, ed è configurato tramite i file di configurazione.

Naturalmente, la praticità e la gestibilità della soluzione di backup di macchine virtuali VMWare basata su MKSBackup è inferiore a quella dei prodotti commerciali, ma è ampiamente compensata dalla velocità di configurazione e installazione gratuita e semplice.

Installazione dello script di backup MKSBackup

Configurazione delle opzioni di backup della macchina virtuale

Il passaggio successivo consiste nel configurare le opzioni di backup per le macchine virtuali in esecuzione sul server ESXi. La configurazione si effettua modificando il file di configurazione mksbackup.ini (che si trova di default nella cartella C:\Magik).

Apri il file mksbackup.ini in qualsiasi editor di testo. Per sua struttura, il file è composto da più sezioni, il nome di ciascuna sezione è racchiuso tra parentesi quadre.
Sezione:

In questa sezione è possibile impostare i parametri di notifica per e-mail. Non siamo interessati, quindi partiamo

Prossima sezione. Questa sezione è un processo di backup e descrive le varie opzioni per l'esecuzione di un backup di macchine virtuali in un ambiente Windows. Nel nostro esempio, l'attività è simile a questa:

Program=ghettovcb host=10.10.1.89 port=22 login=root password=LI&f3ccc23 local=C:\magik\vmware global_conf=ghettoVCB.conf vm_list=vm1_https winXPtest destination=C:\magik\$(vm) scp_bin="D:\Install\Putty\pscp.exe" -scp -r

Diamo un'occhiata più da vicino ai parametri dell'attività:

programma- programma di backup, lasciare ghettovcb

ospite– nome/ip dell'host ESXi su cui sono in esecuzione le macchine virtuali

porta– porta di accesso (porta predefinita 22 – protocollo SSH)

login– nome utente con diritti di accesso al server ESXi (di default è root, ma per motivi di sicurezza è meglio creare un utente separato sul server ESXi)

parola d'ordine- password utente

Locale– directory locale in cui sono memorizzati lo script di backup e la sua configurazione

global_conf– file con le impostazioni dello script ghettoVCB

lista_vm– elenco delle macchine virtuali per le quali è necessario creare una copia di backup. Se si desidera eseguire il backup di tutte le macchine virtuali, questo parametro deve essere lasciato vuoto. Se è necessario escludere alcune macchine virtuali, utilizzare il parametro vm_exclude.

destinazione– parametro consente di specificare il tipo di operazione da eseguire. Potrebbe essere

  • backup - esegue un semplice backup (non è necessario specificare una destinazione)
  • copia - esegue il backup e copia i file risultanti nella directory specificata
  • move - esegue il backup e sposta i file risultanti nella directory specificata

Soffermiamoci sull'opzione di spostamento, in quanto più ottimale. In questo caso, verranno creati backup locali delle macchine virtuali sull'host ESXi, che verranno poi trasferiti al computer che ha eseguito lo script.

mon-sun: si presume che lo script possa essere eseguito quotidianamente (lo lasceremo così com'è, poiché imposteremo la frequenza di avvio dei backup tramite lo scheduler di Windows).

Inoltre, specificare la directory in cui verranno spostati i backup della VM (C:\magik). Il parametro $(vm) specifica che verrà creata una directory separata con il suo nome per ogni macchina virtuale, dove verranno archiviati i file della macchina virtuale.

Nota. Descrizione dettagliata le impostazioni di configurazione dello script e la sua sintassi sono fornite sul sito Web dello sviluppatore.

scp_bin– percorso dell'utilità scp

Importante. Assicurati che il demone SSH sia abilitato sul server ESXi.

VM_BACKUP_VOLUME=/vmfs/volumes/msa2000/backup VM_BACKUP_ROTATION_COUNT=3

VM_BACKUP_VOLUME– una directory sul server ESXi in cui verranno salvate le copie delle macchine virtuali (naturalmente, dovrebbe esserci abbastanza spazio libero sulla partizione VMFS)

VM_BACKUP_ROTATION_COUNT- il numero di copie locali archiviate (nel nostro esempio verranno archiviati gli ultimi 3 backup)

Resta da salvare la chiave host nella cache ssh locale utilizzando l'utilità plink (inclusa anche nella distribuzione Putty). Ad esempio, in questo modo:

PLINK.EXE [e-mail protetta] ls/

Esecuzione del backup di macchine virtuali su un host VMWare ESXi

Testiamo lo script di backup. Per fare ciò, apri un prompt dei comandi con diritti di amministratore ed esegui il comando:

C:\Magik\MKSBackup\mksbackup.exe -v -c C:\Magik\mksbackup.ini backup VMWARE_FROM_WINDOWS

Dov'è la chiave - v indica che devono essere visualizzate informazioni dettagliate, -C percorso del file delle impostazioni mksbackup.ini, backup- significa che è necessario avviare il backup, alla fine viene indicato il nome dell'attività dal file mksbackup.ini(nel nostro esempio, l'attività VMWARE_FROM_WINDOWS).

Se tutto è configurato correttamente, l'utilità inizierà a visualizzare informazioni dettagliate sul processo di backup nella console (il processo di backup è piuttosto lungo, quindi non dovresti aspettarti che venga completato rapidamente).

Il processo di backup può essere monitorato dalla comparsa di eventi di creazione/eliminazione di snapshot nella console VMware vSphere.

Quando lo script viene eseguito, le cartelle contenenti i file della macchina virtuale appariranno nella directory di destinazione.

Dopo aver eseguito una copia di prova, puoi procedere ad automatizzare il processo di creazione backup. Per fare ciò, creeremo una nuova attività di Windows Scheduler.

Creiamo un'attività denominata "Backup ESXi" che viene eseguita il venerdì ed esegue il comando: C:\Magik\MKSBackup\mksbackup.exe -v -c C:\Magik\mksbackup.ini backup VMWARE_FROM_WINDOWS

Nelle impostazioni dell'attività, non dimenticare di specificare che deve essere eseguita con i diritti di amministratore (opzione "Esegui con i privilegi più elevati").

Nota. Se l'attività verrà eseguita per conto di un altro account(non quello in cui è stato eseguito il test), non bisogna dimenticare che la cache del nuovo account non conterrà la chiave richiesta. Per risolvere il problema, è necessario eseguire il comando plink sopra da sotto il nuovo account.

Gli svantaggi di questo questo metodo backup della macchina virtuale:

  • velocità di backup piuttosto lenta
  • una grande quantità di spazio libero necessario per archiviare i backup delle macchine virtuali

Queste carenze sono compensate dalla sua gratuità, ma per soluzioni di grandi dimensioni è preferibile utilizzare prodotti di backup commerciali, come Veeam o HP DataProtector.

Piccola prova:
Rete locale - gigabit.
Sull'archiviazione locale (hardware RAID 10 su 4 dischi 10K) - "time dd if=/dev/zero of=/vmfs/volumes/datastore/temp bs=1M count=1K" 8 secondi.
Su storage "linux" (software RAID 0 di 3 dischi 7.5K) - "time dd if=/dev/zero of=/vmfs/volumes/linbackup/temp bs=1M count=1K" 12 secondi.
Sull'archiviazione "Windows" (hardware RAID 5 su 10 dischi 10K) - "time dd if=/dev/zero of=/vmfs/volumes/winbackup/temp bs=1M count=1K" 1 minuto e 44 secondi (scioccato me stesso).

I risultati parlano da soli. Sì, su un win-storage RAID 5, ma è improbabile che sia lui l'unico responsabile di questo risultato.

Abbiamo capito il sistema di archiviazione, ora dobbiamo automatizzare il backup. Il miglior strumento gratuito è lo script ghettoVCB, per usarlo è necessario accedere all'host ESXi tramite SSH. Come si è scoperto, esiste un modo molto semplice per abilitare e disabilitare l'accesso direttamente dal client vShere: Configurazione > Software > Profilo di sicurezza > Proprietà... > Supporto tecnico remoto (SSH) > Opzioni... > Avvia o arresta. Questi screenshot lo rendono più chiaro:

Download ultima versione copione. Puoi diventare "vero" facendo come è scritto nella pagina dello script nella sezione "Setup:", ma l'ho fatto più facilmente: ho decompresso l'archivio sul mio computer, invece di modificare il file di configurazione, ho modificato lo script stesso, l'ho copiato nella memoria locale (tramite "Browse Datastore").

Ecco i principali parametri:

VM_BACKUP_VOLUME - percorso della cartella di backup, nel mio caso /vmfs/volumes/linbackup
DISK_BACKUP_FORMAT - formato del disco, sottile è il migliore per i backup
VM_BACKUP_ROTATION_COUNT - il numero di backup archiviati (per ogni macchina virtuale), ne ho 2
ADAPTER_FORMAT - tipo di adattatore, ho lsilogic

I restanti parametri potrebbero non essere modificati, ma se sei interessato, nella pagina dello script tutti i parametri sono descritti in dettaglio, sebbene in inglese, quasi tutti i parametri siano scritti in russo.

Quindi, lo script viene copiato nella memoria locale, ci connettiamo tramite ssh, trasferiamo lo script da qualche parte più vicino alla root, ad esempio, in /ghettovcb/ghettovcb.sh, se non è necessario eseguire il backup di tutte le macchine virtuali, è necessario creare un file con un elenco di macchine virtuali di cui eseguire il backup:
cd /ghettovcb
vi vmlist
premere "a" inserire i nomi delle macchine virtuali, ognuna su una nuova riga, premere "esc" e per salvare le modifiche ":wq" oppure per uscire senza salvare ":q"

Le interruzioni di riga devono essere "\n", quando si avvolge "\r\n" lo script genererà un errore, quindi non dovresti creare un elenco nel blocco note, seguito dalla copia nell'archivio, se non hai mai usato Notepad + o EmEditor e non sai cosa sono "\n" e "\r\n" - meglio creare un elenco in vi.

Proviamo ad eseguire lo script:

./ghettovcb.sh -f ./vmlist -l ./log.txt

./ghettovcb.sh -f ./vmlist -g ./ghettovcb.conf -l ./log.txt
Lo script funziona, fornendo molte informazioni, se alla fine dell'output vediamo "###### Stato finale: backup di tutte le VM OK! ######" allora va tutto bene, altrimenti leggiamo log.txt e capiamo cosa abbiamo sbagliato.
Ora dobbiamo creare una pianificazione per i backup.
cd /var/spool/cron/crontabs
chmod u+w radice
vi radice
premi "a", scrivi il programma, tieni presente che l'ora è indicata in UTC, ad es. per Mosca, questa è l'ora locale meno tre ore
00 20 * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -l /vmfs/volumes/linbackup/logs/`date +%F`.txt
o se hai creato un file di configurazione
00 20 * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -g /ghettovcb/ghettovcb.conf -l /vmfs/volumes/linbackup/logs/`date +%F`.txt
premi "esc" e salva ":wq"
in custodia
radice chmod uw

Ora ogni giorno alle 20:00 UTC (alle 23:00 ora di Mosca) verrà avviato lo script, i registri sulla sua esecuzione verranno salvati nell'archivio in cartella dei log, un registro separato per ogni giorno.

Secondo i registri, mi ci vogliono circa 4 ore per eseguire il backup, ho calcolato la velocità: circa 4 GB al minuto, ad es. circa 70 MB al secondo, niente male. Lo spazio di archiviazione di 2,7 TB è sufficiente per archiviare due copie di ciascuna macchina virtuale, questo è abbastanza, inoltre c'è spazio libero, ma è necessario, perché. il terzo backup viene eseguito per primo e solo dopo la sua creazione viene eliminata la copia più vecchia.
Bene, un'altra pietra nel giardino di archiviazione di "Windows": ho provato a eseguire backup con uno script su di esso, l'archiviazione è appena caduta e lo script stesso si è concluso con un errore. Capisco che si tratta di impostazione errata registra su NFS, ma le impostazioni erano predefinite e non volevo davvero capire "tuning".

L'esperimento è andato bene, puoi acquistare un server con buoni dischi, RAID 10 è previsto per 5 TB, questo dovrebbe essere più che sufficiente per le future macchine virtuali.

Tag: vmware, vsphere, esxi, backup

Buon pomeriggio, cari lettori, non molto tempo fa, abbiamo discusso del processo di clonazione delle macchine virtuali Hyper-V, oggi analizzeremo il suo principale concorrente, ovvero l'hypervisor ESXI, in cui produrremo anche clonare una macchina virtuale VMware. Il processo in sé non è complicato, ma i principianti possono farlo amministratori di sistema sollevare una serie di domande, alle quali risponderò in questo articolo.

Il principio della clonazione

La clonazione è la creazione di una copia esatta di una macchina virtuale, sia con le stesse impostazioni che con le modifiche necessarie. È molto comodo, come a scopo di test, quando devi apportare le modifiche necessarie, ma non sai come si comporterà la macchina virtuale, facendone una copia lo scoprirai ed eviterai tempi di inattività dei servizi. Quali metodi di clonazione esistono:

  • Copiando i file della macchina virtuale (nello stato spento), dagli svantaggi, è necessario ricrearlo nell'inventario e inserire il disco esistente.
  • Con VMware vCenter Converter Standalon e, questa è un'opzione quando non c'è vCenter Server. Lì il principio è semplice, lo installi in una macchina virtuale e ne fai un clone, come se lo fosse macchina fisica Tutto è dettagliato nel link sopra.
  • Strumenti di backup delle macchine virtuali Veeam Backup Replication
  • Con vCenterServer.

Di seguito descriverò il primo metodo e l'ultimo, il resto ha già i suoi articoli dettagliati.

Copia di file VM

Trova l'host ESXI desiderato, seleziona quello che ti serve matrice di dischi(Datastore) e fare clic destro su di esso, selezionare "Sfoglia Datastore" dal menu contestuale.

Selezioniamo la cartella desiderata e dal menu contestuale la voce "Copia", quindi utilizzando l'esploratore integrato, spostiamola nella posizione desiderata, possiamo chiamarla tale clonazione della macchina virtuale VMware, per i poveri.

Successivamente, in una nuova posizione, apri la cartella e fai clic con il pulsante destro del mouse sul file con estensione *.vmtx, questo è il file di configurazione. In effetti, questo è tutto. Personalmente, devo accedere sistema di file ESXI utilizzando WinSCP, oppure è anche possibile utilizzare le funzioni OVA del modello.

Se sono presenti istantanee nella VM copiata, devono essere eliminate prima della copia o copiate insieme ad altri file, altrimenti, durante il caricamento della nuova VM, si verificherà un errore con un messaggio sull'impossibilità di caricare file con istantanee.

Copia di una VM con vCenter

Per quei compagni che gestiscono centralmente la loro infrastruttura, data funzione presenti durante l'installazione. Il suo vantaggio è che puoi clonare sia una macchina virtuale in esecuzione che non funzionante. Seleziona quello desiderato e fai clic destro su di esso. menù contestuale vediamo la voce "Clone".

Nella prima finestra della procedura guidata ti verrà chiesto di selezionare una posizione (Datacenter)

Specifica l'host di destinazione, se corrisponde, vedrai il messaggio "Convalida riuscita"

In caso contrario, vedrai i messaggi:

  • L'unità CD/DVD del dispositivo 1 utilizzata è risolvibile, ti viene detto di smontare l'ISO nella VM.
  • L'interfaccia di rete "nome adattatore" utilizza la rete "altro nome" - non esiste un tale tipo di rete sull'host di destinazione, va bene, puoi passare a un altro dopo la clonazione.

Nella fase successiva della clonazione, avrai bisogno della destinazione della fotocopiatrice.

Nell'ultimo passaggio, ti verrà chiesto se desideri applicare impostazioni personalizzate al clone. Personalizza è un'impostazione avanzata che ti consente di impostare un numero enorme di impostazioni. Selezionando "Non personalizzare" si completerà il processo di clonazione guidata.

Esiste un eccellente script gratuito per il backup di macchine virtuali su un server VMWare ESXi e funziona versione gratuita Versioni ESXi 4 e 5 senza installare alcun randagio aggiuntivo come VMA, ecc. L'unico problema è che le istruzioni non sono del tutto accurate, quindi ho giocherellato a lungo con questo script in modo che funzionasse ancora in modalità automatica ...

Non descriverò in dettaglio come connettersi a ESXi tramite SSH, descriverò solo i passaggi di installazione con cui tutto ha funzionato per me.

Innanzitutto, scarica lo script dal link sopra e caricalo sul server, devi caricarlo direttamente nell'archivio! Il modo più semplice per farlo è tramite vSphere Client. Ho due dischi sul server: le macchine funzionano su uno e tutti i tipi di iso-immagini e backup stessi si trovano sull'altro. I dischi sono chiamati rispettivamente datastore1 e datastore2. Tutti i backup, gli script e le configurazioni si trovano nella cartella di backup. Si noti inoltre che i nomi di file e cartelle fanno distinzione tra maiuscole e minuscole, quindi se la cartella viene chiamata backup e scrivi in ​​uno script Backup, quindi non funzionerà!

  1. Carica qui l'archivio con lo script /vmfs/volumi/datastore2
  2. Accanto a SSH cd /vmfs/volumes/datastore2- vai alla directory con lo script
  3. Disimballaggio dello script dall'archivio tar -zxvf nomefile_archivio.tar.gz
  4. Tramite vSphere, rinomina la cartella decompressa in qualcosa di più semplice, ad esempio just backup
  5. Ora andiamo in questa cartella - backup cd
  6. Crea una cartella al suo interno per memorizzare le singole configurazioni mkdirBackupConfig
  7. Ora in BackupConfig elimina le configurazioni individuali necessarie per le macchine, se non sono necessarie e tutte le macchine devono essere sottoposte a backup con le stesse impostazioni, puoi lasciarlo vuoto
  8. Modifica le variabili nell'editor vi file di configurazione, la cosa principale sono i percorsi di backup, ad es. Cambia la prima riga in questa: VM_BACKUP_VOLUME=/vmfs/volumes/datastore2/backup, beh, allora vedi di persona di cos'altro hai bisogno - vi ghettoVCB.conf
  9. Crea copione StartBackup.sh(2 righe) - vi StartBackup.sh
    2a riga, dove la chiamata dello script stesso, puoi rifare da solo
    cd /vmfs/volumes/datastore2/backup

    ./ghettoVCB.sh -a -g ./ghettoVCB.conf -c BackupConfig -l ghettoVCB.log
  10. Correre chmod +x ghettoVCB.sh
  11. Correre chmod +x StartBackup.sh

Fase 1 completata! Ora se corri StartBackup.sh, verrà avviato il backup. Per tutta la durata del debug, puoi modificare la seconda riga in qualcosa del genere ./ghettoVCB.sh -a -g ./ghettoVCB.conf -c BackupConfig -l ghettoVCB.log -d dryrun- questo ti permetterà di eseguire lo script e tenere traccia dei progressi senza copiare i dischi. Per eseguire il backup in modo più efficiente e rapido, consiglio di impostare il tipo di disco nelle impostazioni magro.

Configurazione di Cron (per eseguire automaticamente uno script)

  1. Concedi il permesso di scrivere su un file chmod + w
  2. Aggiungi una linea attraverso vi a /var/spool/cron/crontabs/root
    15 0 */3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
    Lancia alle 00:15 di notte ogni tre giorni. Il mio fuso orario è +4 Mosca, cioè. in realtà lo script viene eseguito alle 4:15, questo sarà visibile dalla data in cui il registro è stato modificato tramite vSphere. Certo, puoi scegliere un altro orario e frequenza.
  3. Ora devi eseguire due comandi per riavviare cron
    kill $(cat /var/run/crond.pid)
    crond
  4. Aggiungi con vi 3 righe fino alla fine del file /etc/rc.local
    Ciò è necessario perché dopo aver riavviato il server, il contenuto del file dal 2° punto con l'avvio del nostro script verrà ripristinato allo stato precedente, quindi specifichiamo in rc.local che dopo il riavvio devono essere eseguiti i seguenti comandi: arresto di cron, aggiunta di una riga per eseguire automaticamente lo script e avvio di cron.
    /bin/kill $(cat /var/run/crond.pid)

    /bin/echo "15 0 */3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh" >> /var/spool/cron/crontabs/root
    crond
  5. Ora eseguiamo il comando /sbin/backup automatico.sh per assicurarci che tutte le nostre modifiche vengano salvate.

Una piccola spiegazione: perché è necessario creare uno script StartBackup.sh, e non solo prendere e inserire il suo contenuto /var/spool/cron/crontabs/root? C'è qualche limitazione sulla dimensione di questo file e alcune delle righe in esso contenute semplicemente non funzioneranno, anche se puoi provare a farlo in questo modo, all'inizio ha funzionato per me, ma poi, a quanto pare, alcune patch sono uscite e si sono fermate. Inoltre, è solo più conveniente: se è necessario modificare la pianificazione del backup, è sufficiente modificare il file StartBackup.sh e non c'è bisogno di ballare con un tamburello attorno a cron con il suo riavvio e apportando le stesse modifiche a /etc/rc.local.

PS: il tempo passa, tutto cambia, lo script stesso cambia, ESXi5 è già stato rilasciato, quindi da qualche parte qualcosa potrebbe non funzionare più 🙂

Appendice: Sintassi Cron

Il comando cron ha questo aspetto:

1 2 3 4 5 /vmfs/volumes/datastore2/backup/StartBackup.sh

Dove,
1: Minuti (0-59)
2: Orologio (0-23)
3: Giorni (0-31)
4: Mesi (0-12 )
5: Giorno della settimana (0-7)

Alcuni esempi:

  1. Corri a mezzanotte e 5 minuti, tutti i giorni
    5 0 * * * /vmfs/volumes/datastore2/backup/StartBackup.sh
  2. Lancio alle 2:15 ogni primo giorno del mese
    15 14 1 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
  3. Inizia alle 22:00 ogni giorno lavorativo
    0 22 * ​​​​* 1-5 /vmfs/volumes/datastore2/backup/StartBackup.sh
  4. Corse a 23 minuti dopo la mezzanotte e successivamente ogni due ore (2:23, 4:23... ecc.), ogni terzo giorno
    23 0-23/2 * * */3 /vmfs/volumes/datastore2/backup/StartBackup.sh

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: