4 способа резервного копирования конфигурации хоста ESXi

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

Однако важно также защищать хосты, поскольку здоровые хосты ESXi важны для правильной работы ВМ. Рекомендуется также создавать резервную копию конфигурации ESXi, поскольку рабочая резервная копия хоста может помочь восстановить конфигурацию хоста за несколько минут, не прибегая к настройке сервера ESXi с нуля. Продолжайте чтение, чтобы узнать различные методы резервного копирования хоста ESXi.

Метод 1: Использование командной строки ESXi для резервного копирования хостов ESXi

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

Конфигурация ESXi автоматически сохраняется каждый час в файл /bootblank/state.tgz. Поэтому важно убедиться, что текущая конфигурация ESXi записана в файлы конфигурации ESXi прямо сейчас, чтобы убедиться, что все изменения, внесенные в конфигурацию ESXi с момента последнего автосохранения, сохранены. Для этого:Проверьте и синхронизируйте конфигурацию ESXi с постоянным хранилищем:
vim-cmd hostsvc/firmware/sync_config

  1. Проверьте и синхронизируйте конфигурацию ESXi с постоянным хранилищем:

    vim-cmd hostsvc/firmware/sync_config

  2. Сделайте резервную копию конфигурации ESXi после завершения синхронизации:

    vim-cmd hostsvc/firmware/backup_config

    В результате вы получите ссылку для загрузки архива configBundle.tgz с хоста ESXi.

    http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz

  3. Замените звездочку на IP-адрес вашего хоста ESXi. Файл архива, содержащий резервную копию конфигурации ESXi, сохраняется в каталоге /scratch/downloads на короткий период времени (несколько минут).

    Вы можете найти IP-адрес вашего хоста ESXi в прямом консольном интерфейсе ESXi или в командной строке с помощью команды:

    esxcli network ip interface ipv4 get

    IP-адрес хоста ESXi, использованный в текущем примере, – 192.168.101.208

  4. Загрузите архив резервной копии ESXi как можно скорее и сохраните его в надежном месте.

Как автоматизировать резервное копирование конфигурации ESXi в командной строке ESXi

Преимущество командного интерфейса – возможность автоматизации, и резервное копирование конфигурации ESXi не исключение. Давайте рассмотрим шаги для этого:

  1. Создайте каталог для хранения файлов резервных копий на вашем хранилище данных ESXi.

    mkdir /vmfs/volumes/datastore1/ESXi_backup

  2. vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  3. Добавьте следующие строки в скрипт:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

    find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz \;

  4. Сохраните файл и выйдите из vi:

    :wq

    ПРИМЕЧАНИЕ: Для большего удобства вы также можете включить имя хоста ESXi или IP-адрес в имя файла резервной копии. Это поможет избежать путаницы с несколькими хостами ESXi.

  5. Сделайте скрипт исполняемым:

    chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  6. Перейдите в каталог, где находится скрипт:

    cd /vmfs/volumes/datastore1/ESXi_backup/

  7. Запустите скрипт:

    ./esxi_backup.sh

  8. Проверьте, что файл резервной копии был создан:

    ls -al

  9. Убедитесь, что скрипт резервного копирования конфигурации ESXi запускается по расписанию (автоматически). Отредактируйте конфигурацию планировщика для этой цели:

    vi /var/spool/cron/crontabs/root

  10. Добавьте следующую строку, чтобы выполнять резервное копирование конфигурации ESXi каждый день в 02:10 утра:

    10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  11. Сохраните изменения в файле. Чтобы сохранить изменения в файле только для чтения, введите:

    :wq!

    В качестве альтернативы вы можете изменить права доступа к файлу перед редактированием:

    chmod +w /var/spool/cron/crontabs/root

После настройки конфигурация ESXi будет резервироваться автоматически в 02:10 каждую ночь в файл с именем ESXi_config_bakup_date_time.tgz.

Как восстановить конфигурацию ESXi в командной строке ESXi

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

