VMware esxi 備份ghettoVCB.sh進階設定

由 Derek 發表於 一月 9, 2012 / 尚無評論

 

 

更新日期: 2012.10.18

最新內容更新請參考此篇 [VMware ESXi 備份 ghettoVCB.sh 進階設定]

 

進階設定

1. 修改LOG存放位置

由於VMware esxi5重開機後會自動還原一些設定,進而刪除掉備份後所產生的LOG。所以為了避免此問題發生。

可以手動修改設定讓LOG存在不會被刪除的地方。

~ # vi ghettoVCB.sh 

# /LOG_OUTPUT 收詢此字串後找到,以下訊息

# 將黃色字體的部份修改為所要存放的路徑後儲存執行,即可。

# (建議存到/vmfs/volumes/datastore1內或是自行設定的NFT內)

USE_VM_CONF=0

USE_GLOBAL_CONF=0

BACKUP_ALL_VMS=0

EXCLUDE_SOME_VMS=0

EMAIL_LOG_HEADER=/tmp/ghettoVCB-email$$.header

EMAIL_LOG_OUTPUT=/tmp/ghettoVCB-email-$$.log

EMAIL_LOG_CONTENT=/tmp/ghettoVCB-email-$$.content

 

2. 設定NFS

在設定NFS的方式有兩種,請選一種適合的就可以了

2.1 長久掛載nfs

[Configuration][Storage][Ass Storage][Network File System]

 

Server:請輸入NFS主機的IP或是名稱

Folder:請輸入NFS主機所分享資料夾的完整路徑

Datastore Name:請輸入在ESXINFS資料夾的名稱

然後就一直按Next就可以完成了

 

完成後就會看到多出一個NFS的資料夾

 

2.2 需要才掛載

以下測定為,當有備份需要使用到NFS時才會自動掛載上去,一旦備份完成後就會自動卸載,並不會持續的掛載

~ # vi ghettoVCB.sh 

#是否要卸載NFS(yes=1,no=0)

UNMOUNT_NFS=0

#NFS Server 的地址(ip或主機名)

NFS_SERVER=172.30.0.195

#NFS 存放檔案的路徑

NFS_MOUNT=/nfsshare

#NFS 資料存放地方的名稱

NFS_LOCAL_NAME=nfs_storage_backup

#虛擬機上NFS備份的目錄

NFS_VM_BACKUP_DIR=mybackups

 

3.設定MAIL

設定MAIL主要的目是方便管理備份。可不用登入主機就可知道是否有備份完成。

3.1 MAIL的設定方式如下

~ # vi ghettoVCB.sh 

EMAIL_LOG=1

EMAIL_DEBUG=1

EMAIL_SERVER=auroa.primp-industries.com

EMAIL_SERVER_PORT=25

EMAIL_DELAY_INTERVAL=1

EMAIL_TO=auroa@primp-industries.com

EMAIL_FROM=root@ghettoVCB

 

如果在設定MAIL寄送後執行ghettoVCB.sh,出現已下錯誤訊息的話,請加入25port的防火牆設定

2012-01-01 19:28:46  –  info: ERROR: Please enable firewall rule for email traffic on port 25 

2012-01-01 19:28:46  –  info: Please refer to ghettoVCB documentation for ESXi 5 firewall configuration

2012-01-01 19:30:01  –  info: ERROR: Failed to email log output to 10.254.201.5:25 to derek@iwan.com.tw

2012-01-01 19:30:01  –  info: Email log output will not be deleted and is stored in /tmp/ghettoVCB-email-275

 

3.2 防火牆設定加入25port

3.2.1首先 先確認ESXI是否有開啟防火牆25port

確認方式有兩種,請選一種即可。

方式一:

[Configuration][Security Profile]

 

方式二:

~ # esxcli network firewall ruleset list 

Name                Enabled

——————  ——–

sshServer               true

sshClient                false

nfsClient                 false

dhcp                        true

dns                          true

snmp                       true

ntpClient                  false

CIMHttpServer         true

CIMHttpsServer        true

CIMSLP                     true

iSCSI                        false

vpxHeartbeats         true

updateManager       false

faultTolerance          true

webAccess               true

vMotion                    true

vSphereClient          true

activeDirectoryAll    false

NFC                         true

HBR                         true

ftpClient                  false

httpClient                false

gdbserver               false

DVFilter                   false

DHCPv6                  false

DVSSync                  false

syslog                     false

IKED                        false

WOL                        true

vSPC                        false

remoteSerialPort      false

 

3.2.2 加入25port

~ # cd /etc/vmware/firewall/ 

~ # vi smtp.xml

#在最後加入以下內容

<!–  E-MAIL SMTP  –>

<ConfigRoot>

<service id=’1000′>

<id>SMTP</id>

<rule>

<direction>outbound</direction>

<protocol>tcp</protocol>

<porttype>dst</porttype>

<port>25</port>

</rule>

<enabled>true</enabled>

<required>false</required>

</service>

</ConfigRoot>

 

重啟防火牆

重啟後會看到多出SMTP 25port的設定

~ # esxcli network firewall refresh 

~ # esxcli network firewall ruleset list

Name                Enabled

——————  ——–

中間略過

DVSSync               false

syslog                false

IKED                  false

WOL                    true

vSPC                  false

remoteSerialPort      false

SMTP                   true

 

3.3 防火牆開機設定

由於VMware esxi 5 在重開機後會還原資料,因此在防火牆的部份則需要額外的設定。2.2防火牆設定加入25port為基本的防火牆設定。接下來說明如何重開機自動加入防火牆規則。

 

