수작업으로 작성해본 ESXi 백업 스크립트 입니다.
스크립트에 등장하는 숫자3은 VM에 할당된 고유 vmid 중의 하나를 임의로 할당한겁니다.
각자의 ESXi 호스트에 ssh 로 접속하여 vim-cmd vmsvc/getallvms 명령을 내리면 vmid 를 확인할수 있고
백업하고 싶은 VM의 vmid로 적당히 바꿔주면 됩니다.
그냥 복사를 시도하면 resource busy라는 에러 메세지가 나오면서 복사가 되지 않습니다.
반드시 VM을 셧다운 시켜야 복사가 가능하므로 스크립트를 실행하면 VM이 중지된다는 점을 명심해야 합니다.
셧다운 할때 시간이 꽤 걸리므로 용량이 크다면 sleep 15 항목의 숫자를 늘려주시기 바랍니다.
복사된 VM이미지를 써서 복구를 하는 것은 매우 쉽습니다.
ESXi 호스트에 웹브라우저로 접속한 다음, "VM 생성/등록" 메뉴를 선택하여 "기존 가상 시스템 등록"을 고르면 됩니다.
복사해 놓은 디렉토리로 찾아 들어가서 해당 VM파일을 선택하면 됩니다.
크론탭에 등록해두면 자동으로 백업처리가 가능하며 crontab 파일은 다음과 같습니다.
/var/spool/cron/crontabs/root <- 이 파일에 스크립트를 추가하면 됩니다.
8테라 혹은 10테라 HDD 달아놓고 vmfs-6 로 포맷한 다음 열심히 백업해두면 되겠습니다.
참고로 테스트한 버전은 ESXi 6.5.0 Update 1 입니다.
esxi_backup.sh
==========
#!/bin/sh
# show VM's list
/sbin/vim-cmd vmsvc/getallvms
sleep 1
# check PMS state
/sbin/vim-cmd vmsvc/power.getstate 3
sleep 1
# Shutdown VM
/sbin/vim-cmd vmsvc/power.shutdown 3
sleep 15
sync
/sbin/vim-cmd vmsvc/power.getstate 3
sleep 1
# copy VM's file
NAL=$(date '+%Y_%m_%d')
mkdir -p /vmfs/volumes/DATA/vm_backup/$NAL
time cp -a /vmfs/volumes/INSIGNAL/PMS/ /vmfs/volumes/DATA/vm_backup/$NAL
sync
# Re-start VM
/sbin/vim-cmd vmsvc/power.on 3
ÀÏ¹Ý °³Àι«·á½Ã¸®¾ó esxi´Â ¾ÈµÇ´Â°ÅÁÒ?
ÀÌÁ¦ ½ºÆ®¸³Æ® ¾²´Â¹æ¹ýÀ» ¹è¿ö¾ß°Ú±º¿ä ¤¾¤¾