Если вы собираетесь восстановить конфигурацию ESXi на хосте ESXi, который установлен с нуля (недавно установленном), вам нужно задать IP-адрес для сетевого интерфейса, используемого для сети управления ESXi, и включить доступ по SSH.

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

Чтобы восстановить конфигурацию ESXi:

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

    esxcli system maintenanceMode set --enable yes

    или

    vim-cmd hostsvc/maintenance_mode_enter

  2. Скопируйте архив, содержащий резервную копию конфигурации ESXi, в каталог на хосте ESXi с помощью клиента SCP, например, WinSCP. Давайте скопируем архив configBundle-xxxx.tgz с локальной машины в каталог /tmp/ на целевом сервере ESXi.
  3. Переименуйте файл configBundle.tgz перед тем, как выполнить команду для восстановления конфигурации ESXi. В противном случае вы получите сообщение об ошибке: “Файл /tmp/configBundle.tgz не найден“.

    Вы можете переименовать файл в оболочке ESXi, к которой вы подключились через SSH:

    mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz

  4. Восстановите конфигурацию ESXi:

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

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

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

    esxcli system maintenanceMode set --enable no

    или

    vim-cmd hostsvc/maintenance_mode_exit

Как изменить UUID для восстановления конфигурации ESXi

Вы можете использовать один из 2 способов для проверки UUID сервера ESXi:

  1. В интерфейсе командной строки ESXi:

    esxcfg-info -u

  2. В файле Manifest.txt внутри резервной копии конфигурации ESXi configBundle.tgz, созданной с помощью указанных выше команд.

Вы не можете изменить UUID сервера ESXi, поскольку идентификатор генерируется в зависимости от аппаратного обеспечения. Однако вы можете восстановить конфигурацию ESXi сервера A на сервер B после изменения UUID в файле Manifest.txt, сохраненном в архиве резервной копии конфигурации ESXi configBundle.tgz.

Теперь давайте рассмотрим, как изменить UUID для применения резервированной конфигурации на другой физический сервер. Сервер A – это сервер, конфигурация которого была создана, и Сервер B – сервер, на который будет применена конфигурация.

Этап 1

Проверьте UUID на хосте ESXi, на который вы хотите применить резервированную конфигурацию (сервер B). Это можно сделать как минимум двумя способами, но второй метод также позволяет проверить версию ESXi:

  1. Выполните esxcfg-info -u
  2. Резервное копирование конфигурации сервера ESXi B:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

  3. Скопируйте резервную копию в архиве во временный каталог и перейдите в этот каталог:

    cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp

    cd /tmp/

  4. Извлеките файлы из архива:

    tar zxvf configBundle.tgz

  5. Откройте файл Manifest.txt с помощью vi и проверьте значение UUID (вы увидите отдельную строку с UUID). Запишите UUID.

    vi Manifest.txt

    В нашем случае UUID – 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

  6. Вы можете удалить временные файлы в каталоге /tmp/:

    rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz

Этап 2

  1. Скопируйте файл резервной копии конфигурации configBundle.tgz с сервера ESXi A на сервер B, например, в каталог /tmp/ и перейдите в этот каталог.
  2. Распакуйте файлы из архива configBundle.tgz:

    tar zxvf configBundle.tgz

  3. Откройте файл Manifest.txt с помощью vi и обновите значение UUID сервера A на значение UUID сервера B:

    vi Manifest.txt

    В нашем случае мы изменяем 9EA94D56-7E39-96A8-AB45-DF31EF0971EC на 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

    Сохраните файл и выйдите из текстового редактора:

    :wq

  4. Переименуйте исходный файл configBundle.tgz в configBundle1.tgz, например (если имя файла резервной копии конфигурации ESXi отличается от configBundle.tgz, вы можете пропустить этот шаг):

    mv configBundle.tgz configBundle1.tgz

  5. Manifest.txt, state.tgz и файлы jumpstrt.gz архивируются в новый архив configBundle.tgz:

    tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz

  6. Переведите хост ESXi в режим обслуживания и восстановите конфигурацию:

    esxcli system maintenanceMode set --enable yes

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

