Бесплатный backup (резервное копирование) виртуальных машин на базе VMware ESXi. Программа для резервного копирования виртуальных машин VMware Vmware vsphere client копирование с виртуальной машины

Рассмотрим и сравним два способа резервного копирования виртуальных машин 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 виртуальных машинс толстыми дисками выполняется достаточно быстро, а вот от восстановления с тонкими дисками лучше отказаться т.к. это часто заканчивается с ошибкой или сбоем.

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

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

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

    Data Recovery с поддержкой VCenter Server

    Veeam BackUp & Replication

Эти программы являются основными программами для бэкапа, использующимися большинством пользователей:

    Data Recovery с поддержкой vCenter Server

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

Данное решение работает как с VCenterServer, так и без него, но будет отсутствовать возможность настройки бэкапа по времени. Мы рассмотрим все основные возможности чуть ниже, когда будем сравнивать все продукты.

    Veeam BackUp & Replication

Этот продукт сейчас довольно популярен, так как тип лицензирования данного продукта (лицензируется по сокетам) для серверных с маломощными серверами будет крайне выгоден. Ниже мы рассмотрим несколько комплектаций серверов и рассмотрим ценовые характеристики. Также этот продукт поддерживает опцию мгновенного восстановления данных после сбоя благодаря своей технологии vPower.

    Также с недавнего времени выпускает средства для бэкапа в виртуальных средах. Кроме того, Symantecединственное из всех решений бэкапа использует технологию V2P (конвертирование виртуальной среды на физические серверы). Правда, Vcenter обладает такой технологией, но уже не в рамках технологии резервного копирования

    • Притом, что средства Акронис широко используются в виртуальных системах, изначально Акронис создавалась как бэкап физических машин, и создания специальных архивов, разработанных самой компанией с целью минимизировать объем бэкапа. Акронис включает в себя механизмы конвертирования машин в средах всех видов (V2V, V2P , P2V и P2P).

      Детальное сравнение технологий бэкапа. VMware vs Veeam vs Symantec vs Acronis

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

      Мы будем рассматривать 2 типа серверов:

      Сравнения представим для одного и пятидесяти серверов (хостов ESX).

      Рассмотрим типы лицензирования для наших технологий:

      1. Veeam Backup & Replication лицензируется по числу физических процессоров (сокетов) хост серверов VMware ESX/ESXi;

        Acronis лицензируется по числу хост серверов VMware ESX/ESXi;

        Symantec лицензируется по числу хост серверов VMware ESX/ESXi;

      Продукты, выбранные для сравнения:

        Vmware Data Recovery + Vcenter Server;

        Veeam Backup & Replication Enterprise Edition;

        Symantec Backup Exec System Recovery Virtual Edition;

        Acronis Backup & Recovery 10 Advanced Server Virtual Edition;

      Функции и возможности Data Recovery+VCenter Veeam Symantec Acronis
      Бэкап данных + + + +
      Создание снимков + + + +
      Бэкап по времени + + + +
      Отправка логов по e-mail - + + +
      Откат машин к предыдущему состоянию + + + +
      Централизованный интерфейс управления + + + +
      Полная совместимость с решениями Vmware + + + +
      Режим дедупликации 1 + + - 2 - 3
      Инкрементное резервное копирование 4 + + + +
      Настраиваемые параметры для нескольких Vcenter в режиме LinkedMоde + + + +
      Восстановление отдельных данных + + + +
      Служба теневого копирования томов (VSS) + + + +
      Управление политиками + - 5 + +
      Совмещение со службами vMotion, HA , DRS + + + +
      Поддержка типов хранения данных (Локальное, NFS, Share, iSCSI, Fibre Channel, NAS) Локальное, NFS, Share, iSCSI, Fibre Channel, NAS Локальное, NFS, Share, iSCSI, Fibre Channel, NAS , SAN Локальное, NFS, Share, iSCSI, Fibre Channel, NAS , SAN , USB, DAS Локальное, NFS, Share, iSCSI, Fibre Channel, NAS , SAN , DAS, облачные сервисы
      Требование наличия VCenter + - - -
      Возможность восстановления на другой аппаратной платформе 6 - - + +
      Работа с базами SQL - + - 7 -
      Работа с сервером Exchange - + - 8 -
      Работа с Active Directory - + - 9 -
      Возможность преобразования виртуальных сред в физические (V2P) - - + +
      Возможность преобразования физических сред в виртуальные (P2V) + - + +
      Рекомендация наличия Vcenter + + + +
      Моментальное восстановление после сбоя - + + +
      Функция восстановления на «голое железо» 10 - - + +
      Защита файлов шаблонов - + + -
      Репликация данных - + - -
      Проверка восстановления 11 - + - -
      Работа с несколькими версиями ESX Раздел идет по первой цифре версии + + +
      Поддержка ОС Копирует всю машину, независимо от того какая ОС стоит Windows, Linux Поддержка большинства ОС
      Поддержка платформ Только VMware Только VMware VMware, Microsoft Hyper-V, Citrix Xen, физические VMware, Microsoft Hyper-V, Citrix Xen, Parallels, физические
      Ориентировочная стоимость для 1 сервера, руб.
      2 процессора по 4 ядра 50 000 60 000 100 000 70 000
      4 процессора по 12 ядер 50 000 180 000 100 000 70 000
      Ориентировочная стоимость для 50 серверов, руб.
      2 процессора по 4 ядра 180 000 3 000 000 5 000 000 3 500 000
      4 процессора по 12 ядер 180 000 9 000 000 5 000 000 3 500 000

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

        • Существенная экономия места под резервное хранение данных;

          Экономия трафика при расположении серверов на дальних друг от друга дистанциях (географическая составляющая);

        Функция доступна с дополнительной опцией Deduplication Option;

        Функция доступна с дополнительной опцией Deduplication;

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

        Функция, доступная с дополнительной программой Veeam Monitor;

        Технология Symantec Restore Anyware позволяет пользователям перенести систему на другой компьютер, не выполняя установки заново;

        При утере файлов машины позволяет создать новую ВМ с такими же характеристиками и восстановить на нее старую;

        После создания бэкапа данная технология проверяет, сможет ли поднять машину сразу после ее сбоя;

      Data Recovery с поддержкой vCenter Server

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

      Veeam BackUp& Replication

      Самый популярный способ создания бэкапов в среде VSphere. Многофункционален, может исполнять большинство функций, правда изрядное количество дополнительных параметров являются опциями (VeeamOne, VeeamReporter, VeeamMonitor и т.д.), что повысит его стоимость при приобретении полного пакета. Но, тем не менее, сама программа Veeam BackUp & Replication 5 является законченным продуктом, использующимся во многих компаниях, как малых, так и крупных. Эта программа включает в себя 2 модуля: создание резервных копий и их репликацию. Данный продукт обладает новой технологией, которая используется как тестовая во многих программах бэкапа. VeeamBackUp & Replication5 позволяет запускать ВМ непосредственно из резервной копии. Данная технология у компании Veeam называется vPower. Благодаря данной технологии пользователь получает следующие преимущества:

        Мгновенное восстановление виртуальных машин

        Универсальное восстановление объектов любых приложений (U-AIR)

        Подтверждение возможности восстановления SureBackup

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

        Мгновенное возобновление работы после сбоя

        Запуск ВМ непосредственно с резервной копии

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

        Возможность выбора пути в пользу быстродействия или надежности (RTO & RPO)

      Symantec Backup Exec System Recovery Virtual Edition

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

      На данный момент Symantec выпускает продукт для бэкапа ВМ - Symantec BackupExec SystemRecovery VirtualEdition. Данный продукт включает в себя среду Symantec Management Solution, Standalone Client и Recovery Disk. Для бэкапа файл-сервера нам необходима только лицензия SSR, но для расширенных функций при использовании баз SQL, серверов Exchange и т.д. нам необходимо приобрести агенты для данных серверов. Как показывает практика, большинству компаний недостаточно создания одного резервного хранилища данных, так вот в Symantec SystemRecovery предусмотрена функция создания внешней резервной копии на FTP -сервере или дополнительном дисковом накопителе для улучшенного аварийного восстановления.

      Symantec имеет ряд своих уникальных функций:

        Возможность восстановления на другой аппаратной платформе;

        Возможность преобразования виртуальных сред в физические (V2P);

        При использовании USB, как хранилище резервных машин, Symantec распознает его, определяет его тип и интеллектуально воздействует с ним, продолжая выполнять задания резервного копирования;

      Также Symantec использует функцию сжатия данных при использовании технологии P2V , что позволяет сэкономить на трафике, при конвертации машин на расстоянии (при окончании конвертации место, занимаемое ВМ на диске, будет равно объему физической машины.)

      Агенты Symantec созданы под определенные типы серверов (SQL, Exchange, DB2, ActiveDirectory и т.д.), в том числе и под операционные системы, что позволяет им распознавать все особенности таких серверов и не просто создавать бэкап всей машины, а еще поддерживать ряд индивидуальных характеристик для каждого из них (агент для Exchange отдельно работает с его почтовыми базами, а агент SQL восстанавливает структуру баз практически мгновенно после сбоя)

      Acronis Backup & Recovery 10 Advanced Server Virtual Edition

      У компании Acronis существует продукт для бэкапа ВМ - Acronis Backup & Recovery 10 Advanced Server Virtual Edition. В решении используется технология, похожая на vPower от Veeam - AcronisInstantRestore, позволяющая мгновенно восстанавливать машину после сбоя. Пакет Acronis Backup & Recovery 10 AdvancedServer VirtualEdition позволяет организациям любого размера увеличить экономический эффект от виртуализации, защищая все виртуальные машины, работающие на каждом отдельном физическом сервере, по доступной, фиксированной цене. Acronis Backup & Recovery 10 AdvancedServer VirtualEdition не только поддерживает платформы VMware, Microsoft Hyper-V ® , Citrix XenServer и Parallels, но и позволяет выполнять неограниченные миграции между этими платформами. Компания Acronis предлагает рассчитать экономию от своей программы, использую калькулятор экономии бюджета с помощью этой программы: http://www.acronis.ru/backup-recovery/roi-calculator.html .

      Но на этом возможности Акронис не ограничиваются. Компания Acronisвключила в пакет Acronis Backup& Recovery 10 AdvancedServer VirtualEdition еще одну функцию, это консолидация серверов для перевода систем с физических на виртуальные платформы, причем со встроенным планировщиком заданий. В итоге имеем, что данная программа выполняет 2 основных функции:

        Экстренное восстановление систем

        Консолидация серверов

      Основные преимущества по сравнению с другими технологиями:

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

        Широкий спектр поддерживаемых устройств хранения резервных копий (вплоть до оптических устройств и магнитных лент)

        Создание раздела Acronis Secure Zone на том же сервере ВМ, что позволяет восстановить машину за короткий срок, причем этот раздел будет защищен режимом дедупликации на другом сервере

        Функция восстановления на «голое железо» позволит в случае полной потери файлов машины создать такую же машину и восстановить на ней снимок прошлой.

        Поддержка большинства виртуальных платформ.

        Поддержка большинства ОС, при установке агента резервного копирования