3.3.1 首先編寫防火牆規則

編寫好的防火牆規則所儲存的地方(建議存到/vmfs/volumes/datastore1內或是自行設定的NFT)以避免重開機後被刪除。

 

以下範例檔案存放在NFS

腳本放在script資料夾,修改文件放在file資料夾

~ # mkdir -p /vmfs/volumes/tools/script 

~ # mkdir  /vmfs/volumes/tools/file

~ # cd /vmfs/volumes/tools/file

~ # cp /etc/vmware/firewall/service.xml /vmfs/volumes/tools/file

~ # vi service.xml

#在最下面加入以下黃色字體內容

<rule id=’0002′>

<direction>inbound</direction>

<protocol>tcp</protocol>

<porttype>dst</porttype>

<port>

<begin>1024</begin>

<end>65535</end>

</port>

</rule>

<enabled>false</enabled>

<required>false</required>

</service>

<!–  E-MAIL SMTP  –>

  <service id=’1000′>

    <id>SMTP</id>

    <rule>

      <direction>outbound</direction>

      <protocol>tcp</protocol>

      <porttype>dst</porttype>

      <port>25</port>

    </rule>

    <enabled>true</enabled>

    <required>false</required>

  </service>

</ConfigRoot>

 


3.3.2
編寫開機執行腳本

~ # cd /vmfs/volumes/tools/script   #若沒有tools資料夾請自行建立 

~ # vi firewall.sh

#!/bin/sh

# Firewall rules

cp /vmfs/volumes/tools/file/service.xml /etc/vmware/firewall/

esxcli network firewall refresh

 

~ # chmod 755 firewall.sh

 

3.3.3 寫入到rc.local讓開機自動跑firewall.sh

~ # vi /etc/rc.local 

#在最下面加入此行

/vmfs/volumes/tools/script/firewall.sh

再來就可以重開機測試看是否設定正確。若是正確的話就可在防火牆List中看到SMTP

 

 

4. 設定排程

在設定排程的部份,也和設定MAIL的防火牆規則一樣,都會因重開而還原。因此在這邊提供幾種方式,請依個人需求設定。(設定排程的方式還有很多種,以下只是提供參考)

 

4.1設定script方式

此種設定方式比較適合主機數較多且方便統一管理。

使用此方式,會建議最好新增一個NFS且將設定資料都統一放到NFS內,之後在有需要的主機上在掛載NSF就可使用。

 

4.1.1 設定排程(root)

在這邊會要編修root,主要是為了日後如果有更多的排程要設定的話只需要改此root檔後,執行crontabs.sh此腳本就會自動覆蓋舊的root檔了。在日後的管理會較為方便。

~ # cp /var/spool/cron/crontabs/root /vmfs/volumes/tools/file/ 

~ # cd /vmfs/volumes/tools/file/

~ # chmod 744 root

~ # vi root

#在最下面加入要設定的排程,這邊設定讓5分鐘跑一次看是否正常。時間部份可自行修改

#此部份測試請拿小一點的VM測試才不會還沒備完又跑下一個。

#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  *    *   *   *   /vmfs/volumes/datastore1/backup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -a

 

4.1.2 設定crontabs.sh

/bin/kill $(cat /var/run/crond.pid) 為刪掉crondpid

/bin/busybox crond  為重啟crond

~ # cd /vmfs/volumes/tools/script 

~ # vi crontabs.sh

#!/bin/sh

/bin/kill $(cat /var/run/crond.pid)

cp /vmfs/volumes/tools/file/root /var/spool/cron/crontabs

/bin/busybox crond

~ # chmod 755 crontabs.sh

 

4.1.3 設定rc.local開機自動跑crontabs.sh

~ # vi /etc/rc.local 

#在最下面加入此行

/vmfs/volumes/tools/script/crontabs.sh

 

4.2 直接寫在rc.local

此方式比較適合單一主機或是管理人員較少的使用。

此方式的缺點就是,日後要設的排程多的時後,或是加入到rc.local內的東西變多時,在管理上會容易亂掉,管理較不方便。

~ # vi /etc/rc.local 

#!/bin/sh

export PATH=/sbin:/bin

log() {

echo “${1}”

/bin/busybox logger init “${1}”

}

 

# execute all service retgistered in ${rcdir} ($1 or /etc/rc.local.d)

if [ -d "${1:-/etc/rc.local.d}" ] ; then

for filename in $(find “${1:-/etc/rc.local.d}” | /bin/busybox sort) ; do

if [ -f "${filename}" ] && [ -x "${filename}" ]; then

log “running ${filename}”

“${filename}”

fi

done

fi

 

#crontabs

/bin/kill $(cat /var/run/crond.pid) 

/bin/echo ” */5    *    *   *   *   /vmfs/volumes/datastore1/backup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -a”>> /var/spool/cron/crontabs/root

/bin/busybox crond

 

 

如果想更加了解  VMware esx ( i )  ghettoVCB  的進階使用方式可參考下面的文章

VMware esxi 備份ghettoVCB.sh基本設定說明

VMware ESX(i)虛擬磁碟格式介紹

ghettoVCB備份 錯誤訊息 Snapshot found for「host」, backup will not take place

VMware esxi 備份還原ghettoVCB-restore.sh 設定說明

VMware esxi 備份直接還原法

VMware ESX(i)使用VMware vSphere Client做OVF備份與還原

  

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

此文章尚無評論。

發表評論

*