Резервное копирование виртуальных машин ESXI с помощью Xsibackup
Apr 3, 2017 13:56 · 868 words · 5 minute read
Возможности резервного копирования виртуальных машин на гипервизоре под управлением 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
Подробнейшая инструкция по настройке периодичного резервного копирования находится тут, а полный список доступных опций и примеры их использования можно посмотреть здесь.