Как сделать резервную копию виртуальных машин на автономном хосте ESXi?


17

Автономный хост ESXi (4.1) без сервера vCenter.

Как сделать резервную копию виртуальных машин максимально быстрой и удобной для хранения?

Я знаю, что могу получить доступ к консоли ESXi и использовать стандартную cpкоманду Unix , но при этом происходит копирование целых файлов VMDK, а не только их фактически используемого пространства; Итак, для 30-ГБ VMDK, из которых используется только 1 ГБ, резервное копирование займет 30 полных ГБ пространства и время соответственно.

И да, я знаю о виртуальных дисках с тонким предоставлением, но они имеют тенденцию вести себя очень плохо при физическом копировании и / или увеличиваться до своего полного предоставленного размера; Кроме того, они не рекомендуются для реальной производительности виртуальной машины.

Я могу выключить виртуальные машины перед их резервным копированием (т.е. мне не нужны «живые» резервные копии); но мне нужен способ эффективно их копировать; и да, способ автоматизации выключения / запуска при создании резервной копии также поможет.

У меня есть только ESXi; нет Service Console, нет vCenter Server ... как лучше всего справиться с этой задачей? Кроме того, как насчет восстановления?

Ответы:


17

Мое предпочтительное решение для этого - просто экспортировать их в файл ovf или ova с помощью клиента vSphere или командной строки ovftool .

В клиенте vSphere убедитесь, что виртуальная машина выключена, затем выделите ее и перейдите в Файл-> Экспорт-> Экспорт шаблона OVF. Затем просто следуйте инструкциям.

Восстановление - это просто, просто сделайте обратное (я думаю, пункт меню «Развернуть шаблон OVF»).

Для создания тонкой резервной копии с помощью ovftool

ovftool -dm=thin  vi://<user>@<esxi-host>/<vm-name> <local-file>.ovf

Вы также можете проверить некоторые варианты на http://www.virtuallyghetto.com/ , я знаю, что они очень популярны, и я думаю, что есть несколько хороших вариантов для резервных копий, хотя я не смотрел ни на одну из них слишком недавно


Резервное копирование и восстановление OVF отлично работает в качестве опции для резервного копирования VMWare. В конце концов я намереваюсь автоматизировать использование cli ovftool, но отключение виртуальной машины внутри скрипта во время выполнения резервного копирования будет сложной задачей.
steampowered

OVF очень медленный. Если вы хотите избежать простоев, вы можете использовать веб-клиент для клонирования работающей виртуальной машины с оплатой vMotion, а затем выключить и сделать резервную копию клона. Нет простоев.
steampowered

5

Я не знаю, подходит ли это вам, но VM Explorer отлично выполняет горячее или холодное резервное копирование виртуальных машин. Я считаю, что с ESXi 4.1 VM Explorer позволяет вам выполнять резервное копирование гостевой виртуальной машины с одного хоста на другой.


Мне придется взглянуть на это больше, но с самого начала я вижу что-то, что мне нравится - лицензию на установку.
Чаддада

Базовая версия бесплатна
Мэтью Локк

Приятно отметить, что это больше не бесплатно, самый низкий уровень - «Профессионал» за 699 ​​долларов США
Дуглас Гаскелл

4

В итоге я написал сценарий, который копирует файлы конфигурации виртуальной машины и использует ее 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"

Это требует выключения виртуальной машины и отсутствия активных снимков.


Привет, а как насчет толстых ленивых?
ровшанго

Отличный сценарий @Massimo, но мне пришлось добавить двойные кавычки в назначение vmx, чтобы избежать синтаксической ошибки базового имени: vmx = $ (базовое имя "$ (/ bin / ls $ 1 / *. Vmx)"). Но теперь, если путь $ 1 содержит пробелы, он падает, потому что $ 1 не указан в кавычках. Я не мог избавиться от этой проблемы. Любая идея?
Blazeag

4

Я бы попытался использовать проверенное решение, а не свернуть свое собственное. Снижение затрат, времени и рисков с готовностью окупится, даже если вы выберете решение, которое не является бесплатным. Все эти проблемы, которые вас беспокоят, решаются в любом современном решении для резервного копирования ESXi.

Решением, которое клиент использует в своей среде ESXi с удачей, является Veeam. Существует даже бесплатная версия, которая может работать для ваших нужд: https://www.veeam.com/virtual-machine-backup-solution-free.html


1
Бесплатная версия все еще нуждается в лицензировании ESXi.
Сверхразум

@ Overmind Ты абсолютно прав. Я упустил из виду, что он не работает (возможно, по иронии судьбы) с бесплатной версией vSphere Hypervisor.
Джош Ричардс

2

Ghetto VCB может выполнять резервное копирование во время работы машины. В качестве места вы можете использовать файловую систему дедупликации + сжатия, например, lessfs на сервере резервного копирования.


1

XSIBackup - это сервис ESXi, который работает в операционной системе гипервизора ESXi и занимает минимальную площадь. На самом деле ваши пользователи не заметят, что в фоновом режиме происходит резервное копирование.

Он предлагает два разных инструмента: XSIBackup-Free и XSIBackup-Pro.

XSIBackup-Free предлагает все функции, присутствующие в версии Pro, такие как:

  • Горячие резервные копии
  • Планирование Cron
  • Мгновенное дифференциальное резервное копирование (OneDiff)
  • Встроенная дедупликация на уровне блоков плюс сжатие в локальные хранилища данных и на серверы Linux (XSITools).

Версия Pro предлагает все вышеперечисленное, а также расширенные инструменты, которые ускорят передачу данных (XSIDiff), сертификацию резервного копирования с помощью контрольной суммы, методы быстрого сравнения файлов и графический интерфейс пользователя SSH (графический интерфейс пользователя), который позволяет настраивать все параметры из мастера, ускорение настройки заданий резервного копирования.

https://33hops.com/xsibackup-pro-vmware-esxi-backup.html


0

Я тоже экспортирую в формат OVF. Это нормально, потому что сжимает изображение на лету с помощью gzip.

Но лицензии ушли, потому что при импорте файла OVF в ESXI создается машина с новым оборудованием.

Решение:

Я делаю резервную копию (скачиваю) папку с файлами виртуальной машины без большого образа и сжимаю их.

Папка ovf и сжатая копия файлов виртуального образа (без большого образа) находятся в одной папке.

Восстановление:

-> Импорт OVF в ESXI и загрузка несжатого конфига (из папки с резервными копиями файлов) -> Виртуальная машина снова в порядке

исмаил


0

cpio Можно копировать разреженные файлы, сохраняя в них «дыры».


AFAIK, не было никакого инструмента, который мог бы обрабатывать файлы sparse.vmdk изначально, кроме vmkfstools, который ограничен копированием файлов в локальной файловой системе. Вот почему мы создали (c) XSIDiff как часть нашего набора инструментов для ESXi. Он копирует только используемые блоки, как это делает vmkfstools, но вы можете копировать данные через SSH, а также как приложение клиент / сервер TCP / IP. Вы можете скачать бесплатную рабочую версию здесь: 33hops.com/download-xsidiff-trial.html
Дэниел Дж.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.