Метод 2: Как создать резервную копию хоста ESXi с помощью vSphere CLI

Другой интерфейс командной строки, предоставленный VMware для управления хостами ESXi, – это vSphere CLI (не следует путать с VMware PowerCLI). Вы должны установить vSphere CLI на машину под управлением Linux или Windows для удаленного управления хостами ESXi. Perl необходим для установки vSphere CLI.

Преимущество использования vSphere CLI – удобство и мощь оболочки bash в Linux. Этот метод особенно удобен для ESXi 6.x. Если вы используете ESXi 8, выберите другие методы, объясненные в этой статье.

Установка и настройка vCLI

  1. Загрузите необходимую версию vSphere CLI для вашей операционной системы с веб-сайта VMware. В этом примере используется Ubuntu Linux.
  2. Перейдите в каталог, где находится загруженный файл, и извлеките файлы из архива:

    tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz

  3. Установите необходимые пакеты:

    apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential

    Официальное рекомендованное VMware решение – установить этот набор пакетов:

    apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

  4. Перейдите в каталог, где расположены извлеченные файлы, и запустите установщик:

    ./vmware-install.pl

  5. Прочтите и примите лицензионное соглашение. Если установщик попросит установить необходимые модули, введите y и установите модули.

  6. Некоторые модули необходимо установить вручную в нашем случае. Их можно установить, используя интерактивную оболочку Perl.

    Введите интерактивную оболочку Perl:

    perl -MCPAN -e shell

  7. Запустите команду для установки необходимого модуля Perl:

    install Devel::StackTrace

    Аналогично установите другие модули.

    ПРИМЕЧАНИЕ: В нашем случае один модуль не удалось установить в интерактивной оболочке Perl, но мы можем установить этот модуль с помощью команды в консоли Ubuntu:

    apt-get install libcrypt-ssleay-perl

  8. После установки модулей Perl повторно запустите установщик VMware vSphere CLI.
  9. Установка завершена успешно, и в этом случае вы увидите следующий экран:

  10. Теперь давайте попробуем использовать vSphere CLI и введите команду в консоли Linux, чтобы отобразить список устройств сервера ESXi (192.168.101.208 – IP-адрес сервера ESXi).

    esxcli --server 192.168.101.208 storage core device list

  11. Отпечаток SHA-1 сервера не доверенен, и соединение с хостом ESXi не удалось. Это означает, что вы должны определить отпечаток для безопасности. Давайте попробуем другую команду:

    esxcli --server 192.168.101.208 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    Имя пользователя и пароль будут запрошены в консоли в интерактивном режиме.

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

    esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    ПРИМЕЧАНИЕ: Это сделано по соображениям безопасности. Выполненные команды сохраняются в Linux, пока вы не выполните команду history -c для очистки истории. Если вам нужно избежать использования интерактивного режима и ввода логина и пароля вручную, вы можете сохранить сеанс ESXi в файл и использовать этот файл при выполнении команд. Сохранение сеансов безопасно, в отличие от ввода пароля в виде обычного текста в команде. Процесс сохранения сеансов объяснен ниже.

Сохранение отпечатка для подключения к хостам ESXi

Ввод отпечатка ESXi каждый раз для выполнения команды неудобен. К счастью, возможно сохранить отпечаток и далее выполнять команды с помощью vSphere CLI без определения отпечатка.

  1. Перейдите в каталог:

    cd /usr/lib/vmware-vcli/apps/general/

  2. /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint

    В нашем конкретном примере команда:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA

  3. Теперь вы можете выполнять команды в vSphere CLI без необходимости вводить отпечаток каждый раз:

    esxcli --server 192.168.101.208 system maintenanceMode get

Однако вам все еще нужно вводить имя пользователя и пароль. Тем не менее, вы можете настроить vSphere CLI на выполнение команд без необходимости вводить пароль каждый раз, как показано в разделах ниже.