Небольшой тест:
Локальная сеть - гигабит.
На локальное хранилище (аппаратный RAID 10 из 4 дисков 10К) - «time dd if=/dev/zero of=/vmfs/volumes/datastore/temp bs=1M count=1K» 8 секунд.
На «linux» хранилище (программный RAID 0 из 3 дисков 7,5К) - «time dd if=/dev/zero of=/vmfs/volumes/linbackup/temp bs=1M count=1K» 12 секунд.
На «windows» хранилище (аппаратный RAID 5 из 10 дисков 10К) - «time dd if=/dev/zero of=/vmfs/volumes/winbackup/temp bs=1M count=1K» 1 минута 44 секунды (сам в шоке).

Результаты говорят сами за себя. Да, на win-хранилище RAID 5, но врядли он один виноват в таком результате.

С СХД разобрались, теперь надо автоматизировать резервное копирование. Лучшим бесплатным средством является скрипт ghettoVCB , чтобы им воспользоваться, надо получить доступ к хосту ESXi по SSH. Как оказалось есть очень простой способ включения и выключения доступа прямо из vShere Client: Configuration > Software > Security Profile > Properties… > Remote Tech Support (SSH) > Options… > Start или Stop. По этим скриншотам думаю будет нагляднее:

Скачиваем последнюю версию скрипта. Можно пойти «тру» путём сделать как написано на страничке скрипта в секции «Setup:», но я поступил проще - распаковал архив у себя на компьютере, вместо редактирования конфигурационного файла - отредактировал сам скрипт, скопировал его на локальное хранилище (через «Browse Datastore»).

