Резервное копирование виртуальных машин ESXI с помощью Xsibackup

Apr 3, 2017 13:56 · 868 words · 5 minute read esxi backup

Возможности резервного копирования виртуальных машин на гипервизоре под управлением ESXI с бесплатной лицензией существенно ограничены — например, тут не получится использовать vCenter, а функциональность бесплатных версий Veeam Backup или VM Explorer значительно урезана.

Порой проще «закрыть глаза» на все эти условности с лицензиями, но гораздо чаще приходится осваивать малоизвестные бесплатные решения или придумывать собственные костыли и велосипеды. Давайте разберемся с резервным копированием виртуальных машин ESXI с помощью Xsibackup!

Итак, основными возможностями бесплатной версии Xsibackup являются:

  • «горячие» бэкапы без остановки виртуальных машин. Делаются с помощью снепшота (snapshot);
  • настройка крона (cron) в ESXI для бекапов по расписанию;
  • результаты выполнения заданий можно получать на email;
  • ротация бэкапов (удаление самых старых при заполнении отведенного дискового пространства);
  • резервное копирование виртуальных машин на другой ESXI хост (в бесплатной версии — с помощью rsync).

Переходим по ссылке для скачивания утилиты Xsibackup, вводим личные данные и обязательно работающий email — на него придет специальный SecretKey и скрипт для установки.

Все команды необходимо вводить на хосте под управлением ESXI, на котором будут делаться бэкапы.

Примечание. На ESXI должна быть включена служба SSH.

Подключаемся к консоли ESXI по ssh и вводим команды из письма для установки Xsibackup (повторяем данную процедуру на всех гипервизорах):

cd /vmfs/volumes/datastore1/xsi-dir 2>/dev/null || mkdir /vmfs/volumes/datastore1/xsi-dir && \
> cd /vmfs/volumes/datastore1/xsi-dir && \
> esxcli network firewall unload && \
> wget http://a.33hops.com/downloads/?key= -O xsibackup.zip && \
> unzip -o xsibackup.zip || cat xsibackup.zip && echo "" && \
> chmod -R 0700 xsibackup* bin && \
> rm -rf xsibackup.zip && \
> esxcli network firewall load
Connecting to a.33hops.com (188.165.2.135:80)
xsibackup.zip        100% |*************************************************************************************************|   546k  0:00:00 ETA
Archive:  xsibackup.zip
   creating: src/
  inflating: src/borg
  inflating: src/custimg
  inflating: src/esxbackup
  inflating: src/events
  inflating: src/onediff
  inflating: src/restore
  inflating: src/smartinfo
  inflating: src/xsitools
  inflating: EULA
  inflating: README.txt
  inflating: xsibackup
   creating: bin/
  inflating: bin/xsibackup-rsync

Создаем каталог для хранения резервных копий:

mkdir /vmfs/volumes/datastore2/backup

Проверим возможность создания бекапов локально:

./xsibackup --backup-point=/vmfs/volumes/datastore2/backup --backup-type=running --test-mode=true

#####################################################################################
#                                                                                   #
#  (c) XSIBACKUP-FREE 9.0.1 | Backup for (c) VMWARE ESXi Hypervisor by 33hops.com   #
#                                                                                   #
#####################################################################################

XSIBackup PID: 76601024                                            99.your-server.de
Sat, 04 Mar 2017 17:30:34 +0000                 IPv4: 31.42.119.138/255.255.255.224
VMware ESXi 5.5.0 build-3568722                   (c) Rsync 3.1.0 as opt. dependency