Использование файла сеанса для подключения к хостам ESXi

Использование сохраненного файла сеанса – один из методов избежать ввода имени пользователя и пароля при запуске команды на удаленном хосте ESXi с помощью vSphere CLI.

  1. Создайте каталог для хранения файлов резервной копии конфигурации ESXi, например, /backup/

    mkdir /backup

  2. Перейдите в этот каталог:

    cd /usr/lib/vmware-vcli/apps/session

  3. Сохраните сеанс авторизованного хоста ESXi в файл с помощью сценария Perl с командой:

    perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555

    Где:

    savesessionfile /backup/192-168-101-208session – это имя созданного файла сеанса

    server 192.168.101.208 – это имя хоста ESXi, сеанс которого сохранен (этот хост ESXi используется в нескольких примерах)

    username root – это имя пользователя, который подключен к хосту ESXi

    password TestPass_555 – это пароль для пользователя, который подключен к хосту ESXi

Теперь вы можете выполнять команды без ввода пароля, но вы должны ввести ключ sessionfile (опцию) и определить путь к файлу сессии.

Например:

esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

Использование файла конфигурации для подключения к хостам ESXi

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

  1. Создайте файл конфигурации:

    vim /backup/vcli-config

  2. Введите учетные данные следующим образом:

    VI_USERNAME=root

    VI_PASSWORD=TestPass_555

  3. Сохраните файл.
  4. Запустите эту команду на удаленном сервере ESXi с помощью vSphere CLI:

    esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get

ПРИМЕЧАНИЕ: Учитывая, что учетные данные сохранены в виде обычного текста, этот метод не безопасен.

Использование хранилища учетных данных для подключения к хостам ESXi

A credential store is the xml file located in the user directory in the vmware subdirectory ~/.vmware/credstore/vicredentials.xml. The advantage of using the credentials store to run commands on remote ESXi hosts is that the password is not saved as plain text. As a result, this method provides higher security.

  1. Чтобы добавить учетные данные в хранилище учетных данных, выполните команду:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root

  2. Перечислите учетные данные, сохраненные в хранилище учетных данных, чтобы убедиться, что нужные учетные данные присутствуют:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl list

  3. Запустите команду на удаленном хосте ESXi без ввода пароля, используя хранилище учетных данных:

    # esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get

    Если вы используете не root-пользователя, файл учетных данных сохраняется в /home/user_name/.vmware/credstore/vicredentials.xml

На скриншоте ниже вы можете увидеть, как учетные данные сохраняются в файле хранилища учетных данных.

Используя vSphere CLI для резервного копирования конфигурации хоста ESXi

Теперь, когда вы настроили vSphere CLI на машине Ubuntu Linux, вы можете запускать команды и создавать резервную копию конфигурации ESXi:

  1. Перейдите в каталог /usr/bin/:

    cd /usr/bin

  2. Чтобы создать резервную копию конфигурации ESXi без ввода имени пользователя и пароля, используйте одну из следующих команд.
    • Для имени пользователя и пароля, сохраненных в хранилище учетных данных, используйте команду:

      vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

    • Или после сохранения сеанса в файл сеанса, используйте команду:

      vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

      ПРИМЕЧАНИЕ: Команды vicfg- устарели. Если vicfg не работает в вашем случае, используйте эквивалентные команды ESXCLI в интерфейсе командной строки при работе с хостами ESXi последних версий. См. команды для других методов резервного копирования конфигурации ESXi.

      Недостаток использования опции sessionfile – время ожидания 30 минут при бездействии после выполнения последней команды в интерфейсе командной строки vSphere CLI. После этого вам придется повторно аутентифицироваться и создать файл сеанса.

    • Если вы хотите создать резервную копию конфигурации ESXi при вводе пароля в интерактивном режиме, выполните команду:

      vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

Как автоматизировать резервное копирование конфигурации ESXi

