Создание резервных копий ВМ подручными средствами

Проблема создания резервных копий виртуальных машин забесплатно давно меня волновала.
Вернее, не просто создания резервных копий, но регулярного создания резервных копий и проверки целостности.
До появления ESX3m5 Update4 можно было делать резервные копии достаточно просто – с помощью скриптов на Powershell или RCLI. Но всему хорошему рано или поздно приходит конец – и компания VMware решила, что раз ESXi – бесплатное решение, то и функционал публичного API (используемый вышеперечисленными инструментами) будет доступен только в режиме чтения. То есть, посмотреть информацию с хоста можно, изменить – нельзя.
“Мыши плакали, кололись, но продолжали есть кактус”…
Я рассмотрел несколько бесплатных решений: Trilead VM Explorer и Veeam FastSCP Free. Везде были свои минусы:
– Trilead – это законченное средство для бэкапа одной ВМ. Т.е. вы нажали “Backup VM” и все – бэкап пошел создаваться. Но, скорость работы не превышала 5Мб/сек, кроме того, сделать бэкап нескольких ВМ или настроить регулярный бэкап в бесплатной версии нельзя. Ну и можно забыть про оповещения;
– Veeam – решение более интересное. 🙂 Там присутствует возможность настраивать задания по копированию, загвоздка лишь в том, что копируется весь каталог с ВМ. А ведь там лежат файлы, которые недоступны для чтения, – своп и жесткий диск. Соответственно, проблемы с перенаправлением свопа и создания снимков ложатся целиком на плечи системного администратора. Правда, был и плюс – наличие оповещения. В общем, тоже не айс.
И тут Михаил Михеев показал, как пользоваться гуглом и подкинул ссылку на достаточно адекватное и бесплатное средство. Данное средство позволяет делать бэкапы не только с ESX, но и с бесплатных серверов ESXi.
Я его попробовал и хочу прорекламировать вам. 🙂