---------------------------------------------------------------------------------------------------------
Found --backup-point at [ /vmfs/volumes/datastore2/backup ]
---------------------------------------------------------------------------------------------------------
Getting list of all VMs...
---------------------------------------------------------------------------------------------------------
1      db1       [datastore1] db1/db1.vmx           otherLinux64Guest   vmx-08
2      web1      [datastore2] web1/web1.vmx         otherLinux64Guest   vmx-08
3      mercury   [datastore1] mercury/mercury.vmx   otherLinux64Guest   vmx-08
---------------------------------------------------------------------------------------------------------
VMs to backup:
---------------------------------------------------------------------------------------------------------
1      db1       [datastore1] db1/db1.vmx           otherLinux64Guest   vmx-08
2      web1      [datastore2] web1/web1.vmx         otherLinux64Guest   vmx-08
3      mercury   [datastore1] mercury/mercury.vmx   otherLinux64Guest   vmx-08
---------------------------------------------------------------------------------------------------------
Needed room: 81 Gb.
Available room: 1823 Gb.
---------------------------------------------------------------------------------------------------------
Excerpt
---------------------------------------------------------------------------------------------------------
Hot backup selected for VM: [db1], will not be switched off
---------------------------------------------------------------------------------------------------------
Test mode activated VMs will not be cloned, please remove --test-mode=true to allow backups
Excerpt
---------------------------------------------------------------------------------------------------------
Hot backup selected for VM: [web1], will not be switched off
---------------------------------------------------------------------------------------------------------
Test mode activated VMs will not be cloned, please remove --test-mode=true to allow backups
Excerpt
---------------------------------------------------------------------------------------------------------
Hot backup selected for VM: [mercury], will not be switched off
---------------------------------------------------------------------------------------------------------
Test mode activated VMs will not be cloned, please remove --test-mode=true to allow backups
---------------------------------------------------------------------------------------------------------
No errors detected in backup
---------------------------------------------------------------------------------------------------------
Backup finished
Tip: no chained backups scheduled, set --on-success and/or --on-error arguments to chain a backup
Killed

Тест успешен, для того чтобы сделать резервную копию всех запущенных виртуальных машин запускаем команду еще раз, но без опции --test-mode=true:

./xsibackup --backup-point=/vmfs/volumes/datastore2/backup --backup-type=running

Если же необходимо сделать бекап только одной виртуальной машины, то команда будет выглядеть так:

./xsibackup --backup-point=/vmfs/volumes/datastore2/backup --backup-type=custom --backup-vms=web1

Если планируем хранить резервные копии на другом хосте ESXI (или переносить виртуальные машины), то хосты необходимо «связать». Для этого нужно убедиться, что на гипервизоре в настройках файрвола включено правило «SSH Client» (открывает 22 порт для исходящих соединений), после чего в консоли выполнить:

./xsibackup --link-srv=31.42.119.138

#####################################################################################
#                                                                                   #
#  (c) XSIBACKUP-FREE 9.0.1 | Backup for (c) VMWARE ESXi Hypervisor by 33hops.com   #
#                                                                                   #
#####################################################################################

XSIBackup PID: 8542898                                           100.your-server.de
No RSA public key found, we will generate one...
The RSA key has been generated.
Enter the remote server root password when prompted.
The authenticity of host '31.42.119.138 (31.42.119.138)' can't be established.
RSA key fingerprint is SHA256:EH2yP2n6LTC63GfU9QewzEP9N8Gfhhoq2e7SRQpR8f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '31.42.119.138' (RSA) to the list of known hosts.
Password:
Password:
The RSA key has been added to the authorized_keys file at 31.42.119.138.
Rebooting local SSH service...
SSH login disabled
SSH login enabled
Rebooting remote SSH service...
SSH login disabled
SSH login enabled
Killed

Теперь можно выполнять резервное копирование виртуальных машин на удаленный хост, для этого используем следующую команду:

./xsibackup --backup-point=31.42.119.138:22:/vmfs/volumes/datastore2/backup --backup-type=running

Для настройки крона сначала нужно его установить командой:

./xsibackup --install-cron

#####################################################################################
#                                                                                   #
#  (c) XSIBACKUP-FREE 9.0.1 | Backup for (c) VMWARE ESXi Hypervisor by 33hops.com   #
#                                                                                   #
#####################################################################################

XSIBackup PID: 8544019                                           100.your-server.de
This command will install XSIBackup cron to your ESXi > 5.1 BOX
xsibackup-cron will be installed to the current working directory
You should cd to the desired directory before installing the cron
Do you wish to continue? (y/n) y
Removing cron info...
Adding new cron info...
The local cron service will be restarted
You might need to reboot the ESXi server for the changes to take effect...
cron service restarted

Подробнейшая инструкция по настройке периодичного резервного копирования находится тут, а полный список доступных опций и примеры их использования можно посмотреть здесь.

tweet Share