Если у вас динамически изменяющаяся среда и конфигурация хостов ESXi часто меняется, ручное резервное копирование хостов ESXi может быть не практичным. В этом случае вы можете автоматизировать резервное копирование конфигурации ESXi, добавив команду резервного копирования или скрипт резервного копирования, содержащий несколько команд, в планировщик. Crontab – это планировщик в Linux.

  1. crontab -e

    ПРИМЕЧАНИЕ: Если вы впервые редактируете конфигурацию crontab, вы должны выбрать текстовый редактор по умолчанию, который будет использоваться для редактирования конфигурации crontab. В нашем примере мы используем /usr/bin/vim.basic для этой цели.

    Формат конфигурации crontab следующий:

    минуты часы день_месяца месяц день_недели команда 

  2. Давайте создадим резервную копию конфигурации хоста ESXi каждую ночь в 03:25 AM, добавив следующую строку в конфигурацию crontab:

    25 03 * * * /usr/bin/vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz

  3. Напишите конфигурацию планировщика crontab и выйдите из текстового редактора vim (который используется в этом примере):

    :wq

  4. Давайте подождем до 03:25 утра, чтобы проверить каталог, в который должны быть сохранены файлы резервных копий конфигурации ESXi:

    ls -al

    Как видите на скриншоте ниже, файл резервной копии конфигурации хоста ESXi был создан автоматически в 03:25.

Конфигурационная резервная копия ESXi теперь создается автоматически, что замечательно, но есть недостаток. Каждый раз, когда crontab запускает запланированную команду для создания резервной копии конфигурации ESXi, предыдущий файл tgz перезаписывается новым файлом tgz. Это может вызвать проблемы, если резервная копия с правильной конфигурацией ESXi, созданная позавчера, будет перезаписана файлом, созданным на следующий день и содержащим неправильную конфигурацию ESXi. Чтобы предотвратить эту проблему, вы должны создавать резервные копии конфигурации ESXi в разные файлы.

Давайте создадим простой скрипт для сохранения конфигурации ESXi каждый раз в отдельный файл с уникальным именем файла, содержащим дату и время создания файла резервной копии конфигурации ESXi в имени файла. Создание скрипта позволяет добавлять команды для резервного копирования нескольких хостов ESXi путем запуска одного скрипта.

  1. Создайте файл esxi_backup.sh в каталоге /backup/:

    vim /backup/esxi_backup.sh

  2. Добавьте строки в файл следующим образом:

    #!/bin/bash

    ESXI101_208_BACKUP_NAME=”192-168-101-208-$(date +’%Y%m%d_%H%M%S’)esxi-cfg.tgz”

    vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME

  3. Внесите изменения в файл и выйдите из текстового редактора vim:

    :wq

  4. Сделайте файл исполняемым:

    chmod +x /backup/esxi_backup.sh

  5. Измените конфигурацию планировщика:

    crontab -e

  6. Добавьте строку вот так:

    50 06 * * * /backup/esxi_backup.sh

    Эта строка конфигурации позволяет установить crontab для запуска скрипта резервного копирования конфигурации ESXi в 06:50 утра.

    Отключите предыдущую запланированную задачу, добавив символ # в начало строки.

    Сохраните конфигурацию.

  7. Дождитесь установленного времени, а затем проверьте, был ли создан архив резервной копии конфигурации ESXi.

Это простой скрипт, демонстрирующий идею автоматизации. Вы можете создавать сложные скрипты для резервного копирования нескольких хостов ESXi.

ПРИМЕЧАНИЕ: После каждой перезагрузки ESXi или 30 минут бездействия аутентификация для сеанса ESXi истекает. Имейте это в виду при создании скрипта для автоматического резервного копирования ESXi.

Как восстановить конфигурацию ESXi в vSphere CLI

Требования к восстановлению конфигурации ESXi с помощью vSphere CLI аналогичны требованиям для других методов. Для восстановления конфигурации ESXi убедитесь, что удаленный доступ через SSH включен, и известен IP-адрес сервера ESXi (рекомендуется использовать тот же IP-адрес, что и IP-адрес резервного копирования хоста ESXi).

