ESXi 백업 스크립트 (6.7)

ESXi 6.7 host configuration backup 스크립트입니다. sync_config, backup_config, datastore 복사, cron 등록, restore_config 주의사항을 정리했습니다.

ESXi 백업 스크립트는 VM 디스크 백업이 아니라 ESXi host configuration backup입니다. 네트워크, vSwitch, port group, NTP, firewall, host 설정을 복구하는 데 필요한 config bundle을 저장하는 용도입니다.

Broadcom/VMware 공식 절차는 vim-cmd hostsvc/firmware/sync_config로 설정을 영구 저장소에 동기화한 뒤 vim-cmd hostsvc/firmware/backup_config로 config bundle을 생성하는 흐름입니다.

수동 백업

vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
ls -lh /scratch/downloads/

backup_config 실행 후 생성된 .tgz 파일을 datastore나 외부 백업 위치로 복사합니다.

백업 스크립트 예시

#!/bin/sh
set -eu

BACKUP_DIR="/vmfs/volumes/datastore1/esxi-config-backups"
HOST_NAME="$(hostname -s)"
STAMP="$(date +'%Y%m%d_%H%M%S')"

mkdir -p "${BACKUP_DIR}"

vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config

LATEST_BUNDLE="$(find /scratch/downloads -name '*.tgz' -type f -mmin -10 | sort | tail -n 1)"

if [ -z "${LATEST_BUNDLE}" ]; then
  echo "config bundle not found" >&2
  exit 1
fi

cp "${LATEST_BUNDLE}" "${BACKUP_DIR}/${HOST_NAME}_config_${STAMP}.tgz"
ls -lh "${BACKUP_DIR}/${HOST_NAME}_config_${STAMP}.tgz"

cron 등록

chmod +x /vmfs/volumes/datastore1/scripts/esxi-config-backup.sh
crontab -l
crontab -e

ESXi의 cron은 패치/재부팅/설정 저장 방식에 따라 유지 여부가 달라질 수 있습니다. 운영에서는 vCenter PowerCLI나 외부 자동화 서버에서 주기적으로 백업을 실행하는 방식도 검토합니다.

복구 시 주의

vim-cmd hostsvc/firmware/restore_config 0

복구 절차는 host reboot와 UUID 일치 여부가 중요합니다. 다른 host에 강제 복구하는 경우는 영향이 크므로 공식 문서의 UUID override 조건을 확인합니다.

운영 기준

  • ESXi host configuration backup은 VM 백업을 대체하지 않습니다.
  • 업그레이드, NIC/vSwitch 변경, datastore 변경 전에는 반드시 config backup을 남깁니다.
  • 백업 파일은 host별, 날짜별로 보관하고 외부 위치에 복제합니다.
  • 복구 테스트는 운영 host가 아닌 랩에서 먼저 확인합니다.

공식 문서

BGM EVER