xsibackup 툴을 esxi host에 설치 후 nfs 볼륨에 vm들을 주기적으로 백업하는 방법에 대한 글이다.

 

0. 버전정보

사용된 버전:

  • ESXi 6.7.0 Update 2 (Build 13981272)
  • XSIBACKUP-FREE 11.2.6

 

xsibackup을 설치하기 위해서는 먼저 esxi host가 ssh 서비스가 구동중이어야 한다.

ssh 서비스 활성화는 아래 글 참조.

ESXi 5.5 리얼텍 NIC 잡기

또는 아래와 같이..

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
태그:             

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다