Вот основные параметры:

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

Остальные параметры можно и не править, но если интересно - на страничке скрипта все параметры подробно описаны, правда на английском, почти все параметры расписаны по русски.

Итак, скрипт скопирован на локальное хранилище, подключаемся по ssh, переносим скрипт куда нибудь ближе к корню, например в /ghettovcb/ghettovcb.sh, если вам не нужно бэкапить все виртуальные машины - необходимо создать файл со списком бэкапируемых виртуалок:
cd /ghettovcb
vi vmlist
жмём «a» вписываем имена виртуалок, каждое на новой строке, нажимаем «esc» и чтобы сохранить изменения ":wq" или чтоб выйти без сохранения ":q"

Переносы строк должны быть "\n", при переносах "\r\n" скрипт будет выдавать ошибку, поэтому не стоит создавать список в блокноте, с последующим копированием на хранилище, если вы ни разу не пользовались Notepad+ или EmEditor и не знаете что такое "\n" и "\r\n" - лучше создавайте список в vi.

Пробуем запустить скрипт:

./ghettovcb.sh -f ./vmlist -l ./log.txt

./ghettovcb.sh -f ./vmlist -g ./ghettovcb.conf -l ./log.txt
Скрипт отрабатывает, выдавая много информации, если в конце вывода видим "###### Final status: All VMs backed up OK! ######" значит всё хорошо, иначе - читаем log.txt и разбираемся что сделали не так.
Теперь надо создать расписание для бэкапов.
cd /var/spool/cron/crontabs
chmod u+w root
vi root
жмём «a», пишем расписание, только учтите - время указывается в UTC, т.е. для Москвы это локальное время минус три часа
00 20 * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -l /vmfs/volumes/linbackup/logs/`date +%F`.txt
или если вы создали файл конфигурации
00 20 * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -g /ghettovcb/ghettovcb.conf -l /vmfs/volumes/linbackup/logs/`date +%F`.txt
жмём «esc» и сохраняемся ":wq"
в заключении
chmod u-w root

