Новости Статьи Российское ПО VMware Veeam StarWind vStack Microsoft Citrix Symantec События Релизы Видео Контакты Авторы RSS
Виртуализация и виртуальные машины

Все самое нужное о виртуализации и облаках

Более 6470 заметок о VMware, AWS, Azure, Veeam, Kubernetes и других

VM Guru / Articles / Использование ghettoVCB для резервного копирования виртуальных машин VMware ESX / ESXi.

Использование ghettoVCB для резервного копирования виртуальных машин VMware ESX / ESXi.

Использование ghettoVCB для резервного копирования виртуальных машин VMware ESX / ESXi.

Автор: Александр Прилепский
Дата: 28/02/2011

Поддержите VM Guru!

USDT / TRC20, адрес: TCDP7d9hBM4dhU2mBt5oX2x5REPtq9QdU1




Статья:

Предисловие от VM Guru: С удовольствием представляем статью нашего нового автора Александра Прилепского, специалиста в области решений для виртуализации корпоративной инфраструктуры. Статья рассказывает о том, как помощью бесплатного скрипта ghettoVCB организовать резервное копирование виртуальных машин.

Копировать руками машину каждый раз, когда нужно внедрить какое-то оборудование, или просто для сохранения данных, это безумно неудобно. Вот для этого и была придумана технология автоматизированного бэкапа, написанная энтузиастами на скриптах perl: ghettoVCB.

Ниже выложен гайд по установке скриптов, а также приведены конфиги сохранения скриптов как локально, так и на удаленном сервере с использованием хранилища сетевой файловой системы (NFS).

В обоих вариантах нам необходимы программа для соединения с хостом VMware ESX по SSH, например Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html), а также сам скрипт (скачать скрипт).

Для начала, выкладываем файл ghettoVCB.tar.gz на Datastore, после чего заходим в Putty, коннектимся к серверу ESX и проделываем следующие действия:

~# cd vmfs/volumes/<имя datastore>
vmfs/volumes/<имя datastore> # сp ghettoVCB.tar.gz /
vmfs/volumes/<имя datastore> # cd /
~# tar -zxvf ghettoVCB.tar.gz
ghettoVCB/
ghettoVCB/ghettoVCB.conf
ghettoVCB/ghettoVCB.sh
ghettoVCB/ghettoVCB-vm_backup_configuration_template
~# cd ghettoVCB
ghettoVCB # vi vmlist

Откроется файлик (пока еще не созданный) со списком тех машин, которые нужно забэкапить (пока еще пустой :). Для ввода и редактирования информации жмем “a”, чтобы применить настройки Esc. Чтобы выйти с сохранениями :wq чтобы без :q!

Вводим имена машин, далее вводим vi log и, ничего не изменяя в пустом файле, жмем :wq. Далее следует отконфигурить файл ghettoVCB.conf. Зайдя в неко командой vi (vi ghettoVCB.conf), мы увидим следующее:

ghettoVCB # vi ghettoVCB.conf
VM_BACKUP_VOLUME=/vmfs/volumes/dlgCore-NFS-bigboi.VM-Backups/WILLIAM_BACKUPS
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=3
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=buslogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=172.30.0.195
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=mybackups
SNAPSHOT_TIMEOUT=15
EMAIL_LOG=0
EMAIL_DEBUG=0
EMAIL_SERVER=auroa.primp-industries.com
EMAIL_SERVER_PORT=25
EMAIL_TO=auroa@primp-industries.com
EMAIL_FROM=root@ghettoVCB
Не стоит пугаться обилия параметров, все они легко настраиваются и имеют особую важность. Итак, по порядку:
VM_BACKUP_VOLUME 
Параметр, определяющий директорию создания бэкапов. В моем случае, я указал: /vmfs/volumes/Datastore.
DISK_BACKUP_FORMAT 
Определяет формат забэкапленного диска, возможны варианты: zeroedthick, eagerzeroedthick, thin, 2gbsparse (см. типы дисков).
VM_BACKUP_ROTATION_COUNT 

Определяет количество бэкапов на одну машину (каждый последующий будет удаляться скриптом). Если, например, скрипт (рассказывается ниже) будет бэкапить машины каждый час, то при указании числа 24, мы получим бэкапы каждый час на протяжении одного дня.

POWER_VM_DOWN_BEFORE_BACKUP 

Определяет, будет ли машина выключаться перед бэкапом (enabled=1 disabled=0) (скрипт поддерживает бэкап при включенной машине).

ENABLE_HARD_POWER_OFF
Отключение дисков на время бэкапа (enabled=1 disabled=0).
ITER_TO_WAIT_SHUTDOWN 

При включенном предыдущем параметре, определяет количество времени (1 единица=60 секунд), прежде чем скрипт выполнит принудительное отключение диска.

