Автономный хост ESXi (4.1) без сервера vCenter.
Как сделать резервную копию виртуальных машин как можно быстрее и удобнее для хранения?
Я знаю, что могу получить доступ к консоли ESXi и использовать стандартный Unix cp
команда, но это приводит к копированию всех файлов VMDK, а не только их фактически используемого пространства; Таким образом, для VMDK размером 30 ГБ, из которого используется только 1 ГБ, резервное копирование займет 30 полных ГБ пространства и время соответственно.
И да, я знаю о виртуальных дисках с тонким предоставлением, но они, как правило, ведут себя очень плохо при физическом копировании и / или увеличении до полного выделенного размера; Кроме того, они не рекомендуются для реальной производительности виртуальных машин.
Я могу выключить виртуальные машины перед их резервным копированием (т.е. мне не нужны «живые» резервные копии); но мне нужен способ эффективно копировать их; и да, способ автоматизировать выключение / запуск при резервном копировании тоже может помочь.
У меня только ESXi; нет Service Console, нет vCenter Server ... как лучше всего справиться с этой задачей? А как насчет восстановления?
Я предпочитаю просто экспортировать их в файл ovf или ova с помощью клиента vSphere или командная строка ovftool.
В vSphere Client убедитесь, что виртуальная машина выключена, затем выделите ее и перейдите в меню File-> Export-> Export OVF Template. Тогда просто следуйте подсказкам.
Восстановление - это проще простого, просто сделайте наоборот (я думаю, пункт меню - «Развернуть шаблон OVF»).
Чтобы создать тонкую резервную копию с помощью ovftool
ovftool -dm=thin vi://<user>@<esxi-host>/<vm-name> <local-file>.ovf
Вы также можете проверить некоторые варианты на http://www.virtuallyghetto.com/, Я знаю, что они очень популярны, и я думаю, что есть несколько хороших вариантов для резервного копирования, хотя я не просматривал ни одного из них в последнее время.
Я не знаю, подходит ли это вам, но VM Explorer отлично справляется с горячим или холодным резервным копированием виртуальных машин. Я считаю, что с помощью ESXi 4.1 VM Explorer позволяет выполнять резервное копирование гостевых виртуальных машин с одного хоста на другой.
В итоге я написал сценарий, который копирует файлы конфигурации виртуальной машины и использует vmkfstools -d
для клонирования VMDK с сохранением тонкой подготовки.
Для справки:
#!/bin/sh
if [ $# != 2 ]; then
echo "Usage: $(basename $0) <SOURCE VM PATH> <DESTINATION PATH>"
echo "Example: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
exit
fi
vmx=$(basename $(/bin/ls $1/*.vmx))
name=$(grep displayName $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmdks=$(grep vmdk $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
echo "Started copying VM $name"
vmdir=$(basename $1)
destpath="$2/$vmdir"
echo "Source path: $1"
echo "Destination path: $destpath"
echo "Creating destination path $destpath"
/bin/mkdir -p $destpath
echo "Copying configuration files:"
echo $vmx
/bin/cp $1/$vmx $destpath
echo $vmxf
/bin/cp $1/$vmxf $destpath
echo $nvram
/bin/cp $1/$nvram $destpath
echo "Copying virtual disks:"
for vmdk in $vmdks;
do
echo $vmdk
/sbin/vmkfstools -d thin -i $1/$vmdk $destpath/$vmdk
done
echo "Completed copying VM $name"
Это требует, чтобы виртуальная машина была выключена и не имела активных снимков.
Я бы попытался использовать какое-то проверенное решение, а не кататься самостоятельно. Сокращение хлопот, времени и рисков легко окупится, даже если вы выберете платное решение. Все эти проблемы, которые вас беспокоят, решаются в любом современном решении для резервного копирования ESXi.
Решение, которое клиент использует в своей среде ESXi, если ему повезет, - это Veeam. Есть даже бесплатная версия, которая может вам подойти: https://www.veeam.com/virtual-machine-backup-solution-free.html
Гетто ВКБ может выполнять резервное копирование во время работы машины. Для пространства вы можете использовать файловую систему дедупликации + сжатия, например lessfs на резервном сервере.
XSIBackup - это служба ESXi, которая работает в ОС гипервизора ESXi и занимает мало места. На самом деле ваши пользователи не заметят, что в фоновом режиме происходит резервное копирование.
Он предлагает два разных инструмента: XSIBackup-Free и XSIBackup-Pro.
XSIBackup-Бесплатно предлагает все функции, присутствующие в версии Pro, такие как:
Версия Pro предлагает все вышеперечисленное, а также расширенные инструменты, которые ускорят передачу данных (XSIDiff), сертификацию резервного копирования с помощью контрольной суммы, методы быстрого сравнения файлов и графический пользовательский интерфейс SSH (графический интерфейс пользователя), который позволяет настраивать все параметры с помощью мастера, ускорение настройки заданий резервного копирования.
Я тоже экспортирую в формат OVF. Это нормально, потому что он сжимает изображение на лету с помощью gzip.
Но лицензий больше нет, потому что при импорте файла OVF в ESXI создается машина с новым оборудованием.
Решение:
Я создаю резервную копию (скачиваю) файловую папку виртуальной машины без большого образа и сжимаю их.
И папка ovf, и сжатая копия файлов виртуального образа (без большого образа) находятся в одной папке.
Восстановление:
-> Импорт OVF в ESXI и загрузка несжатой конфигурации (из резервной папки с файлами) -> Виртуальная машина снова в порядке
Исмаил
cpio
может копировать разреженные файлы, сохраняя в них «дыры».