Теперь ежедневно в 20:00 по UTC (в 23:00 по Москве) будет запускаться скрипт, логи о его выполнении будут сохранятся на хранилище в папке logs, отдельный лог на каждый день.

По логам у меня на бэкап уходит примерно 4 часа, посчитал скорость - примерно 4ГБ в минуту, т.е. примерно 70МБ в секунду, весьма не плохо. Хранилища в 2,7ТБ хватает на хранение двух копий каждой виртуалки, этого вполне достаточно, плюс остаётся свободное место, а оно нужно, т.к. сначала делается третья резервная копия и только после её создания удаляется самая старая копия.
Ну и ещё один камень в огород «windows» хранилища - пробовал делать бэкапы скриптом на него, storage просто отваливался, ну и собственно скрипт завершался с ошибкой. Понимаю, что всё дело в неверной настройки записи по NFS, но настройки были по умолчанию и разбираться в «тюнинге» не очень то и хотелось.

Эксперимент прошёл удачно, можно закупать сервер с хорошими дисками, планируется RAID 10 на 5ТБ, этого должно с запасом хватить и на будущие виртуалки.

Теги: vmware, vsphere, esxi, backup, резервное копирование

Существует отличный бесплатный скрипт для резервного копирования виртуальных машин на 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 завершена.