POWER_DOWN_TIMEOUT 

При включенном параметре POWER_VM_DOWN_BEFORE_BACKUP, определяет количество времени (1 единица=60 секунд), прежде чем скрипт выполнит жесткое выключение (без использования ShutDown Guest).

ENABLE_COMPRESSION 

Параметр, при включении которого забэкапленные файлы будут помещаться в архиве (enabled=1 disabled=0) (Внимание: это тестовый параметр для данной версии скрипта, мой совет его отключать, так как есть риск потери не только файлов бэкапа, но и файлов машины).

ADAPTER_FORMAT 

Формат диска машины (возможны: buslogic, lsilogic).

VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0

Параметры, отвечающие за снимки памяти, и если первый параметр “1”, то будет ли переведена машина на этот период в режим ожидания.

ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=172.30.0.195
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=mybackups

Все эти параметры нужны, если мы планируем создать директорию с бэкапами на удаленном сервере. Этими параметрами мы настраиваем доступ к NFS хранилищу (его местонахождение, директория на локально сервере и т.д.) Если создаем директорию бэкапа на том же DataStore, проигнорируем эти параметры.

SNAPSHOT_TIMEOUT 

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

EMAIL_LOG=0
EMAIL_DEBUG=0
EMAIL_SERVER=auroa.primp-industries.com
EMAIL_SERVER_PORT=25
EMAIL_TO=auroa@primp-industries.com
EMAIL_FROM=root@ghettoVCB

Следующие параметры будут отсылать логи на мэйл, при учете того, что в самом скрипте изначально прописаны данные smtp, pop и другие настройки.Данные параметры являются экспериментальными и не будут работать без дополнительных настроек. При желании отсылки логов на свой мэйл, требуется ознакомиться с основами perl и досконально изучить данную статью: http://www.waldrondigital.com/2010/05/11/ghettovcb-e-mail-rotate-logs-batch-file-for-vmware/

Мой совет – не заморачиваться.

Далее я привожу два вида настройки этих параметров без особых углублений (1 – локально, 2 – через сервер NFS)

ghettoVCB # vi ghettoVCB.conf
VM_BACKUP_VOLUME=/vmfs/volumes/Datastore
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=10
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=lsilogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=172.30.0.195
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=mybackups
SNAPSHOT_TIMEOUT=5
EMAIL_LOG=0
EMAIL_DEBUG=0
EMAIL_SERVER=auroa.primp-industries.com
EMAIL_SERVER_PORT=25
EMAIL_TO=auroa@primp-industries.com
EMAIL_FROM=root@ghettoVCB
ghettoVCB # vi ghettoVCB.conf
VM_BACKUP_VOLUME=/vmfs/volumes/NFS
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=10
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=lsilogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=1
UNMOUNT_NFS=1
NFS_SERVER=192.168.0.5
NFS_MOUNT=/nfs
NFS_LOCAL_NAME=nfs
NFS_VM_BACKUP_DIR=Backup
SNAPSHOT_TIMEOUT=5
EMAIL_LOG=0
EMAIL_DEBUG=0
EMAIL_SERVER=auroa.primp-industries.com
EMAIL_SERVER_PORT=25
EMAIL_TO=auroa@primp-industries.com
EMAIL_FROM=root@ghettoVCB
Чтобы проверить данный скрипт можем запустить его разово. Для этого ознакомимся с параметрами запуска скрипта:
     -a     Бэкапит все машины
   -f     Использование списка ВМ
   -c     Конфигурация директории бэкапа
   -g     Использование файла конфигурации
   -l     Использование файла логов
   -d     Описание логов [info|debug|dryrun] (изначально: info)