1) Разрешаем доступ к нашему серверу по SSH. Вот инструкция для ESXi;
2) Скачиваем клиент для подключения по ssh, например, PuTTy;
3) Скачиваем скрипт ghettoVCB.sh и помещаем по пути “/vmfs/volumes/datastore”. Ни в коем случае не редактируем его под Windows;
4) Разрешаем его запуск – “chmod +x /vmfs/volumes/datastore/ghettoVCB.sh;
5) Пытаемся запустить скрипт. Если при запуске выдается сообщение “Cannot be found”, скорее всего, скрипт немного кривой. Выполняем команду “vi ghettoVCB.sh” – если скрипт содержит символы “^M”, его нужно немного исправить. Для выхода из VI нажимаем сначала “Esc”, затем “:q” и “Enter”. После этого в командной строке выполняем “sed ‘s/.$//g’ ghettoVCB.sh > ghettoVCBFixed.sh”. Теперь просмотрим файл ghettoVCBFixed.sh – “vi ghettoVCBFixed.sh”. Если наборы символов “^M” пропали, делаем новый скрипт запускаемым (пункт2) и пытаемся запустить. “Правильный” скрипт после запуска должен сругаться – что у вас не указан файл со списком ВМ;
6) Через графический интерфейс удаляем старый скрипт и переименовываем новый: ghettoVCBFixed.sh -> ghettoVCB.sh;
7) Редактируем скрипт – “vi /vmfs/volumes/datastore/ghettoVCB.sh” и нажимаем “Insert”. Давайте изучим доступные параметры:
– VM_BACKUP_VOLUME=/vmfs/volumes/backup (Резервное NFS-хранилище)
– ENABLE_2GB_SPARSE=0 (Измените на 1, если вы хотите дробить VMDK кусками по 2GB)
– VM_BACKUP_ROTATION_COUNT=3 (Сколько бэкапов будет храниться для виртуальной машины)
– VM_BACKUP_DIR_NAMING_CONVENTION (как будет формироваться название. По умолчанию вполне адекватно)
– POWER_VM_DOWN_BEFORE_BACKUP=0 (При значении – 0 вы получаете “живой” бэкап без остановки ВМ)
– ENABLE_HARD_POWER_OFF=0 (Соответственно, выключение ВМ не через vmware tools, а физически)
– ITER_TO_WAIT_SHUTDOWN=4 (тайм-аут для физического выключения ВМ)
8) Сохраняем наш скрипт. Для этого нажимаем “Esc”, затем “:wq” и “Enter”;
9) Создаем файл со списком машин – “vi /vmfs/volumes/datastore/vmbackup”. В данном файле набираем список ВМ точно так же, как они называются в vClient. Например, так:
vm1
vm2
DC1
ExchSrv
В вашем файле будут содержаться названия четырех ВМ. Сохраняем файл (пункт6);
10) Давайте посмотрим текущее время на вашем ESXi. Для этого выполним команду “date”:
Mon Aug 3 08:28:52 UTC 2009. Текущее время на рабочей станции – 14:28.
Мой сервер синхронизируется с NTP-сервером предприятия, кроме того, сейчас на локальных станциях настроено летнее время, поэтому разница во времени сервера и локальной станции – 6 часов. Запомним эту цифру;
11) Отредактируем файл заданий планировщика CRON. Для этого выполним команду “vi /var/spool/cron/crontabs/root”. Добавим новую строку (новое задание) вида:
“00 19 * * 7 /vmfs/volumes/datastore/ghettoVCB.sh /vmfs/volumes/datastore/vmbackup”
Это означает, что в 19:00 каждое воскресенье мы выполняем команду “/vmfs/volumes/datastore/ghettoVCB.sh /vmfs/volumes/datastore/vmbackup”. А так как у нас смещение зимой +5 часов, а летом +6, то задание будет выполняться либо в 0:00, либо в 1:00 в понедельник;
12) Перезапустим демона-планировщика 🙂
Для этого выполним следущие команды:
“kill ps ax | grep cron | awk '{print $1}'“. Обратите внимание, что ` и ‘ – разные знаки!
“crond”
13) Лог ghettobackup.log, который лежит на NFS-сервере, затем можно отправить по почте, чтобы ознакомиться с результатами;
Вот и все, дерзайте 🙂
P.S. Огромное спасибо мистеру новичку за бесценную помощь в настройке CRON под ESXi.

92 thoughts on “Создание резервных копий ВМ подручными средствами”

  1. если дать доступ к хосту по ssh, то можно и cron заставить работать.

  2. Наверное, у меня что-то не настроено? 🙂
    ~ # crontab
    -ash: crontab: not found
    Установка RPM-пакетов в ESXi также запрещена. 🙂
    Подскажите виндусятнегу, как установить Cron на BusyBox (на ESXi).

  3. ну, вот как-то так примерно:
    >echo “my_task_text” >> /var/spool/cron/crontabs/root

  4. эээ, забыл, после чего обязательно надо перезапустить crond

  5. Если кто-то делает этим скриптом backup на nfs сервер, то какова скорость? лично у меня она не превышает 5-10 МБайт/с в гигабитной сети, что весьма и весьма мало (.

  6. Как и обещал – пишу отчет об использовании в качестве планировщика Cron.
    После изменения настроек Cron в файле /var/spool/cron/crontabs/root и перезапуска Cron резервное копирование действительно отрабатывает. Еще раз огромное спасибо новичку за советы по работе с командной строкой. За выходные выложу обновленную инструкцию с использованием Cron вместо планировщика Windows (пункт 8 – пункт 11).
    P.S. Вот только у меня не получилось убить Crond с помощью
    kill ps ax | grep cron | awk ‘{print $1}’
    Вместо этого я получил его PID и выполнил команду “kill PID”.

  7. ps ax | grep cron | awk ‘{print $1}’ как раз и возвращает PID процесса. Опробовано на ESXi 3.5 u4, ESXi 4.0. Везде работало.

  8. Спасибки большое за ценную информацию и за скрипт! но есть одна маленькая проблемка backup делается локально на том же сервере ESX, а как его автоматически после backup переслать на другой ESX?

  9. А как после backup автоматически передать файлы на другую ESX? Ведь путь в скрипте указывается локальный.

  10. После прочтения текста скрипта, делающего backup ВМ, возник вопрос. Насколько я понял, суть действий скрипта заключается в том, что делается snapshot, после чего файлы *.vmdk копируются куда-то. А вот и сам вопрос – если ВМ, диски которой копируются, была включена, то будут ли корректны файлы самой ВМ внутри vmdk файлов? Ведь на момент создания снапшотов, что-то могло быть в ОЗУ машины и в таком случае будет записано в файл снапшота и, следовательно, не попадет в наш бэкап. Или же перед созданием снапшота все буферы сначала скидываются внутрь vmdk, а уже потом делается снапшот и можно не бояться за целостность данных внутри *.vmdk файлов?

  11. а как можно по NFS расшарить папку с VMFS с локального стораджа ?
    чтобы одному esxi скопировать свои VM другому ?

  12. Прошу прощения за недельное отсутствие – свадьба 🙂
    Отвечаю по порядку:
    Vitaliy: А как после backup автоматически передать файлы на другую ESX?
    Ответ: С самого сервера файлы можно копировать только в пределах хранилищ этого сервера. А это локальные диски (DAS), FC, NFS, iSCSI. Чтобы скопировать файлы на другой сервер надо как-то подключить его ресурсы к серверу со выполняющимся скриптом, либо использовать сторонние утилиты, например, Veeam FastSCP Free. Для пересылки файлов на другой сервер вы можете использовать задания в FastSCP Free.
    новичок: вопрос по снимкам…
    Ответ: Если упрощенно, то снимки можно делать с содержимым оперативной памяти и без нее. При откате на снимок с содержимым ОЗУ вы сразу получаете работающую систему. При откате на снимок без содержимого – как будто вы во время работы нажали Reset. Скрипт делает снимок без содержимого ОЗУ, соответственно, при создании снимка файлы внутри VMDK будут настолько корректны, насколько этого позволяет используемая файловая система и приложения. Т.е. минимально необходимый набор – наличие журналируемой ФС, например, NTFS и журналируемого приложения.
    Прошу прощения, что не сказал сразу, но приложения рекомендуется бэкапить и восстанавливать на уровне гостевой ОС, а не хоста!
    dim-soft: а как можно по NFS расшарить папку с VMFS с локального стораджа?
    Ответ: тут лучше использовать ВМ, внутри которой развернут сервер NFS или iSCSI. Есть бесплатные решения как на Windows, так и на Linux.

  13. а какой командой делается снапшот ОЗУ? В списке, получаем при выводе “vim-cmd vmsvc” такой команды нет точно:
    snapshot.create
    snapshot.dumpoption
    snapshot.get
    snapshot.remove
    snapshot.removeall
    snapshot.revert
    snapshot.setoption

  14. Спасибо за заметку.

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

  15. При использовании команды “snapshot.create”:
    “vim-cmd vmsvc/snapshot.create /vmfs/volumes/datastore/test/test.vmx snapshot_name snapshot_description 1”
    Как раз параметр “1” и означает, что при создании снимка создается копия оперативной памяти (и есть возможность откатится на работающую машину).

  16. Cirill: если дашь ссылку на новый скрипт, могу попробовать его доработать.

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

  18. Да не за что ) Я вот когда второй хост подниму, тогда и сам попробую )

  19. с FTP получилось, но скорость 5 мегабайт 🙁
    лучше не получиться ?

  20. я с FTP не пробовал, так что не знаю, нормальная это скорость для него или нет.
    По поводу скриптов – попробую посмотреть…

  21. к сожалению ssh клиент только на хостах ESX
    ESXi клиента ssh нет … или не нашел как включить )

    есть мысль – а нельзя ли модифицировать toolbox входящий в состав ESXi добавить туда bzip2 (для более быстрого сжатия) и ssh клиента?

    gzip у меня по SAN не больно шустро складывал, 8-12 мбпс.
    vmkfstools отработал намного быстрее, в пике до 60 мбпс
    похоже, что копирование через ssh упирается в быстродействие gzip

    … как и написано в топике (http://communities.vmware.com/thread/29721?tstart=0) правильнее всего копировать через vmkfstools ибо “Copying/exporting/importing with vmkfstools also doesn’t affect the performance of the LUN as badly because it only issues 1 scsi reservation”
    осталось только придумать как получить прямой доступ к сторажу с одного хоста на другой

    что если соорудить конструкцию с перенаправлением входа-выхода через ssh?

    как то так …
    vmkfstools -i /vmfs/path/file | ssh -c blowfish-cbc machine2 vmkfstools “>” /vmfs/path/file

    или из области фантазий
    перенаправлять выход vmkfstools в упаковщик, выход упаковщика перенаправлять через ssh на другой хост, распаковывать и пихать на vmkfstools ))

  22. SSH включается просто. Жмем alt-f1 в меню, при загруженной машине (хост, нам нужен хост и прямо на нем все делаем!) он выпадает в консоль, там игнорируя здравый смысл печатаем UNSUPPORTED (ничего видно не будет, я не шучу!) После этого оно запрашивает пароль рута, вводим, попадаем в консоль, ура! Открываем файл vi /etc/inetd.conf и правим вот эту строку:

    #ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60

    Просто стираем комментирующую “решетку”(#).
    Сохраняем файл и даем команду на ребут, это важно, иначе так и останетесь в этой консоле навсегда, если сделаете логаут и поможет только резет.

    Что касается внешнего хранилища, то есть такая команда esxcfg-x (x – продолжение команды), оно лежит в папке /sbin. Там много вариаций на тему esxcfg-x, но нам нужен esxcfg-nas – почитайте его man, там все предельно ясно. Я подцепил так внешнее хранилище, прямо к папке vmfs, т.е. к стораджу общему.

  23. А теперь скажите мне, как правильно сделать восстановление машины из полной копии папки с машиной? т.е. я зарядил копию всего содержимого папки виртуальной машины (vmware ESXi) возможно ли теперь её подцепить куда-нибудь? Я создал новую машину и просто подменил папку, подсунув этой машине файлы из архивной копии, оно ругнулось: какого хрена? ты копировал что ли машины? Я ответил: да. И оно запустилось, но косяк с конфигом, сетевухи, размер харда и.т.п. Как это учесть и заставить хост проглотить все старые настройки виртуальной машины из бэкапа?

  24. Тут дело в том, что надо не создавать новую машину, а добавить существующую из окна браузера Datastore. Для этого у вас должны быть скопированы не только VMDK, но и файл VMX. Нажимаете правой кнопкой мыши по VMX-файлу и делаете Add to Datastore.

  25. to A.Vakhitov извините, а можно подробнее, я совсем ничего не понял. Где взять браузер Datastore? У меня управляется клиентом vSphere и версия бесплатная, может это мешает мне увидеть что-то, потому, что его просто нет в бесплатной версии? Нет?

  26. Делаю копию ВМ с помощью этого скрипта. выполняется без ошибок.потом просматриваю через WinSCP папку с копией ВМ, а там только файл *.vmx. может ли это быть из за того что я копии делаю на локальный диск?

  27. Ребята, натолкнулся на проблему. Скрипт ghettoVCB.sh при правильной конфигурации, ругается на то, что у меня есть Snapshot виртуальной машины и отказывается делать копию, вообще.
    Вот, что нашел на сайте:
    10Q: I have VMs that have snapshots. I want to back these things up but the script doesn’t let me do it. How do I fix that?
    10A: VM snapshots are not meant to be kept for long durations. When backing up a VM that contains a snapshot, you should ensure all snapshots have been committed prior to running a backup. No exceptions will be made…ever.

    http://blog.theworldrunsontechnology.com/2009/04/creating-virtual-machine-backups-in.html

    Что это значит? Снапшоты – руками, что-ли удалять каждый раз, что за бред? В честь чего этот праздник то? Или я опять, что-то упускаю..

  28. 2Sergei4: Пока не готов ответить – болею и не могу посмотреть – у меня с одной ВМ такие же проблемы.

    2Xapepama: к сожалению, организация снапшотов в VMware ESX такова, что при создании снапшота у вас есть ссылка только на предыдущий VMDK-файл. Соответственно, если у вас куча снимков, то будет следующая цепочка ссылок: Snap(XXX).VMDK->Snap(XXX-1).VMDK->…->Snap001.VMDK->VM.VMDK.
    Данный скрипт копирует только предыдущий VMDK, как я понимаю.

  29. 2A.Vakhitov это я уже понял. Че за бред, почему он не может отключить машину через vmtools и забрать папку, всю папку на другой носитель. Тьфу. Буду копать код, вырывать куски, фигли.

  30. Почитал кое, что:
    Неразумное использование снапшотов

    Некоторые администраторы используют снапшоты не в качестве временной меры, создания точки отката при внесении изменений, а на постоянной основе. Делаем что-то – снапшот. И не удаляем. А вдруг понадобится? Получается как в анекдоте про дохлую кошку: “Не пригодилась”.
    Снапшоты в абсолютном большинстве случаев не нужны больше, чем на неделю. Патчим систему? Снапшот. Патчи работают, все ОК? Удаляем снапшот.

    http://www.itcommunity.ru/blogs/vadmin/archive/category/2682.aspx

    Все понял, каюсь. А теперь расскажите, кто знает как заставить vmware не трогать /var/spool/cron/crontabs/root – файл, оно его просто меняет на стандартный, полупустой и все, что вы писали, что б скрипт работал по расписанию удаляется. Что делать, не перезагружать никогда, бред.

  31. Есть идея. Положить архив .tar.gz в vmfs\volumes\.. А потом в инит прописать архиватору распаковывать каждый раз при загрузке новый файл /crontabs/root – но, это как то не спортивно, что ли.

  32. From “новичок”:
    Надо добавить в файл автозагрузки “/etc/rc.local” свой скрипт, который будет выполнять все действия по добавлению нужной информации в планировщик. Файл “/etc/rc.local” после перезагрузки хоста не меняется и все внесенные в него изменения сохраняются.

  33. Подскажите пожалуйста, где что нужно поменять в скрипте чтобы делать снапшоты не только дисков но и памяти?

    Пробовал добавлять единичку в этой строчке:
    ${VMWARE_CMD} vmsvc/snapshot.create ${VM_ID} vcb_snap VCB_BACKUP_${VM_NAME}_date +%F > /dev/null 2>&1

    после редактирования выглядила так:
    ${VMWARE_CMD} vmsvc/snapshot.create ${VM_ID} vcb_snap VCB_BACKUP_${VM_NAME}_date +%F 1 > /dev/null 2>&1

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

  34. По идее должно работать…
    Максим, а смысл создания снимка с оперативной памятью при работе скрипта? Все равно вы его удаляете, а это происходит на работающей ВМ.

  35. Здравствуйте!
    Что-нибудь удалось придумать по поводу того, что бэкапится только первый (системный) диск виртуальных машин?

  36. Приветствую. Сравнил оба скрипта – ничего не понял. Судя по моим скромным познаниям, должны бэкапиться оба диска.
    Анатолий, там вышла новая версия скрипта, в качестве экспериментального функционала – архивация бэкапов. Ее не пробовали?

  37. A.Vakhitov, можно ли вообще делать резервные копии не только дисков но и памяти, чтобы система восстанавливалась более корректно? Или для этого все таки придется выключать ВМ перед бэкапом.

  38. Известные мне средства резервного копирования копируют только данные с ЖД. Чтобы скопировать состояние памяти, необходимо делать паузу (suspend) ВМ, затем копировать состояние памяти, и поднимать ее из suspend.
    Единственный вариант передачи состояния памяти при включенной машине – Fault Tolerance.

  39. Поправлюсь – отчуждаемый вариант передачи содержимого ОЗУ. Есть еще и vMotion, но он нам не подходит. 🙂

  40. У меня на данный момент работает скрипт бэкапа на Win2k8 машине с использованием PowerShell, отчеты о бэкапе шлются на почту. С выходом PS2 перейду на background job’ы и на этом и останусь. Кстати Vmware DR просто выморозил своей сыростью, мучался с ним месяц.

  41. Значит, у вас пиратский, лицензионный, оценочный ESXi. Бесплатный ESXi не поддерживает работу с публичным API, который реализован через командлеты Powershell. Вернее, работу он поддерживает, но при попытке создать снапшот выдаст ошибку.
    Тем данный скрипт и хорош, что он работает на всех версиях ESXi, при этом не требуя ничего для работы.

  42. Хочу поделиться. Пробовал по ftp бэкапить с ESXi хоста на ESXi хост (ESXi 4.0), скорость варьируется в пределах 20-30 MB/s. В принципе такая же примерно скорость при бэкапе по ftp на не ESXi хост (в моем случае ftp на freebsd 6.2). При этом отдельной сети для бэкапа не делал, так что есть вероятность, что скорость может быть выше. Для ESXi 3.5 скорость достигала 40 MB/s.

  43. Имею 2 ESXi хоста – esxi01, esxi02. Процесс бэкапа естесственно запускается кроном. Ежедневные (пн-сб) бэкапы машин хостов делаю друг на друга, т.е. esxi01 -> esxi02, esxi02 -> esxi01. Еженедельные (вс.) на отдельный сервер бэкапов. т.е. максимально последний бэкап самих машин у меня недельной давности. Кроме того внутри самих машин делаю бэкапы данных на сервер бэкапов, эти данные тоже ежедневно, кроме того, кроном резервирую также их еженедельно. Итого получается двойное резервирование – самих ВМ, и данных в этих ВМ.

  44. Подскажите в чем проблема. Делаю копию и архивирую с помощью скрипта на ESX3.5 переношу на дургой ESX4 там пытаюсь распаковать. получаю ошибку tar: invalid tar magic.

  45. Здравствуйте. Обьясните, пжлста, как настроить бекап по фтп на другой сервер ( напр. ФриБСД) – чтото в самом скрипте не нашел, вроде только на НФС ??? В комментах “новичок” пишет про бекапирование по фтп…

    P.S. Версия ESXi 4.0

  46. Посмотрите тут (http://www.simple-tech.info/default.aspx).
    Кстати, vSphere Essentials стоит уже 500$. При этих (в принципе небольших) тратах вам не будет нужды так извращаться со скриптами на ESXi.
    Вполне можно будет настраивать бэкапы через PowerCLI или RCLI.

  47. Привет.
    Нужна помощь. Причем в самом начале:
    пытаюсь скопировать скрипты на ESXi4 и нифига не выходит 🙁
    pscp c:\backup_test root@192.168.31.9:/vmfs/volumes

    пишет в ответ:
    ash: /sbin/sftp-server: Permission denied
    unable to initialise SFTP: could not connetct
    че за ерунда?

  48. Да, по ssh (через putty) могу подцепиться к консоли ESXi.
    Разрешал, как написано в статье, на которую Вы ссылались в 1-ом пункте

  49. “pscp c:\backup_test root@192.168.31.9:/vmfs/volumes”
    А само хранилище вы указывали? Например, “/vmfs/volumes/datastore1”.
    Попробуйте поставить Veeam FastSCP. С его помощью удается скопировать данные скрипты?

  50. хранилище пробовал указать:
    “pscp c:\backup_test root@192.168.31.9:/vmfs/volumes/DS1-250”

    ответ тот же.
    А закопировать данные скрипты в storge можно и через vSphere Client и через FastSCP, но ведь проблема в том что сккрипты должны лежать в
    /VMFS/volumes …
    Или это не обязательное условие?

  51. спасибо, будем играться) и еще вопрос сразу. Эти скрипты когда делают бэкап они файлы сжимают? или переливают как есть?

  52. Зависит от настроек в скрипте. Можно и так, и так сделать.

  53. Добрый день!
    В последней версии GhettoVCB появилась возможность отправлять логи по почте

    # Email log 1=yes, 0=no
    EMAIL_LOG=1

    # Email SMTP server
    EMAIL_SERVER=10.0.10.202

    # Email SMTP server port
    EMAIL_SERVER_PORT=25

    # Email FROM
    EMAIL_FROM=support@mydomen.ru

    # Email RCPT
    EMAIL_TO=support@mydomen.ru

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

    Не подскажете в чём косяк?

  54. косяк нашел:
    Only supported if you are running vSphere 4.1 and this feature is experimental. The reason this is listed as experimental is it may not be compatible with all email servers as the script utlizes nc (netcat) utility to communicate to an email server.

    т.е.на ESXi не заработает, т.к.нет на нём команды NC.

    Спасибо за быстрый ответ, видимо тоже прийдется переходить на условно-платный продукт 🙁

  55. Во-первых, потому что нашел средства на нормальный продукт – Veeam Backup and Replication 5.0.
    Во-вторых, потому что новая версия скрипта работает через vMA. Из плюсов – ничего не надо ломать в консоли ESXi. Из минусов – требуется платная версия vSphere Essentials.
    Соответственно, в бесплатном сегменте чем дальше, тем больше начинает рулить KVM либо Hyper-V. Тут еще ограничение по использованию памяти в ESXi5 Free.

  56. У кого при распаковке появляется ошибка
    tar: invalid tar magic.
    можно распаковать вот так:
    tar -zxvf ~/filename.gz

  57. Добрый день! Настроил по инструкции, но при запуске скрипта появляется ошибка:
    Datastore not found.

    2012-09-30 12:06:39 -- info: Snapshot found for Windows R2, backup will not take place

    Бекапы хочу складывать в папку Backup диска под названием в vSphere 4ffc1d91-7072de03-8fda-c860002a8330. В ghettoVCB.sh отредактировал путь вроде верно:
    VM_BACKUP_VOLUME = /vmfs/volumes/4ffc1d91-7072de03-8fda-c860002a8330/Backup
    Вот полный лог в режиме отладки:
    2012-09-30 12:13:54 -- info: ============================== ghettoVCB LOG START ==============================

    2012-09-30 12:13:54 -- debug: Succesfully acquired lock directory - /tmp/ghettoVCB.lock

    2012-09-30 12:13:54 -- debug: HOST VERSION: VMware ESXi 5.0.0 build-441354
    2012-09-30 12:13:54 -- debug: HOST LEVEL: VMware ESXi 5.0.0 GA
    2012-09-30 12:13:54 -- debug: HOSTNAME: grml

    2012-09-30 12:13:54 -- info: CONFIG - VERSION = 2011_11_19_1
    2012-09-30 12:13:54 -- info: CONFIG - GHETTOVCB_PID = 444667
    2012-09-30 12:13:54 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/4ffc1d91-7072de03-8fda-c860002a8330/Backup
    2012-09-30 12:13:54 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3
    2012-09-30 12:13:54 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2012-09-30_12-13-54
    2012-09-30 12:13:54 -- info: CONFIG - DISK_BACKUP_FORMAT = thin
    2012-09-30 12:13:54 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0
    2012-09-30 12:13:54 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0
    2012-09-30 12:13:54 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3
    2012-09-30 12:13:54 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5
    2012-09-30 12:13:54 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15
    2012-09-30 12:13:54 -- info: CONFIG - LOG_LEVEL = debug
    2012-09-30 12:13:54 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2012-09-30_12-13-54.log
    2012-09-30 12:13:54 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0
    2012-09-30 12:13:54 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0
    2012-09-30 12:13:54 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all
    2012-09-30 12:13:54 -- info: CONFIG - EMAIL_LOG = 0
    2012-09-30 12:13:54 -- info:
    Datastore not found.

    Datastore not found.

    Datastore not found.

    2012-09-30 12:13:56 -- debug: Storage Information before backup:
    2012-09-30 12:13:56 -- debug: SRC_DATASTORE: 500Gb
    2012-09-30 12:13:56 -- debug: SRC_DATASTORE_CAPACITY: 460.8 GB
    2012-09-30 12:13:56 -- debug: SRC_DATASTORE_FREE: 192.6 GB
    2012-09-30 12:13:56 -- debug: SRC_DATASTORE_BLOCKSIZE: 1
    2012-09-30 12:13:56 -- debug: SRC_DATASTORE_MAX_FILE_SIZE: 256 GB
    2012-09-30 12:13:56 -- debug:
    2012-09-30 12:13:56 -- debug: DST_DATASTORE: 4ffc1d91-7072de03-8fda-c860002a8330
    2012-09-30 12:13:56 -- debug: DST_DATASTORE_CAPACITY: 0.0 GB
    2012-09-30 12:13:56 -- debug: DST_DATASTORE_FREE: 0.0 GB
    2012-09-30 12:13:56 -- debug: DST_DATASTORE_BLOCKSIZE: NA
    2012-09-30 12:13:56 -- debug: DST_DATASTORE_MAX_FILE_SIZE: NA
    2012-09-30 12:13:56 -- debug:
    2012-09-30 12:13:56 -- info: Snapshot found for FREENAS 8.2, backup will not take place

    Datastore not found.

    Datastore not found.

    Datastore not found.

    2012-09-30 12:13:58 -- debug: Storage Information before backup:
    2012-09-30 12:13:58 -- debug: SRC_DATASTORE: 120gb
    2012-09-30 12:13:58 -- debug: SRC_DATASTORE_CAPACITY: 106.8 GB
    2012-09-30 12:13:58 -- debug: SRC_DATASTORE_FREE: 27.7 GB
    2012-09-30 12:13:58 -- debug: SRC_DATASTORE_BLOCKSIZE: 1
    2012-09-30 12:13:58 -- debug: SRC_DATASTORE_MAX_FILE_SIZE: 256 GB
    2012-09-30 12:13:58 -- debug:
    2012-09-30 12:13:58 -- debug: DST_DATASTORE: 4ffc1d91-7072de03-8fda-c860002a8330
    2012-09-30 12:13:58 -- debug: DST_DATASTORE_CAPACITY: 0.0 GB
    2012-09-30 12:13:58 -- debug: DST_DATASTORE_FREE: 0.0 GB
    2012-09-30 12:13:58 -- debug: DST_DATASTORE_BLOCKSIZE: NA
    2012-09-30 12:13:58 -- debug: DST_DATASTORE_MAX_FILE_SIZE: NA
    2012-09-30 12:13:58 -- debug:
    2012-09-30 12:13:58 -- info: Snapshot found for Windows R2, backup will not take place

    2012-09-30 12:13:58 -- info: ###### Final status: ERROR: All VMs failed! ######

    2012-09-30 12:13:58 -- debug: Succesfully removed lock directory - /tmp/ghettoVCB.lock

    2012-09-30 12:13:58 -- info: ============================== ghettoVCB LOG END ================================

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

    2012-09-30 12:13:56 -- debug: DST_DATASTORE_CAPACITY: 0.0 GB

    У кого-нибудь есть идеи в чем заключается проблема? Заранее благодарен!

  58. Добрый день.
    Во-первых, попробуйте указать то имя Datastore, которое указано у вас в vClient. Возможно, клиент не работает с ID’ом хранилища.
    Во-вторых, скрипт не поддерживает бэкап виртуальной машины с снапшотом.
    “Snapshot found for Windows R2, backup will not take place”. Сначала необходимо удалить снапшоты.

  59. Вопрос по кластеру.
    Как поведёт себя скрипт, если у меня три хоста ESXi Standard объединены в кластер (стоит vCenter)?

    Предполагаю, что либо каждый хост будет видеть машины, работающие на других хостах, либо не будет.
    Если не будет, то будут проблемы. Машины ведь периодически “гуляют” между хостами.

    Есть VMa, в которой зарегистриорваны и хосты и vCenter, как это поможет?

  60. Скрипт первой версии (для ESXi free) устанавливается в консоль каждого ESXi, поэтому видеть ВМ с других хостов он не будет.
    Но там есть опция “-a” (если не ошибаюсь), которая говорит бэкапить все ВМ с хоста.
    Кроме того, у скрипта есть вторая версия (использующая платный ESXi как у вас), которую вроде бы можно поставить на vMA. Возможно, там этой проблемы нет – я со второй версией не сталкивался.

Leave a Reply

Your email address will not be published. Required fields are marked *