Для восстановления конфигурации ESXi выполните команду:

vicfg-cfgbackup --server=IP_адрес_ESXi_хоста --username=root -l backup_file

В нашем конкретном примере команда выглядит так:

vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz

Если у целевого хоста ESXi, на котором вы хотите восстановить конфигурацию, есть UUID, отличающийся от UUID резервной копии сервера ESXi (UUID которого определен в файле Manifest.txt внутри резервной копии архива tgz), вы можете использовать ключ -f (force), чтобы переопределить UUID.

Вы можете проверить UUID запущенного хоста ESXi с помощью следующей команды:

esxcfg-info -u

ПРИМЕЧАНИЕ: Начиная с ESXi 7.0 U2, переопределение UUID не работает, если на хосте ESXi используется TPM (Trusted Platform Module).

Метод 3: Использование PowerCLI для создания резервных копий хостов ESXi

Пользователи, предпочитающие Windows PowerShell, могут использовать PowerCLI для управления vSphere и создания резервных копий конфигураций ESXi. PowerCLI представляет собой набор cmdlet PowerShell, и некоторые базовые команды PowerCLI объяснены в этом посте в блоге.

Чтобы использовать PowerCLI для создания резервной копии хоста ESXi, сначала вам нужно установить PowerCLI на вашу операционную систему:

  1. Запустите PowerCLI от имени администратора в Windows.
  2. Подключитесь к вашему серверу ESXi:

    Connect-VIServer IP_адрес_ESXi -пользователь имя_пользователя -пароль ваш_пароль

    В нашем случае мы используем команды:

    Connect-VIServer 192.168.101.208 -пользователь root -пароль TestPass_555

    Get-VMHostFirmware -vmhost 192.168.101.208 -Резервное копированиеConfiguration -ПутьНазначения "C:\резервное копирование хоста ESXi"

    • Если ваши хосты ESXi управляются сервером vCenter, вы можете сначала подключиться к vCenter, а затем резервное копирование конфигурации ESXi на ваших хостах в PowerCLI без необходимости аутентификации каждый раз перед резервным копированием конфигурации каждого хоста:

      Connect-VIServer 10.10.10.16

      Введите свой административный логин и пароль для доступа к серверу vCenter. Для этой цели появится всплывающее окно.

  3. Создайте резервную копию конфигурации ESXi каждого хоста:

    Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

Как восстановить конфигурацию ESXi в PowerCLI

  1. Запустите VMware PowerCLI от имени администратора.
  2. Подключитесь к хосту ESXi, на котором вы хотите восстановить конфигурацию (в нашем примере мы восстанавливаем конфигурацию на хосте ESXi с IP-адресом 192.168.101.208).
  3. Войдите в режим обслуживания хоста ESXi:

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. Убедитесь, что виртуальные машины, находящиеся на этом хосте ESXi, выключены или перемещены на другой хост ESXi перед восстановлением конфигурации ESXi. Обратите внимание, что после выполнения команды восстановления конфигурации хост ESXi будет автоматически перезагружен.
  5. Восстановите конфигурацию с помощью команды Set-VMHostFirmware restore:

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:\backup ESXi host\configBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

Версия, номер сборки и UUID хоста ESXi, на котором восстанавливается конфигурация, должны совпадать с версией, номером сборки и UUID хоста ESXi, резервную копию которого вы используете для восстановления конфигурации. Используйте ключ -force в команде, чтобы пропустить проверку UUID.

Метод 4: Ручное резервное копирование и восстановление конфигурации ESXi

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

Как вы помните из конфигурации crontab по умолчанию на хосте ESXi, сценарий /sbin/auto-backup.sh выполняется каждый час и при перезагрузке или выключении хоста ESXi. Этот сценарий предназначен для резервного копирования (сохранения) конфигурации ESXi, хранящейся в памяти, в файл /bootbank/state.tgz.

ПРИМЕЧАНИЕ: Файл /bootbank/state.tgz не должен быть зашифрован для использования этого метода.