Запустим, например, всё это со следующими параметрами:
/ghettoVCB # ./ghettoVCB.sh -f ./vmlist -g ./ghettoVCB.conf -l ./log
В логах, при правильно настроенном конфиге мы увидим примерно следующее:
2011-02-21 15:08:20 -- info: ============================== ghettoVCB LOG START ==============================
2011-02-21 15:08:20 -- info: CONFIG - USING GLOBAL GHETTOVCB CONFIGURATION FILE = ./ghettoVCB.conf
2011-02-21 15:08:20 -- info: CONFIG - GHETTOVCB_PID = 69601
2011-02-21 15:08:20 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/NFS1/
2011-02-21 15:08:20 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3
2011-02-21 15:08:20 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2011-02-21_15-08-19
2011-02-21 15:08:20 -- info: CONFIG - DISK_BACKUP_FORMAT = thin
2011-02-21 15:08:20 -- info: CONFIG - ADAPTER_FORMAT = lsilogic
2011-02-21 15:08:20 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0
2011-02-21 15:08:20 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0
2011-02-21 15:08:20 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3
2011-02-21 15:08:20 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5
2011-02-21 15:08:20 -- info: CONFIG - SNAPSHOT_TIMEOUT = 1
2011-02-21 15:08:20 -- info: CONFIG - LOG_LEVEL = info
2011-02-21 15:08:20 -- info: CONFIG - BACKUP_LOG_OUTPUT = ./log1
2011-02-21 15:08:20 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0
2011-02-21 15:08:20 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0
2011-02-21 15:08:20 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all
2011-02-21 15:08:20 -- info: CONFIG - EMAIL_LOG = 0
2011-02-21 15:08:20 -- info:
2011-02-21 15:08:21 -- info: Initiate backup for Testing
2011-02-21 15:08:21 -- info: Creating Snapshot "ghettoVCB-snapshot-2011-02-21" for Testing
Destination disk format: VMFS thin-provisioned
Cloning disk '/vmfs/volumes/datastore1/Testing/Testing.vmdk'...
Clone: 100% done.
2011-02-21 15:08:37 -- info: Removing snapshot from Testing ...
2011-02-21 15:08:38 -- info: Backup Duration: 17 Seconds
2011-02-21 15:08:38 -- info: Successfully completed backup for Testing!
2011-02-21 15:08:38 -- info: ###### Final status: All VMs backed up OK! ######
2011-02-21 15:08:38 -- info: ============================== ghettoVCB LOG END ================================

 

Самое главное: это последние 3-4 строчки: ###### Final status: All VMs backed up OK! ######

Если видим такое, бэкап прошел успешно. Если видим крики об ошибках, читаем, где накосячили.

Основные типы ошибок:

  • ВМ, которые нужно бэкапить, НЕ ДОЛЖНЫ содержать снапшотов (см. тут, почему снапшоты - это плохо).
  • Кривой путь к хранилищам.
  • При включенном NFS режиме кривая настройка записи данных на NFS.

После всего этого необходимо настроить режим создания бэкапов по времени. Для этого необходимо воспользоваться параметрами CronTab. Для этого проделываем следующее:

~# cd /var/spool/cron/crontabs/
var/spool/cron/crontabs/ # vi <имя пользователя> (по умолчанию root)
Откроется повременной запуск скриптов. На новой строчке впишем следующее:
* * * * * /ghettoVCB # ./ghettoVCB.sh -f ./vmlist -g ./ghettoVCB.conf -l ./log 

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

  • минуту (0-59),
  • час (0-23),
  • день месяца (1-31),
  • месяц года (1-12),
  • день недели (0-6, причем 0=воскресенье).

Шестое поле в строке файла crontab - строка, выполняемая командным интерпретатором в указанные моменты времени. Символ % (процент) в этом поле, если он не замаскирован \ (обратной косой), преобразуется в символ новой строки.

Только первая строка (до символа % или до конца строки) поля команды выполняется командным интерпретатором. Другие строки передаются команде как стандартный входной поток. Любая строка, начинающаяся символом #, считается комментарием и игнорируется. Файл не должен содержать пустых строк.

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

15 2 * * 1-5 /ghettoVCB/ghettoVCB.sh -f ./vmlist -g ./ghettoVCB.conf -l ./log
Интересное:





Зал Славы Рекламодателя
Ближайшие события в области виртуализации:

