XenServer TO vSphere 移機紀錄(含排程備份設定)
學校的XenServer 6.1 虛擬主機系統在沒心理準備的情況下,剩下十四天授權就到期了,而Ctrix公司竟然不再發放一年期授權!
升級到7.4版以後卻發現學校首頁及學務系統通通開不了機!做了上百次用了不同硬體的系統安裝皆失敗,萬念俱灰下,只好動起vSphere的主意!
可是學期中,主機不太能夠停止服務,當初曾做過的p2v實驗又都以失敗告終!但既然本來用得很順手的XenServer突然變得不好用,那原來一直失敗的p2v或許反而是一線希望!
時間剩下五天,隔天開始放春假!我想,這個假期肯定要泡湯了!別想那麼多了,動手!
使用VMware vCenter Converter Standalone Client先轉換學務系統看看!
執行程式→執行convert machine→填入相關參數(因為是走ssh,故來源機ssh的root權限要打開)
沒想到竟然成功了!
那之前的無數次失敗是什麼鬼?好,那把之前曾經一再失敗的主機再拿來轉轉看!果然,還是失敗!那問題在哪?
Centos7成功,Centos7之前的都失敗‧‧‧
回想當初學務系統升級到Centos7.2時,XenServer6.1並不認識Centos7,所以我是採用全虛擬的方式!會不會是因為如此?所以converter把它當成了是一台真正的主機!而之前在做Centos7之前的系統時XenServer有修改
了Linux的核心!就這麼想吧!
接下來問題來了!之前選擇XenServer的原因是因為備份快速,複製虛擬機只要十秒鐘,exprot出來也只要幾個小時!那現在怎麼辦?vSphere要停機近十個小時才能匯出OVF呀!
不管了!先利用半夜、放假沒人用學務系統,先備份匯出再說吧!
WTF,失敗!無數次的失敗!又陷入失敗的迴圈了!
再google看看有沒有解決之道!要錢,就是要錢!才能用vCenter!阿就是沒錢呀!不然幹嘛那麼辛苦!
轉機:救星出現
http://jamyy.us.to/blog/2016/08/8277.html
http://jamyy.us.to/blog/2016/07/8229.html
為了怕該網站掛點,先把內容複製並修改參數如下
by Jamyy on 八月.17, 2016, under VMware
兩台獨立 ESXi 主機, 一台 24x7 運行(要備份的來源端), 另一台需要時網路喚醒
排程 clone 重要 VM 並傳輸到備援 ESXi 主機
優點:
無需 vCenter Server
兩部 ESXi 主機規格可以不同 (Intel vs. AMD)
完全使用系統內建指令操作, 無需加裝額外套件
傳輸前喚醒備援 ESXi 主機, 傳輸後關機, 節能減碳
備援主機可在短時間內啟用 cloned VM, 達到備援效果
環境: CentOS 6, ESXi 6.0.0
前置作業: 建立金鑰, 憑金鑰免密碼 SSH 登入遠端主機
linux_host(要備份的系統,如學務系統):140.128.223.3
esxi01(學務系統所在的虛擬主機,VM-hpDL380-G7):140.128.223.107
esxi02(備份目的虛擬主機,VM-hp_ML10Gen9):140.128.223.109
以下@...表示:在哪一台主機操作的意思
@linux_host
$ ssh-keygen -t rsa
$ scp ~/.ssh/id_rsa.pub root@esxi01:/tmp
$ ssh root@esxi01
@esxi01
] cat /tmp/id_rsa.pub >> /etc/ssh/keys-root/authorized_keys
] esxcli network firewall ruleset set --enabled true --ruleset-id=sshClient
] /usr/lib/vmware/openssh/bin/ssh-keygen -t rsa
] scp /.ssh/id_rsa.pub root@esxi02:/tmp
] ssh root@esxi02
@esxi02
] cat /tmp/id_rsa.pub >> /etc/ssh/keys-root/authorized_keys
] rm /tmp/id_rsa.pub
] exit
@esxi01
] exit
@linux_host
$ exit
在 esxi01 主機建立 shell script(在來源端建立備份檔vmdk,並傳送至備份端)
$ ssh root@esxi01
] vi /.go
01
02
03
04
05
06
07
08
09
10
11
12
13
14
#!/bin/sh
export PATH=/bin:/sbin
MYVM=myVMname(#虛擬系統名稱)
VMID=$(vim-cmd vmsvc/getallvms | grep $MYVM | awk '{print $1}')
vim-cmd vmsvc/snapshot.create $VMID noname nodesc 0 0
cd /vmfs/volumes/datastore1
mkdir $MYVM-clone
vmkfstools -i $MYVM/$MYVM.vmdk -d thin $MYVM-clone/$MYVM.vmdk
vim-cmd vmsvc/snapshot.removeall $VMID
scp -r $MYVM-clone root@esxi02:/vmfs/volumes/datastore1/
rm -rf $MYVM-clone
ssh root@esxi02 "sync; poweroff"
] exit
在 Linux Host 排程進行 VM 備份
Centos7無法以下列方式處理,藍色為原作者,紅色為改寫過的
$ sudo yum install wol
$ sudo vi /etc/hosts
# 填入 esxi02 主機 IP Address
192.168.1.123 esxi02
$ sudo vi /etc/ethers
# 填入 esxi02 主機網卡 Mac Address
00:22:15:12:34:56 esxi02
$ vi ~/go && chmod +x $_
1
2
3
4
5
6
7
#!/bin/bash
# 網路喚醒 esxi02 主機
wol esxi02
安裝 yum -y install net-tools
ether-wake -i eth1 74:27:ea:f7:ec:46
# 登入 esxi01, 把重要 VM 備份到 esxi02 主機
ssh root@esxi01 "sh /.go"
$ crontab -e
# 排程凌晨三點執行
0 3 * * * /home/myaccount/go
直接在 ESXi 排程進行 VM 備份的方案
Step 1. 讓 ESXi 使用當地時區時間
@linux_host
$ scp /etc/localtime root@esxi01:/tmp
$ ssh root@esxi01
@esxi01
] chmod 666 /etc/localtime
] cp /tmp/localtime /etc/localtime
Step 2. 撰寫 Shell Script
] vi /.go
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
#!/bin/sh
export PATH=/bin:/sbin
MYVM=myVMname
VMID=$(vim-cmd vmsvc/getallvms | grep $MYVM | awk '{print $1}')
ssh account@linux.host "wol esxi02"
vim-cmd vmsvc/snapshot.create $VMID noname nodesc 0 0
cd /vmfs/volumes/datastore1
mkdir $MYVM-clone
vmkfstools -i $MYVM/$MYVM.vmdk -d thin $MYVM-clone/$MYVM.vmdk
vim-cmd vmsvc/snapshot.removeall $VMID
scp -r $MYVM-clone root@esxi02:/vmfs/volumes/datastore1/
rm -rf $MYVM-clone
ssh root@esxi02 "sync; poweroff"
Step 3. 排程自動執行
] vi /var/spool/cron/crontabs/root
] kill $(cat /var/run/crond.pid)
] /usr/lib/vmware/busybox/bin/busybox crond
Ref:
(Visited 930 times, 6 visits today)
Related Posts
備份完畢約四個鐘頭,如果要還原,則要用vmdk登錄程虛擬機的方式
http://www.cc.ntut.edu.tw/~jykuo/train/VMwareVmdk.pdf
1 VMware 匯入 vmdk 檔案 VMware 版本: VMware Workstation 12 Player
1. 點選 Create New Virtual Machine
2. 點選 I will install the operating system later.,並按下 Next 2
3. 點選 Linux Ubuntu,並按下 Next
4. 可依個人喜好修改 VM 名稱及存放位置,並按下 Next
5. 點選 Store virtual disk as a single file,並可以調整硬碟大小 3
6. 點選 Customize Hardware…
7. 調整 Memory 及 Processors 大小,調整完成後按 close
8. 點選 Finish 4
9. 點選剛剛建立的 ec2_demo,並點選 Edit virtual machine settings
10. 點選 Hard Disk(SCSI),並按下 Remove
11. 點選 Add 5
12. 點選 Hard Disk 並按下 Next
13. 點選 SCSI,並按下 Next
14. 點選 Use an existing virtual disk,並按下 next 6
15. 點選 Browse 選擇 EC2.vmdk 的檔案位置,並按下 Finish
16. 按下 ok
17. 點選 ec2_demo,並按下 Play virtual machine 7
18. 完成畫面
0 3 * * * /bin/sh /.go