Сбой моментального снимка GhettoVCB на ESXI 4.0 - 4.1
У меня сегодня проблема. Несколько часов назад я обновил свой esxi до версии 4.1 с 4.0. Моя цель состояла в том, чтобы получить резервную копию от моего виртуального компьютера с ghettoVCB.sh, даже если есть снимки виртуального компьютера. (на 4.0 это не сработало вообще)
Для этого я скачал последнюю версию ghettoVCB(github) и распаковал ее.
Важные файлы (chmod 777) теперь распакованы в папку: ghettoVCB-master, и я отредактировал строку VM_BACKUP_VOLUME
к пути, где должны быть резервные копии после запуска скрипта.
Когда я запускаю сценарий и нет снимков виртуальной машины, виртуальная машина "резервируется" в папке: VM_BACKUP_VOLUME=/vmfs/volumes/datastore1/BACKUP
это работает.. пока..
Но, как я уже сказал, когда есть снимок виртуальной машины, я просто получаю сообщения:
2013-06-13 15:21:54 -- info: ###### Final status: ERROR: No VMs backed up! ######
(если есть хотя бы один виртуальный компьютер, который можно создать без резервного копирования)
а также:
2013-06-13 15:19:46 -- info: ###### Final status: ERROR: All VMs failed! ######
(если у всех виртуальных машин есть снимки.)
Я читаю в интернете для настройки в ghettoVCB.conf и ghettoVCB.sh, следуя 1 вместо 0:
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=1
но это ничего не изменит.
2 ответа
Вы читали документацию по этой функции? Он не будет создавать резервные копии снимков, а консолидирует их и впоследствии будет создавать резервные копии виртуальной машины, поэтому, вероятно, вы все равно не захотите использовать его:
Однако я решил поддержать этот вариант использования, поскольку недавно мне стало известно, что некоторые коммерческие решения для резервного копирования, которые поддерживают виртуальные машины с существующими моментальными снимками, просто объединяют все моментальные снимки перед резервным копированием. Если эта функция включена, она будет объединять ВСЕ существующие моментальные снимки на ВМ перед запуском резервного копирования.
Если это действительно то, что вам нужно, у сообществ VMWare есть поток, который описывает проблему, похожую на вашу, и предлагает изменить код сценария, который предназначен для решения этой проблемы:
# elif ls "${VMX_DIR}" | grep -q "\-delta\.vmdk" > /dev/null 2>&1; then
# if [ ${ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP} -eq 0 ]; then
# logger "info" "Snapshot found for ${VM_NAME}, backup will not take place\n"
# VM_FAILED=1
# fi
elif [[ -f "${VMX_PATH}" ]] && [[ ! -z "${VMX_PATH}" ]]; then
if ls "${VMX_DIR}" | grep -q "\-delta\.vmdk" > /dev/null 2>&1; then
if [ ${ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP} -eq 1 ]; then
logger "info" "Snapshot found for ${VM_NAME}, consolidating ALL snapshots now (this can take awhile) ...\n"
$VMWARE_CMD vmsvc/snapshot.removeall ${VM_ID} > /dev/null 2>&1
else
logger "info" "ERROR: Snapshot found for ${VM_NAME}, backup will not take place\n"
exit 1
fi
fi
Из вашего поста я понимаю, что вы пытаетесь создать резервную копию виртуальной машины с помощью ghettoVCB, которая не может распознать ни одну виртуальную машину. Так что здесь ваш предоставленный конфиг в порядке, просто нужно несколько модификаций:
** Как вы запускаете сценарий гетто **
Решение:
Создайте файл и вставьте имя виртуальной машины:
Предположим, имя VM
1. test1
2. test2
Затем внутри каталога гетто:
vi backup
test1
test2
Теперь запустите save и закройте файл и выполните следующую команду:
./ghettoVCB.sh -f backup -d dryrun
Здесь -f используется для создания резервной копии определенных виртуальных машин, имя которых указано в файле резервной копии, который мы создали ранее. И -d dryrun будет искать перечисленные виртуальные машины, существуют они или нет и могут быть в состоянии сделать резервную копию. Выход будет как
- информация: ###### Окончательный статус: ОК, только сухой запуск. ######
Теперь вы можете приступить к резервному запуску командой ниже:
./ghettoVCB.sh -f backup
Здесь ваша резервная копия запустится и сохранит снимок по указанному месту назначения.