• Vmware копирование виртуальной машины. Резервное копирование виртуальных машин VMware ESXi

    03.08.2023

    «Есть системные администраторы, которые не делают резервное копирование, и есть те, которые уже делают резервное копирование».
    (с) Из этих ваших интернетов.

    Добрый день.

    В данной статье речь пойдет о таком необходимом и насущном вопросе в системном администрировании, как средства резервного копирования для виртуальных машин (ВМ) . Данную статью можно справедливо считать логическим продолжением пары предыдущих, где рассматривались процессы развертывания систем гипервизоров на базе продуктов VMware и Microsoft соответственно. На этот раз разговор о том, как настроить сервер, который будет отвечать за создание и хранение резервных копий виртуальных машин платформ vSphere ESXi и Hyper-V.
    Для обоих вариантов основой будет служить бесплатная версия программы резервного копирования Veeam Backup & Replication (далее Veeam B&R) . В качестве «сервера бэкапов» в моем случае был выбран обычный ПК с ОС Windows 7 (64 бит) . Про разрядность ОС в скобках упомянуто не случайно - с некоторой версии (вероятно с 7-й или ранее) Veeam B&R поставляется как 64-битное приложение, отказавшись от 32-разрядных систем для сервера Veeam Backup & Replication.
    Полную информацию со списком поддерживаемых версий ОС сервера можно найти в справочнике к свежему релизу (на момент написания статьи - v9) , который в свою очередь всегда можно найти на странице FAQ Veeam.

    Желая получить бюджетный вариант проекта и максимально возможный выигрыш в стоимости, насколько это возможно в рамках соблюдения лицензионных соглашений, будем использовать бесплатную версию пакета Veeam Backup & Replication. Это в свою очередь несколько ограничит рабочий функционал пакета. В частности в бесплатной версии нет доступа к планировщику заданий и, например — режима инкрементного копирования (только цельные полные копии ВМ, вместо частичных — по изменениям между версиями бэкапов) . Если без второго худо-бедно можно жить, хотя и с оговорками, то в первом случае мы в качестве альтернативы воспользуемся встроенным планировщиком Windows.
    Запускать же наш планировщик будет задания, основанные на исполняемых сценариях Windows Powershell, для которых в дистрибутиве Veeam B&R (начиная с версии 8 +update 3) имеются необходимые командлеты, что очень хорошо.

    Если вы будете работать с гипервизором ESXI 6-й версии (как в данной статье) , то поверх установленного Veeam B&R v8 должно быть установлено обновление kb2068 или более поздняя версия самой программы — в противном случае вы не сможете подключиться к ESXI (ошибка Failed to login to «SERVER_IP» by SOAP, port 443, user «root», proxy srv: port:0 Unknown API version format: «dev») .

    Резервное копирование ВМ VMware vSphere ESXi

    Полагаю описывать процесс установки Veeam Backup & Replication на будущий сервер бэкапов нет необходимости - он мало отличается от большинства windows-инсталляторов, если не считать большой длительности из-за установки всех необходимых компонентов, поэтому сразу приступим к обзору пакета от Veeam.

    Установка, настройка и проверка работы Veeam Backup & Replication

    После установки, запускаем Veeam B&R – для запуска требуются права администратора.

    Рис. 01

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

    Add Server – VMware vSphere .

    Рис. 02

    Следующие шаги демонстрируют процесс добавления нового сервера ESXi, помимо IP-адреса, большей частью это заведение аккаунта администратора сервера (Credentials) .

    Рис. 03

    На следующей вкладке добавляем сам аккаунт администратора ESXi (root)

    Рис. 04
    Сервер добавлен.

    Рис. 05

    По завершении добавления, в ноде «VMware vSphere», в списке серверов, мы увидим наш новый гипервизор. Кликнув на его имени, можно увидеть список размещенных на сервере виртуальных машин и их краткое описание.

    Рис. 06

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

    Рис. 07

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

    Рис. 08

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

    Рис. 09

    По завершении процесса в назначенном каталоге будет записан архив с резервной копией нашей ВМ (файл с расширением *.vbk) .

    Скорость процесса во многом зависит как от размера файловой системы ВМ (занимаемое место на диске) , характеристик бэкап-сервера и гипервизора (дисковая система, скорость сетевого интерфейса) , так и от архитектуры сети, через которую данная операция выполняется.
    В моем примере диски SATA-II и гигабитные сетевые контроллеры, как на бэкап-сервере так и на гипервизоре, между ними коммутатор — также с портами на 1GB/s, сетевые патчкорды небольшой длины и обжаты соответственно под работу на данном стандарте пропускной способности (аналог «стоечной» кроссировки соединений) .
    Помимо прочего, могу порекомендовать на все ВМ работающие на продуктах VMware, устанавливать в гостевых ОС пакет VMware Tools для оптимизации работы всех взаимосвязанных служб и утилит внутри инфраструктуры VMware.
    Идем далее.

    Создание задания для планировщика в Windows PowerShell

    После того, как мы убедились, что в ручном режиме нет никаких затруднений, приступаем к добавлению задания в планировщик заданий Windows. Но перед этим, создадим собственно сам исполняемый объект, который будет нашим заданием - сценарий powershell.
    Можете создать сценарий с нуля, а можете воспользоваться готовым, который можно позаимствовать в блоге (он же на русском языке) одного из разработчиков из компании Veeam. Из свежих рекомендаций - версия powershell должна быть начиная с 3-й, дабы избежать вероятных проблем в работе командлетов со старой версией (если надо, то обновите перед началом творческих изысканий) . Узнать текущую версию можно набрав команду в консоли powershell:

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

    Ниже можно увидеть, как выглядит мой сценарий после изменений (файл с именем VeeamZIP2.ps1) . Измененные поля с моими значениями подсвечены красным цветом.

    # Author: Vladimir Eremin # Created Date: 3/24/2015 # http://forums.veeam.com/member31097.html # ################################################################## # User Defined Variables ################################################################## # Names of VMs to backup separated by semicolon (Mandatory) # example from V. Eremin: # $VMNames = "VM1", "VM2", "VM3" $VMNames = "win_xp1", "zabbix" # Name of vCenter or standalone host VMs to backup reside on (Mandatory) $HostName = "192.168.55.100" # Directory that VM backups should go to (Mandatory; for instance, C:\Backup) $Directory = "d:\backup\arch\veeam-esxi\" # Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme) $CompressionLevel = "5" # Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False) $EnableQuiescence = $True # Protect resulting backup with encryption key (Optional; $True/$False) $EnableEncryption = $False # Encryption Key (Optional; path to a secure string) $EncryptionKey = "" # Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time. # Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month) $Retention = "In3days" ################################################################## # Notification Settings ################################################################## # Enable notification (Optional) $EnableNotification = $False # Email SMTP server $SMTPServer = "" # Email FROM $EmailFrom = "" # Email TO $EmailTo = "" # Email subject $EmailSubject = "" ################################################################## # Email formatting ################################################################## $style = "" ################################################################## # End User Defined Variables ################################################################## #################### DO NOT MODIFY PAST THIS LINE ################ Asnp VeeamPSSnapin $Server = Get-VBRServer -name $HostName $MesssagyBody = @() foreach ($VMName in $VMNames) { $VM = Find-VBRViEntity -Name $VMName -Server $Server If ($EnableEncryption) { $EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString) $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey } Else { $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention } If ($EnableNotification) { $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords $FailedSessions = $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"} if ($FailedSessions -ne $Null) { $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}}) } Else { $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}}) } } } If ($EnableNotification) { $Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo $Message.Subject = $EmailSubject $Message.IsBodyHTML = $True $message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String $SMTP = New-Object Net.Mail.SmtpClient($SMTPServer) $SMTP.Send($Message) }

    Как видно из примера выше, я изменял только несколько полей:

    $VMNames = "win_xp1", "zabbix"

    имена виртуальных машин из списка в Veeam B&R

    $HostName = "192.168.55.100"

    IP-адрес гипервизора ESXi

    $Directory = "d:\backup\arch\veeam-esxi\"

    каталог для хранения архивов образов виртуальных машин

    $EnableEncryption = $False

    отключение шифрования архивов

    $Retention = "In3days"

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

    Тут вы можете выставить свое значение. — возможные варианты перечислены в комментариях сценария.

    $EnableNotification = $False

    Здесь я отключил уведомления на e-mail т. к. пока не планировал такую функцию для себя. При желании вы можете настроить это, если потребуется.

    Когда все опции определены, необходимо проверить работу нашего сценария.
    Запустите консоль CMD от имени администратора и выполните команду:

    Powershell –file “c:\bin\VeeamZIP\vmware\VeeamZIP2.ps1”

    Если все настроено правильно, вы увидите выполнение сценария:

    Рис. 10

    Рис. 11

    По завершении данного шага приступаем к следующему этапу.

    Добавление задания в планировщик задач Windows

    Запускаем от имена администратора «Планировщик заданий Windows».
    Правой кнопкой мышки кликаем на папке «Библиотека планировщика заданий» и выбираем «Создать простую задачу». Даем нашей задаче имя: «VeeamZIP-test» и задаем свойства новой задачи.

    Рис. 12

    Опишем характер задачи при необходимости

    Рис. 13

    Установим график для новой задачи

    Рис. 14

    Зададим действия, которые надо выполнить для задачи.

    Рис. 15

    Обратите внимание на данный шаг, а именно на то, как распределены команда и ее аргументы по форме:
    — в моем случае планировщик согласился выполнять мой сценарий только при таком методе заполнения полей (Отдельно 2 строки: «Программа…» и «Добавить аргументы…») .

    Рис. 16

    Рис. 17

    Рис. 18

    Рис. 19

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

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

    Рис. 20

    Должно отработать также, как в предыдущем примере, за одним отличием - процесс будет запущен в фоне, без запуска каких-либо окон на экране.
    По этой причине, отслеживать его удачный запуск можно несколькими путями, среди которых:;
    — создание в хранилище нового файла-архива образа ВМ;
    — в целях отладки - записи событий в журнале нашего задания.

    Ниже показан характерный пик активности на интерфейсе lan-pci во время загрузки образов ВМ с ESXi на сервер Veeam B&R:

    Рис. 21

    Записанные архивы образов ВМ в каталоге назначения (хранилище резервных копий) .

    Рис. 22

    Осталось убедиться, что резервное копирование работает как в ручном режиме так и по назначенному графику.

    Хотелось бы несколько слов сказать касательно типов лицензий.

    Для функционирования вышеописанного метода резервного копирования необходимо соблюдения следующих условий по используемому ПО:
    ОС бэкап-сервера - Windows 7 x64 sp1/ Server 2008R2 / 2012 или новее;
    Veeam Backup & Replication (Free, не ниже v8 +обязательная установка последних обновлений, но не ниже upd v.3) ;
    VMware ESXi 6 (вполне возможно будет работать с v5.5) Essential Kit или выше (более расширенная лицензия) . Бесплатная (ESXi Freeware) версия блокирует возможность создавать бэкапы ВМ.

    По состоянию на первую половину 2016 года, стоимость лицензий при вышеприведенной схеме будет в пределах 45 т. руб. (ESXi Essential Kit x 3 servers) + 10 т. руб. на Windows 7 (8) .
    По поводу ESXi можно отдельно заметить, что лицензия Essential Kit позволит получить доступ к функционированию механизма резервного копирования цельных копий виртуальных машин. В случае наличия финансовой возможности расширить лицензию, скажем до Enterprise, для использования откроется режим частичного копирования (инкрементная схема и еще ряд других полезных и интересных опций) .
    Этот режим конечно еще более оптимален, если не смотреть на итоговую смету. Более того, если есть средства на полные корпоративные пакеты VMware ESXi, то тут уже видимо можно вести речь про закупку полной коммерческой версии для Veeam Backup & Replication, что уже откроет дорогу к использованию всех опций данного ПО, включая планировщик. Нетрудно заметить, что такой вариант заставляет задуматься о целесообразности использовать описанную в статье технику работы с бэкапами и очевидно, приведен для общего ориентирования по теме.
    В случае, если лишних финансов на расширенные лицензии у вас не наблюдается, то полагаю использование описанной в статье связки выглядит более чем оптимально и бюджетно.

    На этом пожалуй завершу первую часть статьи посвященной резервному копированию виртуальных машин с гипервизора VMware ESXi 6 в хранилище сервера Veeam Backup & Replication v8. Во второй части будет рассмотрена настройка бэкап-сервера для работы с виртуальными машинами на базе Hyper-V.

    Существует отличный бесплатный скрипт для резервного копирования виртуальных машин на VMWare ESXi сервере, причем он работает на free версии ESXi 4 и 5 версий без установки всяких дополнительных приблуд типа VMA и т.п. Проблема только в том, что инструкция там не совсем точная, поэтому я долго возился с этим скриптом, чтобы он все-таки заработал именно в автоматическом режиме…

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

    Сначала качаем скрипт по ссылке выше и заливаем на сервер, заливать нужно прямо в архиве! Проще всего это сделать через vSphere Client. У меня на сервере два диска — на одном работают машины, а на другом лежат всякие iso-образы и сами бэкапы. Называются диски соответственно datastore1 и datastore2. Все бэкапы, скрипт и конфиги лежат в папке backup. Еще обратите внимание, что названия файлов и папок регистрозависимые, поэтому если папка называется backup , а вы пишите в скрипте Backup , то работать не будет!

    1. Заливаем архив со скриптом сюда /vmfs/volumes/datastore2
    2. Дальше в SSH cd /vmfs/volumes/datastore2 — переходим в директорию со скриптом
    3. Распаковываем скрипт из архива tar -zxvf имя_файла_архива.tar.gz
    4. Через vSphere переименуйте распакованную папку в нечто попроще, например просто backup
    5. Теперь зайдем в эту папку — cd backup
    6. Создадим внутри нее папку для хранения индивидуальных конфигов mkdir BackupConfig
    7. Теперь в BackupConfig закинем нужные индивидуальные конфиги для машин, если они не нужны и все машины надо бэкапить с одинаковыми настройками, можно оставить ее пустой
    8. Поправить через редактор vi переменные в конфигурационном файле, главное это пути бэкапа, т.е. первую строку меняем на такую: VM_BACKUP_VOLUME=/vmfs/volumes/datastore2/backup , ну а далее сами смотрите что вам еще нужно — vi ghettoVCB.conf
    9. Создать скрипт StartBackup.sh (2 строки) — vi StartBackup.sh
      2ю строку, где вызов самого скрипта, можете переделать под себя
      cd /vmfs/volumes/datastore2/backup

      ./ghettoVCB.sh -a -g ./ghettoVCB.conf -c BackupConfig -l ghettoVCB.log
    10. Выполнить chmod +x ghettoVCB.sh
    11. Выполнить chmod +x StartBackup.sh

    1 этап завершен! Теперь если запустить StartBackup.sh , то начнется бэкап. На время отладки можете поменять 2ю строку на что-то типа вот этого ./ghettoVCB.sh -a -g ./ghettoVCB.conf -c BackupConfig -l ghettoVCB.log -d dryrun — это позволит запустить скрипт и отследить ход выполнения без самого копирования дисков. Чтобы резервное копирование проводилось более эффективно и быстро, рекомендую в настройках выставить тип диска thin .

    Конфигурирование Cron (для автоматического запуска скрипта)

    1. Дать разрешение на запись в файл chmod +w
    2. Добавляем через vi строку в /var/spool/cron/crontabs/root
      15 0 */3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
      Запуск в 00:15 ночи каждые три дня. У меня часовой пояс +4 Москва, т.е. на самом деле скрипт запускается в 4:15 утра, это будет видно по дате изменения лога через vSphere. Само собой время и периодичность можете выбрать другие.
    3. Теперь нужно выполнить две команды, чтобы перезапустить cron
      kill $(cat /var/run/crond.pid)
      crond
    4. Добавить с помощью vi 3 строки в самый конец файла /etc/rc.local
      Это нужно, потому что после перезагрузки сервера содержимое файла из 2го пункта с запуском нашего скрипта будет восстановлено до предыдущего состояния, поэтому в rc.local указываем, что после перезагрузки нужно выполнить следующие команды — остановка cron, добавление строки для автоматического запуска скрипта и запуск cron.
      /bin/kill $(cat /var/run/crond.pid)

      /bin/echo «15 0 */3 * * /vmfs/volumes/datastore2/backup/StartBackup.sh» >> /var/spool/cron/crontabs/root
      crond
    5. Теперь выполним выполнить команду /sbin/auto-backup.sh , чтобы удостовериться, что все наши изменения сохранились.

    Небольшое пояснение — почему нужно создавать скрипт StartBackup.sh , а не просто взять и его содержимое поместить в /var/spool/cron/crontabs/root ? Существует какое-то ограничение на размер этого файла и часть строк в нем просто не будет работать, хотя можете попробовать сделать и так, сначала у меня работало, но потом, видимо, вышли какие-то патчи и перестало. Более того, это просто удобнее — если потребуется изменить расписание резервного копирования, то вы просто правите файл StartBackup.sh и не нужно танцев с бубном вокруг cron с его перезапуском и внесением тех же изменений в /etc/rc.local .

    PS: Время идет, все меняется, сам скрипт меняется, ESXi5 уже вышел, так что где-то, что-то может уже и не работать 🙂

    Приложение: Синтаксис cron

    Команда cron выглядит вот так:

    1 2 3 4 5 /vmfs/volumes/datastore2/backup/StartBackup.sh

    Где,
    1: Минуты (0-59)
    2: Часы (0-23)
    3: Дни (0-31)
    4: Месяцы (0-12 )
    5: День недели (0-7 )

    Несколько примеров:

    1. Запуск в 5 минут первого ночи, каждый день
      5 0 * * * /vmfs/volumes/datastore2/backup/StartBackup.sh
    2. Запуск в 2:15 каждый первый день месяца
      15 14 1 * * /vmfs/volumes/datastore2/backup/StartBackup.sh
    3. Запуск в 22:00 каждый рабочий день
      0 22 * * 1-5 /vmfs/volumes/datastore2/backup/StartBackup.sh
    4. Запуск в 23 минуты после полуночи и далее каждые два часа (2:23, 4:23… и т.д.), каждый третий день
      23 0-23/2 * * */3 /vmfs/volumes/datastore2/backup/StartBackup.sh

    Бесплатный backup (резервное копирование) виртуальных машин на базе VMware ESXi

    Для VMware ESXi вопрос резервного копирования виртуальных машин стоит особо остро. Дополнительное бесплатное ПО неудобно в использовании из-за ограниченного функционала. Поэтому наш backup будет основан на бесплатном скрипте — ghettoVCB . Это самый лучший вариант существующих скриптов, хотя у него такое забавное название и всего проекта в целом — www.virtuallyghetto.com, автор William Lam . Его алгоритм — создание снапшота и клонирование VM.

    Для настройки полноценной схемы резервного копирования нам потребуется:

    • NFS сервер для хранения файлов;
    • подключение по SSH к ESXi;
    • скрипт ghettoVCB.sh добавляется на сервер ESXi (в корень или папку будущего бекапа). Это делается через SFTP любым удобным для вас способом, например, FileZilla;
    • даем права на выполнение скопированного скрипта;

    Теперь более подробно остановимся на каждом из пунктов. Для повышения быстродействия и отказоустойчивости файлового сервера/сервера резервного копирования лучше использовать RAID10. Предпочтительны в данном случае являются ОС Linux (Debian, Ubuntu, «удобная вам») и файловая система XFS , т.к. в такой конфигурации скорость записи (основной приоритет для быстрого бекапа) будет выше.

    Уже имеется у нас, но также можно все выполнить и в vSphere client : Configuration > Software > Security Profile > Properties… > Remote Tech Support (SSH) > Options… > Start или Stop.

    Переходим к конфигурации скрипта ghettoVCB.sh , основные параметры, которые нам понадобятся:

    VM_BACKUP_VOLUME - путь к папке бэкапов, в моём случае /vmfs/volumes/datastore1/backup
    DISK_BACKUP_FORMAT - формат диска, thin для бэкапов подходит лучше всего
    VM_BACKUP_ROTATION_COUNT - количество хранимых бэкапов (для каждой виртуальной машины), у меня 3
    ADAPTER_FORMAT - тип адаптера, в моем случае — lsilogic

    Остальные параметры отвечают за копирование файлов по сети и e-mail уведомления. Подробнее параметры конфигурации описаны на сайте разработчика.!

    Если необходимо копировать не все виртуальные машины, то создается файл со списком VM, включенных в бекап. Создаем такой файл в vi:

    • переходим в папку со скриптом — cd /ghettovcb или backup
    • vi vmlist
    • нажимаем «a» вписываем имена VM (каждое имя на новой строке)
    • нажимаем «esc» и чтобы сохранить изменения — «:wq» (без сохранения «:q»)

    Запускаем скрипт:

    • ./ghettovcb.sh -а -l ./log.txt — запуск копирования всех машин, запись логфайла в той же директории
    • ./ghettovcb.sh -f ./vmlist -l ./log.txt — запуск копирования машин, указанных в файле vmlist, логи сохраняются в той же директории
    • ./ghettovcb.sh -f ./vmlist -g ./ghettovcb.conf -l ./log.txt — аналогочно, только с использованием.conf файла

    О корректном выполнении скрипта будет сигнализировать строка с надписью: «###### Final status: All VMs backed up OK! ######». Если такого нет — проверяйте логи, синтаксис команд и путей к файлам.

    Для того, чтобы добавить строку на запуск по расписанию (в cron), необходимо выполнить правку файла «/etc/rc.local.d/local.sh» , выполнив следующее:

    • перейти в каталог /etc/rc.local.d/local.sh
    • chmod u+w local.sh
    • открыть файл редактором — vi local.sh
    • включить редактирование клавищей «i» или «insert»
    • дописать перед строкой exit0 следующее:

    /bin/kill $(cat /var/run/crond.pid)
    /bin/echo 0 20 * * * /vmfs/volumes/datastore/script/ghettoVCB.sh -a -l /vmfs/volumes/backup/log/log.txt >> /var/spool/cron/crontabs/root
    /bin/crond

    • при этом указываем расписание (время указывается в UTC, т.е. для MSK -3 часа), т.е. «00 20 * * * «
    • нажимаем «esc» и сохраняемся — «Shift+:» и «wq»
    • в конце выполняем chmod u-w local.sh

    Таким образом, в 23:00 по МСК будет выполняться резервное копирование файлов виртуальных машин. В нашем случае будет оставаться 3 копии.

    Настройка backup для ESXi через ghettoVCB.sh завершена.

    Рассмотрим и сравним два способа резервного копирования виртуальных машин VMware.

    Исходные данные

    Тестовый стенд представляет собой два гипервизора ESXi на сервере Fujitsu Primergy BX2560 M2 подключённые по SAN (два порта по 8 Gbit/s) и LAN (два порта по 10 Gbit/s). Версия ESXi и VSCA 6.5. Для ESXi диски презентованы системой хранения данных Fujitsu ETERNUS DX8700 S2. В качестве системы хранения бэкапа используем EMC Data Domain 6300, подключенный по SAN (четыре порта по 8 Gbit/s). Для выполнения backup, в целях экономии времени, воспользуемся готовым инструментом Backup Exec, сервер управления системы установлен на физическом сервере HP ProLiant BL460c Gen8 и так же имеет подключение к сети по SAN и LAN двумя портами.

    Для тестирования создано три виртуальных машины: VM1 (146Gb), VM2 (157GB) и VM3 (284Gb). Процедура тестирования будет выглядеть следующим образом: выполним три раза FULL Backup каждой системы, после этого вычислим среднюю скорость резервного копирования(Gb/min) для каждого способа.

    Система Backup Exec имеет четыре способа получения доступа к данным виртуальной машины, для физического сервера это SAN, LAN (NBD), NBDSSL и четвертый, если сервер Backup Exec установлен на виртуальной машине, HotAdd. Протестируем вариант, когда Backup Exec установлен на отдельном физическом сервере, сравним плюсы и минусы выполнения бэкапа по SAN и LAN.

    Настройка Backup Exec достаточно проста и состоит из следующих шагов:

    1. Выбрать существующее или создать новое задание на выполнение бэкапа виртуальных машин
    2. Открыть свойства этого задания
    3. Перейти на вкладку Virtual Machines > подраздел VMware
    4. Отметить нужный нам способ подключения (допустимо активировать сразу все четыре способа и выставить их очередность использования)


    СПОСОБ ПЕРВЫЙ: РЕЗЕРВНОЕ КОПИРОВАНИЕ ВИРТУАЛЬНЫХ МАШИН ПО SAN


    Для того, чтобы Backup Server мог выполнить бэкап виртуальных машинESXi по SAN, ему необходимо в первую очередь презентовать те же LUN (-ы), которые были презентованы ESXi. В этом случае Backup Server, используя vStorage API, запрашивает информацию у vCenter, в каком LUN находится VMDK виртуальной машины, делает моментальный снимок (snapshot) диска и забирает его по SAN.

    В результате этого эксперимента средняя.

    СПОСОБ ВТОРОЙ: РЕЗЕРВНОЕ КОПИРОВАНИЕ ВИРТУАЛЬНЫХ МАШИН ПО LAN (NBD)


    В этом режиме Backup Server запрашивает у vCenter сведенья о том на каком ESXi находится нужная нам виртуальна машина, делается моментальный снимок и выполняет его передачу по локальной сети с ESXi сервера на Backup Server.

    В результате второго эксперимента средняя.

    ВЫВОДЫ, ПЛЮСЫ И МИНУСЫ

    Если строить с нуля современную инфраструктуру используя сетевое оборудование с пропускной способностью 10 Gbit/s, то применение бэкапа в режиме подключения к данным по локальной сети (NBD) скорее всего, по затратам и времени окажется более эффективно. В случае, когда сеть между ESXi и Backup Host составляет 1 Gbit/s, а необходимое оборудование для подключения по SAN уже есть, то первый способ будет более эффективный и быстрый.

    Основной плюс выполнения бэкапа по SAN заключаются в том, что передача данных не загружает локальную сеть и выполняется на достаточно высокой скорости, но в случае 10 Gbit/s сети это уже не является столь явным преимуществом, поскольку даже при сравнительно больших объемах информации окно резервного копирования занимает не значительное время.

    Основной плюс выполнения бэкапа по LAN, это возможность использования более дешевого оборудования в качестве системы хранения данных. И как показал тест, построение современной сети на 10 Gbit/s оборудовании обеспечит более быстрый бэкап, чем 8 Gbit/s SAN.

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

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

    Используемая в статье информация взята из официальных источников.

    Добрый день уважаемые читатели, не так давно, мы с вами разбирали процесс клонирования виртуальных машин Hyper-V , сегодня же мы с вами разберем, его главное конкурента, а именно гипервизор ESXI, в котором мы так же произведем клонирование виртуальной машины VMware . Сам процесс не сложный, но может у начинающих системных администраторов вызывать ряд вопросов, на которые я отвечу в этой статье.

    Принцип клонирования

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

    • Копирование файлов виртуальной машины (в выключенном состоянии), из минусов, нужно заново ее создавать в инвентории и подсовывать существующие диске.
    • С помощью VMware vCenter Converter Standalon e, это вариант когда нет vCenter Server. Там принцип простой, вы устанавливаете его в виртуальную машину и делаете его клон, как будто это физическая машину, все подробно описано, по ссылке выше.
    • Средствами резервного копирования виртуальных машин "Veeam Backup Replication"
    • С помощью vCenter Cerver.

    Ниже опишу первый метод и последний, остальные уже имеют свои подробные статьи.

    Копирование файлов VM

    Находим нужный ESXI хост, выбираем нужный вам дисковый массив (Datastore) и щелкаем по нему правым кликом мыши, из контекстного меню выбирает "Browse Datastore".

    Выбираем нужную папку и из контекстного меню пункт "Copy", далее с помощью встроенного проводника, перемещаем ее в нужное местоположение, можно назвать это таким клонированием виртуальной машины VMware, для бедных.

    Далее, на новом месте, открываете папку и щелкаете правым кликом по файлу с расширением *.vmtx, это конфигурационный файл. По сути на этом все. Лично я, чтобы получить доступ к файловой системе ESXI использую WinSCP , либо вы еще можете воспользоваться функциями OVA шаблона .

    Если в копируемой VM присутствую snapshot’ы их нужно или удалить перед копированием или скопировать вместе с другими файлами, иначе во время загрузки новой VM будет ошибка с сообщением о невозможности подгрузить файлы с snapshot’ами.

    Копирование VM с помощью vCenter

    У тех товарищей, кто централизованно управляет своей инфраструктурой, данная функция присутствует при установке. Ее преимущество в том, что клонировать можно как работающую, так и не работающую виртуальную машину. Выбираем нужную и щелкаем по ней правым кликом, в контекстном меню видим пункт "Clone".

    На первом окне мастера вас спросят выбрать локацию (Datacenter)

    Указываем хост назначения, если он подходит, вы увидите сообщение "Validation succeded"

    Если же нет, то вы увидите сообщения:

    • Device CD/DVD drive 1 used backing - исправимая вещь, вам говорят, чтобы вы отмантировали ISO в виртуалке.
    • Network interface "имя адаптера" uses network "другое имя" - типа такой сети на хосте назначения нет, то же ничего страшного, пере воткнете в другой после клонирования.

    На следующем шаге клонирования, вам необходимо и место назначения копии машины.

    На последнем шаге, вас спросят, хотите ли вы применить кастомные настройки к клону. Customise - это дополнительная настройка, позволяющая задать огромное количество установок. Выбрав пункт "Do not customise" вы закончите процесс мастера клонирования.

    Похожие статьи