Быстрый переход:
VMware Enterprise Offtopic Broadcom VMachines Veeam Microsoft Cloud StarWind NAKIVO vStack Gartner Vinchin Nakivo IT-Grad Teradici VeeamON VMworld PowerCLI Citrix VSAN GDPR 5nine Hardware Nutanix vSphere RVTools Security Code Cisco vGate SDRS Parallels IaaS HP VMFS VM Guru Oracle Red Hat Azure KVM VeeamOn 1cloud DevOps Docker Storage NVIDIA Partnership Dell Virtual SAN Virtualization VMTurbo vRealize VirtualBox Symantec Softline EMC Login VSI Xen Amazon NetApp VDI Linux Hyper-V IBM Google VSI Security Windows vCenter Webinar View VKernel Events Windows 7 Caravan Apple TPS Hyper9 Nicira Blogs IDC Sun VMC Xtravirt Novell IntelVT Сравнение VirtualIron XenServer CitrixXen ESXi ESX ThinApp Books P2V VCF Operations Certification Memory Kubernetes NVMe AI vSAN VMConAWS vDefend VCDX Explore Tanzu Workstation Private AI Update Russian Ports HCX Live Recovery CloudHealth NSX Labs Backup Chargeback Aria VCP Intel Community Ransomware Stretched Network VMUG VCPP Data Protection ONE V2V DSM DPU Omnissa EUC Avi Skyline Host Client GenAI Horizon SASE Workspace ONE Networking Tools Performance Lifecycle AWS API USB SDDC Fusion Whitepaper SD-WAN Mobile SRM ARM HCI Converter Photon OS VEBA App Volumes Workspace Imager SplinterDB DRS SAN vMotion Open Source iSCSI Partners HA Monterey RDMA vForum Learning vRNI UAG Support Log Insight AMD vCSA NSX-T Graphics HCIBench SureBackup Docs Carbon Black vCloud Обучение Web Client vExpert OpenStack UEM CPU PKS vROPs Stencils Bug VTL Forum Video Update Manager VVols DR Cache Storage DRS Visio Manager Virtual Appliance PowerShell LSFS Client Availability Datacenter Agent esxtop Book Photon Cloud Computing SSD Comparison Blast Encryption Nested XenDesktop VSA vNetwork SSO VMDK Appliance VUM HoL Automation Replication Desktop Fault Tolerance Vanguard SaaS Connector Event Free SQL Sponsorship Finance FT Containers XenApp Snapshots vGPU Auto Deploy SMB RDM Mirage XenClient MP iOS SC VMM VDP PCoIP RHEV vMA Award Licensing Logs Server Demo vCHS Calculator Бесплатно Beta Exchange MAP DaaS Hybrid Monitoring VPLEX UCS GPU SDK Poster VSPP Receiver VDI-in-a-Box Deduplication Reporter vShield ACE Go nworks iPad XCP Data Recovery Documentation Sizing Pricing VMotion Snapshot FlexPod VMsafe Enteprise Monitor vStorage Essentials Live Migration SCVMM TCO Studio AMD-V Capacity KB VirtualCenter NFS ThinPrint VCAP Upgrade Orchestrator ML Director SIOC Troubleshooting Bugs ESA Android Python Hub Guardrails CLI Driver Foundation HPC Optimization SVMotion Diagram Plugin Helpdesk VIC VDS Migration Air DPM Flex Mac SSH VAAI Heartbeat MSCS Composer
Полезные постеры:

Постер VMware vSphere PowerCLI 10

Постер VMware Cloud Foundation 4 Architecture

Постер VMware vCloud Networking

Постер VMware Cloud on AWS Logical Design Poster for Workload Mobility

Постер Azure VMware Solution Logical Design

Постер Google Cloud VMware Engine Logical Design

Постер Multi-Cloud Application Mobility

Постер VMware NSX (референсный):

Постер VMware vCloud SDK:

Постер VMware vCloud Suite:

Управление памятью в VMware vSphere 5:

Как работает кластер VMware High Availability:

Постер VMware vSphere 5.5 ESXTOP (обзорный):

 

Популярные статьи:
Как установить VMware ESXi. Инструкция по установке сервера ESXi 4 из состава vSphere.

Типы виртуальных дисков vmdk виртуальных машин на VMware vSphere / ESX 4.

Включение поддержки технологии Intel VT на ноутбуках Sony VAIO, Toshiba, Lenovo и других.

Как работают виртуальные сети VLAN на хостах VMware ESX / ESXi.

Как настроить запуск виртуальных машин VMware Workstation и Server при старте Windows

Сравнение Oracle VirtualBox и VMware Workstation.

Диски RDM (Raw Device Mapping) для виртуальных машин VMware vSphere и серверов ESX.

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

Где скачать последнюю версию VMware Tools для виртуальных машин на VMware ESXi.

Что такое и как работает виртуальная машина Windows XP Mode в Windows 7.

Как перенести виртуальную машину VirtualBox в VMware Workstation и обратно

Подключение локальных SATA-дисков сервера VMware ESXi в качестве хранилищ RDM для виртуальных машин.

Как поднять программный iSCSI Target на Windows 2003 Server для ESX

Инфраструктура виртуальных десктопов VMware View 3 (VDI)

Как использовать возможности VMware vSphere Management Assistant (vMA).

Интервью:

Alessandro Perilli
virtualization.info
Основатель

Ратмир Тимашев
Veeam Software
Президент


Полезные ресурсы:

Последние 100 утилит VMware Labs

Новые возможности VMware vSphere 8.0 Update 1

Новые возможности VMware vSAN 8.0 Update 1

Новые документы от VMware

Новые технологии и продукты на VMware Explore 2022

Анонсы VMware весной 2021 года

Новые технологии и продукты на VMware VMworld 2021

Новые технологии и продукты на VMware VMworld 2020

Новые технологии и продукты на VMware VMworld Europe 2019

Новые технологии и продукты на VMware VMworld US 2019

Новые технологии и продукты на VMware VMworld 2019

Новые технологии и продукты на VMware VMworld 2018

Новые технологии и продукты на VMware VMworld 2017



Copyright VM Guru 2006 - 2026, Александр Самойленко. Правила перепечатки материалов.
vExpert Badge