Конфигурация ESXi сохраняется в оперативной памяти компьютера при работе сервера ESXi (соответствующий RAM-диск смонтирован в каталоге /etc/). При загрузке ESXi системные файлы извлекаются из архива /bootbank/state.tgz в каталог /etc/. Вы можете вручную скопировать файл /bootbank/state.tgz, если ваш хост ESXi работает, используя клиент SCP, например, WinSCP (удаленный доступ SSH должен быть включен). В качестве альтернативы, вы можете загрузиться с Live DVD и вручную скопировать файл state.tgz, если ваш хост ESXi незагружаем из-за, например, отказа оборудования.

Руководство по восстановлению вручную

  1. Подготовьте резервную копию, сделанную ранее с помощью оболочки ESXi, vSphere CLI или PowerCLI. В нашем случае имя файла configBundle-192-168-101-208.tgz. Вы можете скопировать файл на флеш-накопитель, например, и вставить его в USB-порт сервера ESXi, на котором необходимо восстановить конфигурацию системы.
  2. Загрузитесь с Live CD/DVD на машине, где установлен ESXi. Вы можете использовать установочный диск Ubuntu в качестве Live CD/DVD.
  3. Откройте консоль (терминал) в Linux.
  4. Список разделов:

    ls -al /dev/sd*

    fdisk -l | grep /dev/sda

    В этом случае нам нужен раздел /dev/sda5/, помеченный как Microsoft basic data.

    Разделы диска ESXi упоминались в блог-постах о Загрузке ESXi с USB-флэшки и Восстановлении пароля ESXi.

    В этом случае нас интересует раздел /dev/sda5.

  5. Создайте каталог, к которому будет смонтирован раздел /dev/sda5:

    mkdir /mnt/sda5

  6. Смонтируйте раздел диска в этот каталог:

    mount /dev/sda5 /mnt/sda5

  7. В каталоге /mnt/sda5 вы можете найти файл state.tgz, который содержит конфигурацию ESXi. Этот каталог (в котором хранится state.tgz) называется /bootblank/ при загрузке хоста ESXi.
  8. Скопируйте архив резервной копии конфигурации ESXi с USB-накопителя в каталог /tmp/ Ubuntu, загруженного с Live DVD. В нашем примере копируем:

    cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz

  9. Извлеките файлы из резервного архива:

    tar zxvf /tmp/configBundle.tgz

  10. Вы можете видеть, что файл state.tgz извлечен из архива:

    ls -al /tmp/

  11. Переименуйте оригинальный файл state.tgz, который находится на разделе /dev/sda5, смонтированном в /mnt/sda5/

    mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz

  12. Скопируйте файл state.tgz, который вы извлекли из архива резервной копии конфигурации ESXi (configBundle.tgz), в каталог /tmp/:

    cp /tmp/state.tgz /mnt/sda5/

  13. Отмонтируйте смонтированные разделы:

    umount /dev/sda5/

  14. Перезагрузите сервер. Извлеките Ubuntu Live DVD и загрузитесь с диска, на котором установлен ESXi.

    init 6

Теперь ваша конфигурация ESXi должна быть восстановлена.

Заключение

Использование интерфейса командной строки ESXi хорошо, потому что не требуется установка дополнительного программного обеспечения. Преимущества vSphere CLI включают возможность запуска команд удаленно с использованием машин с Linux и возможность автоматизации резервного копирования конфигурации ESXi. С другой стороны, пользователи Windows могут оценить PowerCLI.

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

Рекомендуется создавать резервные копии ваших виртуальных машин vSphere в дополнение к резервному копированию хостов ESXi. NAKIVO Backup & Replication – это универсальное решение для резервного копирования, которое может создавать резервные копии ваших виртуальных машин VMware, виртуальных машин Hyper-V, экземпляров Amazon EC2, а также физических серверов под управлением Linux и Windows.

Source:
https://www.nakivo.com/blog/back-up-and-restore-vmware-esxi-host-configuration-guide/