xsibackup 툴을 esxi host에 설치 후 nfs 볼륨에 vm들을 주기적으로 백업하는 방법에 대한 글이다.
목차
0. 버전정보
사용된 버전:
- ESXi 6.7.0 Update 2 (Build 13981272)
- XSIBACKUP-FREE 11.2.6
xsibackup을 설치하기 위해서는 먼저 esxi host가 ssh 서비스가 구동중이어야 한다.
ssh 서비스 활성화는 아래 글 참조.
또는 아래와 같이..
1. 볼륨 지정
설치할 볼륨을 지정하기 위한 볼륨 리스트 확인
[root@localhost:~] df -h Filesystem Size Used Available Use% Mounted on NFS 876.2G 150.5G 725.7G 17% /vmfs/volumes/NFS02 NFS 217.8G 137.4G 80.4G 63% /vmfs/volumes/NFS01 VMFS-5 1.4T 326.6G 1.0T 23% /vmfs/volumes/HDD01 VMFS-6 596.0G 484.5G 111.5G 81% /vmfs/volumes/HDD03 VMFS-6 476.8G 193.7G 283.0G 41% /vmfs/volumes/NVME01 VMFS-6 931.2G 576.2G 355.1G 62% /vmfs/volumes/HDD02 VMFS-6 931.2G 930.4G 850.0M 100% /vmfs/volumes/XNAS01 VMFS-6 931.2G 930.4G 850.0M 100% /vmfs/volumes/XNAS02 VMFS-6 931.2G 930.4G 850.0M 100% /vmfs/volumes/XNAS03 vfat 249.7M 142.8M 106.9M 57% /vmfs/volumes/020390e5-da55291d-0f98-4363088643ce vfat 249.7M 148.5M 101.2M 59% /vmfs/volumes/aa4754e9-037afeb0-06b9-940dc1bcfbf5 vfat 285.8M 172.9M 112.9M 60% /vmfs/volumes/5bb32822-15b5cd6e-7402-7085c284de0e
- 적절한 볼륨 리스트에 xsibackup 툴을 업로드한다. 본인은 HDD02를 선택했다.
2. app 디렉토리 생성
HDD02 datastore 볼륨에 디렉토리 생성
[root@localhost:~] mkdir /vmfs/volumes/HDD02/_apps
- 여기서는 HDD02 볼륨에 _apps 라는 임의의 디렉토를 생성 후 zip 파일 업로드
파일은 아래 사이트에서 다운로드한다.
https://33hops.com/xsibackup-vmware-esxi-backup.html
xsibackup.zip 파일을 위 사이트에서 다운받아서 _apps 디렉토리에 업로드 한다.
3. 압축해제 및 설치
3.1 압축 해제
[root@localhost:~ ] cd /vmfs/volumes/HDD02/_apps [root@localhost:~ ] unzip ESXi_xsibackup.zip [root@localhost:/vmfs/volumes/HDD02/_apps] ls -la ESXi_xsibackup total 5376 drwxrwxrwx 1 root root 73728 May 17 07:30 . drwxr-xr-x 1 root root 73728 May 17 07:30 .. drwxrwxrwx 1 root root 73728 May 17 07:30 _bin drwxrwxrwx 1 root root 69632 May 17 07:30 core drwxrwxrwx 1 root root 69632 May 17 07:30 downloads drwxrwxrwx 1 root root 86016 May 17 07:30 log drwxrwxrwx 1 root root 73728 May 17 07:30 var drwxrwxrwx 1 root root 73728 May 17 07:30 vmware drwxrwxrwx 1 root root 73728 May 17 07:30 xsi-dir drwxrwxrwx 1 root root 73728 May 17 07:30 xsibackup -rw-r--r-- 1 root root 1414929 May 17 07:30 xsibackup-156552619212116014025.zip -rw-r--r-- 1 root root 1227067 May 17 07:30 xsibackup-dc-trial-156552502612116014025.zip
3.2 install 진행
[root@localhost:~] cd /vmfs/volumes/HDD02/_apps/ESXi_xsibackup/xsibackup [root@localhost:~] chmod 700 install [root@localhost:~] ./install ------------------------------ -> XSIBackup Installation <- ------------------------------ This will install XSIBackup to the desired directory It is recommended that you use the root user for the installation process, to avoid problems derived from the lack of privileges. Just provide the base path, the installation process will create the xsi-dir root folder under it. Where do you want to install XSIBackup to? (/vmfs/volumes/NFS02): ------------------------------ -> XSIBackup Installation <- ------------------------------ This will install XSIBackup to the desired directory It is recommended that you use the root user for the installation process, to avoid problems derived from the lack of privileges. Just provide the base path, the installation process will create the xsi-dir root folder under it. Where do you want to install XSIBackup to? (/vmfs/volumes/NFS02): /vmfs/volumes/HDD02/_apps ----------------------------------------------------- XSIBackup will be installed to the following directory: ----------------------------------------------------- Install dir: /vmfs/volumes/HDD02/_apps/xsi-dir ----------------------------------------------------- Confirm that you want to install to the directory above (yes/no): yes ----------------------------------------------------- Archive: /vmfs/volumes/HDD02/_apps/xsi-dir/XSIBACKUP-FREE.zip creating: src/ inflating: src/api inflating: src/cron-init inflating: src/functions inflating: src/instcron inflating: src/mapblocks inflating: src/onediff inflating: src/sendmail inflating: src/version inflating: src/xsitools inflating: EULA inflating: xsibackup creating: bin/ inflating: bin/dd inflating: bin/pv inflating: bin/xsibackup-rsync inflating: bin/xsidiff creating: conf/ inflating: conf/dialogrc inflating: conf/smtpsrvs inflating: conf/xsiopts inflating: conf/xsiopts.sh ----------------------------------------------------- Applying permissions to files... ----------------------------------------------------- The software has been installed and permissions were applied ----------------------------------------------------- Do you want to execute (c)XSIBackup now (yes/no): no
- '/vmfs/volumes/HDD02/_apps' 입력 -> yes 입력 -> no 입력
- ★ 중요: 인스톨 후 /vmfs/volumes/HDD02/_apps/xsi-dir 디렉톨리 내의 xsibackup 실행 파일을 한번 실행해 줄 것
- 첫 실행 시 라이센스 동의를 묻는 창이 뜬다. 따라서 수동으로 실행하지 않고 바로 cron job을 설정해서 수행하면 cron을 통해 실행이 되지 않는다.
3.3 install 확인
[root@localhost:/vmfs/volumes/HDD02/_apps] ls -la total 10624 drwxr-xr-x 1 root root 73728 May 17 07:39 . drwxr-xr-t 1 root root 77824 May 17 07:31 .. drwxrwxrwx 1 root root 73728 May 17 07:30 ESXi_xsibackup -rw-r--r-- 1 root root 8190084 May 12 03:51 ESXi_xsibackup.zip drwxr-xr-x 1 root root 73728 May 17 07:39 xsi-dir
- /vmfs/volumes/HDD02/_apps/xsi-dir 디렉토리에 install이 되었다.
3.4 cron install
xsibackup 백업을 위한 cron 인스톨
[root@localhost:~] cd /vmfs/volumes/HDD02/_apps/xsi-dir [root@localhost:/vmfs/volumes/HDD02/_apps/xsi-dir] ./xsibackup --install-cron -------------------------------------------------------------------------------------------- | Rsyslog is not available in XSIBACKUP-FREE | | Get XSIBACKUP-PRO at http://33hops.com | -------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The root user crontab has been successfully installed -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Killed
--install-cron을 수행하자 아래와 같이 root-crontab 파일이 생성되었다.
[root@localhost:/vmfs/volumes/HDD02/_apps/xsi-dir] ls -la conf/ total 256 drwxrwxrwx 1 root root 73728 May 17 07:48 . drwxr-xr-x 1 root root 73728 May 17 07:48 .. -rw-r--r-- 1 root root 2871 May 17 07:39 dialogrc -rw-r--r-- 1 root root 0 May 17 07:48 root-crontab -rw-r--r-- 1 root root 613 May 17 07:39 smtpsrvs -rw-r--r-- 1 root root 2863 May 17 07:39 xsiopts -rw-r--r-- 1 root root 2863 May 17 07:39 xsiopts.sh
그리고 아래와 같이
[root@localhost:~] cat /etc/rc.local.d/local.sh | grep xsi-dir "/vmfs/volumes/HDD02/_apps/xsi-dir/src/cron-init" root
- 부팅 시 crontab 반영을 위해 부팅스크립트인 local.sh 의 마지막 부분에 cron-init 구문이 추가되었다.
- ./xsibackup --install-cron 을 통해서 cron이 인스톨 된다기보다는 부팅시 esxi crontab에 반영을 위해 /etc/rc.local.d/local.sh에 구문 하나 추가와 root-crontab이라는 빈 파일이 하나 생성되는 것이다.
4. cron 스케줄링
4.1 jobs 디렉토리 생성
명령이 수행될 구문을 위한 디렉토리 생성
[root@localhost:~] mkdir /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs
- conf 디렉토리아래 jobs라는 임의의 디렉토리 생성
- 반드시 jobs라는 디렉토리를 만들 필요는 없고 적당한데 job 파일을 생성 후 root-crontab에만 지정해줘도 된다.
4.2 job 실행권한 부여
백업 명령이 실행될 job 파일 생성 후 실행권한 부여
[root@localhost:~] vi /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/001 /vmfs/volumes/HDD02/_apps/xsi-dir/xsibackup --backup-point=/vmfs/volumes/NFS02 --backup-type=custom --backup-vms=mws,win7 --exec=yes [root@localhost:~] vi /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/002 /vmfs/volumes/HDD02/_apps/xsi-dir/xsibackup --backup-point=/vmfs/volumes/NFS02 --backup-type=custom --backup-vms=2012R2 --exec=yes [root@localhost:~] chmod 700 /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/001 [root@localhost:~] chmod 700 /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/002
- 위와 같이 수행 시 NFS02 라는 NFS 볼륨에 --backup-vms 에 지정한 vm의 vmdk, vms 파일 등이 백업된다.
- --backup-vms 에는 , 로 구분하여 여러 vm을 지정할 수 있다.
- chmod 700 을 통해 해당 job 파일에 꼭 실행 권한을 줘야한다.
- --exec=yes 를 지정하지 않으면 cron을 통해 수행이 되지 않는다.
- 쉘에서 직접 명령을 수행시에는 --exec 옵션을 지정하지 않아도 된다.
4.3 root-crontab에 job 지정
[root@localhost:~] cd /vmfs/volumes/HDD02/_apps/xsi-dir/conf [root@localhost:~] vi root-crontab 00 15 * * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/001 00 17 1 * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/002
- cron-init 스크립트가 수행될 때 root-crontab의 내용을 esxi crontab 파일인 /var/spool/cron/crontabs/root 에 삽입된다.
- ESXi는 기본적으로 Timezone이 UTC이다. KST는 UTC 대비 +9 hours 이므로 감안하여 시간 설정할 것.
4.4 esxi crontab에 반영
esxi crontab에 반영을 위해 cron-init 스크립트를 한번 수행해 준다.
수행 전에 먼저 현 crontab의 내용을 보자.
[root@localhost:~] cat /var/spool/cron/crontabs/root #min hour day mon dow command 1 1 * * * /sbin/tmpwatch.py 1 * * * * /sbin/auto-backup.sh 0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py */5 * * * * /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh 00 1 * * * localcli storage core device purge
- 아직 xsibackup에 대한 cron 스케줄 내용이 없다.
cron-init 실행
[root@localhost:~] /vmfs/volumes/HDD02/_apps/xsi-dir/src/cron-init The root user crontab has been succesfully updated ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is the current content of the root crontab ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #min hour day mon dow command 1 1 * * * /sbin/tmpwatch.py 1 * * * * /sbin/auto-backup.sh 0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py */5 * * * * /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh 00 1 * * * localcli storage core device purge 00 15 * * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/001 # Added by XSIBackup 00 17 1 * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/002 # Added by XSIBackup ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Current number of crond instances is 1, service seems to be running O.K.
- 설정 후 최초 한번은 수동으로 실행하여 실시간으로 cron에 반영함
- 이 후 재부팅 시점에 /etc/rc.local.d/local.sh 에 설정된 cron-init에 의해 crontab에 자동으로 등록됨
crontab의 내용을 확인
[root@localhost:~] cat /var/spool/cron/crontabs/root #min hour day mon dow command 1 1 * * * /sbin/tmpwatch.py 1 * * * * /sbin/auto-backup.sh 0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py */5 * * * * /bin/hostd-probe.sh ++group=host/vim/vmvisor/hostd-probe/stats/sh 00 1 * * * localcli storage core device purge 00 15 * * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/001 # Added by XSIBackup 00 17 1 * * /vmfs/volumes/HDD02/_apps/xsi-dir/conf/jobs/002 # Added by XSIBackup
- root-crontab 에 지정한 job이 등록되었다.
- 부팅 시 esxi crontab에 반영하기 위한 방법으로 /etc/rc.local.d/local.sh 에 직접 cron job을 echo를 통해 설정하는 방법도 있다.
- xsibackup이 제공해 주는 cron-init 스크립트를 통해 좀 더 편리하게 crontab에 job을 등록해 주는 것 임.
이상이다.
ESXi - xsibackup install and cron schedule