目錄
4.5.2、選擇“Rescue a CentOS system”... 13
1、背景說明
目前不少客戶都要求有虛機的備份需求,由於像vmware或者ZTE的tecs自帶的虛機快照功能在使用上都有一些各自的限制,所以有些特殊情況無法進行虛機的備份恢復,所有有些客戶會要求提供額外的虛機備份恢復方案。本文提供的方案不依賴於任何第三方的備份恢復工具,使用上也沒有任何限制。在vmware6.5下面測試虛機的備份恢復是沒有問題的。在zte的tecs上測試也進行過測試,對於備份恢復本身是沒有問題的,但是zte的tecs平臺在虛機的啓動引導上有些問題,會導致雖然系統盤恢復是成功的,但是通過tecs平臺的重啓虛機是起不來。而在對tecs平臺的虛機進行了手工掛載cdrom(目前tecs版本均不支持虛機掛載cdrom的功能)的情況下,通過手動選擇從本地vda的系統盤引導啓動,是可以正常進入虛機的。
2、搭建nfs服務器
2.1、nfs服務端安裝包
root@chilitest-dbep-mw03[/root]# yum install -y nfs-utils
root@chilitest-dbep-mw03[/root]# yum install -y rpcbind
啓動服務rpcbind和nfs-server服務
root@chilitest-dbep-mw03[/root]# systemctl start rpcbind
root@chilitest-dbep-mw03[/root]# systemctl enable rpcbind
root@chilitest-dbep-mw03[/root]# systemctl start nfs-server
root@chilitest-dbep-mw03[/root]# systemctl enable nfs-server
2.2、關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
或配置防火牆放行nfs
root@chilitest-dbep-mw03[/root]# firewall-cmd --permanent --add-service=nfs
root@chilitest-dbep-mw03[/root]# firewall-cmd --reload
關閉selinux
vi /etc/selinux/config
SELINUX=disabled
重啓機器。
2.3、創建共享目錄
root@chilitest-dbep-mw03[/root]# mkdir -p /nfs/public
2.4、掛載數據盤
新加一個磁盤作爲nfs的數據盤
2.4.1、磁盤分區
root@chilitest-dbep-mw03[/root]# fdisk /dev/sdc
2.4.2、創建pv
root@chilitest-dbep-mw03[/root]# pvcreate /dev/sdc1
2.4.3、創建vg
root@chilitest-dbep-mw03[/root]# vgcreate vgnfs /dev/sdc1
2.4.4、創建lv
root@chilitest-dbep-mw03[/root]# lvcreate -l +76799 -n lvnfs vgnfs
2.4.5、格式化lv
root@chilitest-dbep-mw03[/root]# lvscan
root@chilitest-dbep-mw03[/root]# mkfs.xfs /dev/vgnfs/lvnfs
2.4.6、掛載lv
root@chilitest-dbep-mw03[/root]# mount /dev/vgnfs/lvnfs /nfs/public
2.4.7、修改fstab啓動文件
root@chilitest-dbep-mw03[/root]# vi /etc/fstab
新增
/dev/mapper/vgnfs-lvnfs /nfs/public xfs defaults 0 0
保存退出。
root@chilitest-dbep-mw03[/root]# mount -a
2.4.8、查看掛載
root@chilitest-dbep-mw03[/root]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
…
/dev/mapper/vgnfs-lvnfs xfs 300G 33M 300G 1% /nfs/public
2.5、修改nfs目錄權限
root@chilitest-dbep-mw03[/nfs/backup]# chown -R nfsnobody.nfsnobody /nfs/public
2.6、配置nfs權限
root@chilitest-dbep-mw03[/root]# vi /etc/exports
/nfs/public 10.xxx.xxx.0/22(rw,sync,no_all_squash)
2.7、重新加載nfs服務
root@chilitest-dbep-mw03[/root]# systemctl reload nfs
2.8、檢查服務端nfs資源
root@chilitest-dbep-mw03[/root]# showmount -e 10.xxx.xxx.xxx
Export list for 10.xxx.xxx.xxx:
/nfs/public 10.xxx.xxx.0/22
至此nfs服務端完畢
2.9、客戶端測試掛載
2.9.1、創建客戶端掛載目錄
我們這裏客戶端仍然使用服務端測試
root@chilitest-dbep-mw03[/root]# mkdir -p /nfs/backup/
2.9.2、掛載nfs客戶端
root@chilitest-dbep-mw03[/root]# mount 10.xxx.xxx.xxx:/nfs/public /nfs/backup/
2.9.3、檢查客戶端掛載
root@chilitest-dbep-mw03[/root]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
…
10.xxx.xxx.xxx:/nfs/public nfs4 300G 33M 300G 1% /nfs/backup
2.9.4、修改fstab開機掛載
root@chilitest-dbep-mw03[/root]# vi /etc/fstab
新增:
10.xxx.xxx.xxx:/nfs/public /nfs/backup nfs4 defaults 0 0
保存退出。
root@chilitest-dbep-mw03[/root]# mount -a
2.9.5、測試客戶端創建文件
root@chilitest-dbep-mw03[/nfs/backup]# echo test>wufan.log
root@chilitest-dbep-mw03[/nfs/backup]# ls
wufan.log
root@chilitest-dbep-mw03[/nfs/backup]# cat wufan.log
test
測試正常。
3、虛機備份恢復測試
我們以10.xxx.xxx.45這臺虛機爲例,來進行備份恢復。
3.1、掛載nfs客戶端
在10.xxx.xxx.45上創建nfs掛載點然後掛載,作爲虛機備份文件的存儲。
3.1.1、創建掛載點
[email protected][/root]# mkdir -p /backup
3.1.2、安裝nfs-utils包
客戶端需要安裝nfs-util包
[email protected][/etc/yum.repos.d]# yum install -y nfs-utils
3.1.3、掛載nfs文件系統
[email protected][/etc/yum.repos.d]# mount -t nfs 10.xxx.xxx.xxx:/nfs/public /backup
3.1.4、查看掛載
[email protected][/etc/yum.repos.d]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
…
10.xxx.xxx.xxx:/nfs/public nfs4 300G 33M 300G 1% /backup
3.2、執行虛機備份
這裏我們備份的時候使用gzip進行了壓縮,可以有效減小備份文件的大小,壓縮率蠻高的,一般都能到10%左右,我這邊60g的sda盤,備份壓縮後大小7g多一點。注意,這裏一定要備份整個sda,不能是隻備份sda1和sda2等,因爲sda包括了前面2048個扇區的MBR分區表信息,這部分信息不在sda1等任何子分區裏面。
[email protected][/root]# dd if=/dev/sda | gzip > /backup/10.xxx.xxx.45_sda_image.gz
3.3、模擬虛機故障
破壞該虛機的sda盤信息,模擬虛機故障無法啓動。這裏直接把sda盤的前面1000個512字節塊信息破壞掉,這樣sda就無法起來了。
[email protected][/backup]# dd if=/dev/zero of=/dev/sda bs=512 count=1000
3.4、重啓虛機
[email protected][/backup]# reboot
3.5、檢查重啓結果
重啓後進入vsphere控制檯查看虛機,發現無法起來了
3.6、嘗試使用控制檯重啓虛機
我們在嘗試使用vsphere的控制檯重啓虛機
3.6.1、關閉電源
選擇是
3.6.2、啓動虛機
3.6.3、控制檯查看
他會一直在這個界面等待,無法啓動。
4、虛機恢復
此時需要進入到rescue模式進行恢復,而進入rescue模式需要有虛機安裝鏡像,所以我們先上傳虛機安裝鏡像到虛機所在的物理機存儲。此處我們虛機是centos7.4操作系統,所以我們上傳centos7.4對應的鏡像。
4.1、上傳鏡像
上傳一個安裝該操作系統的iso鏡像文件到虛機所在的盤
我這邊創建了一個iso_files目錄,然後把centos7.4的鏡像傳到了這個目錄。
4.2、關閉虛機
使用vsphere控制檯直接關閉虛機
過程截圖上面有,此處略。
4.3、掛載鏡像到虛機
cd/dvd驅動器選擇“數據存儲ISO文件”,在彈出的窗口中選擇剛剛上傳的虛機鏡像iso文件。
然後選中“已連接”
4.4、開啓虛機
使用控制檯打開虛機電源
該步驟截圖上面也有,此處略。
4.5、進入rescue模式
4.5.1、選擇Troubleshooting
4.5.2、選擇“Rescue a CentOS system”
4.5.3、按“Enter”鍵
4.5.4、選擇“1) Continue”
輸入數字1,然後回車
4.5.5、回車
輸入回車,進入shell界面
我們就可以在這個shell界面輸入命令進行虛機的恢復了。
4.6、恢復虛機
4.6.1、設置虛機網絡
4.6.1.1、查看rescue模式下的網卡
4.6.1.2、設置網絡ip並且添加出口網關
這裏原虛機宕機前是什麼ip和什麼網關,這裏就設置成什麼,跟原來一樣即可,主要是保證rescue模式下有個ip能跟內網通以便掛載nfs文件系統。
4.6.1.3、再次查看網卡
4.6.1.4、測試連通
發現通了。
4.6.2、掛載nfs
4.6.2.1、創建掛載點並掛載nfs文件系統
隱掉的ip是nfs服務器的ip。
4.6.2.2、查看掛載
4.6.3、檢查備份文件
發現備份文件是正常的。
4.6.4、執行恢復
gzip -dc /backup/10.xxx.xxx.45_sda_image.gz | dd of=/dev/sda
此時恢復已經成功,下面我們嘗試重啓虛機。
5、恢復後檢查
5.1、關閉虛機
5.2、去除cdrom
5.3、打開虛機電源
5.4、進入控制檯檢查
5.5、虛機正常啓動