Centos7.4在vmware6.5下基於nfs和dd實現虛機的備份恢復

目錄

1、背景說明... 2

2、搭建nfs服務器... 2

2.1、nfs服務端安裝包... 2

2.2、關閉防火牆... 3

2.3、創建共享目錄... 3

2.4、掛載數據盤... 3

2.4.1、磁盤分區... 3

2.4.2、創建pv. 3

2.4.3、創建vg. 3

2.4.4、創建lv. 4

2.4.5、格式化lv. 4

2.4.6、掛載lv. 4

2.4.7、修改fstab啓動文件... 4

2.4.8、查看掛載... 4

2.5、修改nfs目錄權限... 4

2.6、配置nfs權限... 4

2.7、重新加載nfs服務... 5

2.8、檢查服務端nfs資源... 5

2.9、客戶端測試掛載... 5

2.9.1、創建客戶端掛載目錄... 5

2.9.2、掛載nfs客戶端... 5

2.9.3、檢查客戶端掛載... 5

2.9.4、修改fstab開機掛載... 5

2.9.5、測試客戶端創建文件... 6

3、虛機備份恢復測試... 6

3.1、掛載nfs客戶端... 6

3.1.1、創建掛載點... 6

3.1.2、安裝nfs-utils包... 6

3.1.3、掛載nfs文件系統... 6

3.1.4、查看掛載... 7

3.2、執行虛機備份... 7

3.3、模擬虛機故障... 7

3.4、重啓虛機... 7

3.5、檢查重啓結果... 7

3.6、嘗試使用控制檯重啓虛機... 8

3.6.1、關閉電源... 8

3.6.2、啓動虛機... 9

3.6.3、控制檯查看... 9

4、虛機恢復... 10

4.1、上傳鏡像... 10

4.2、關閉虛機... 10

4.3、掛載鏡像到虛機... 11

4.4、開啓虛機... 12

4.5、進入rescue模式... 12

4.5.1、選擇Troubleshooting. 12

4.5.2、選擇“Rescue a CentOS system”... 13

4.5.3、按“Enter”鍵... 13

4.5.4、選擇“1) Continue”... 13

4.5.5、回車... 14

4.6、恢復虛機... 15

4.6.1、設置虛機網絡... 15

4.6.2、掛載nfs. 16

4.6.3、檢查備份文件... 16

4.6.4、執行恢復... 17

5、恢復後檢查... 17

5.1、關閉虛機... 17

5.2、去除cdrom. 18

5.3、打開虛機電源... 19

5.4、進入控制檯檢查... 19

5.5、虛機正常啓動... 20

 

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、虛機正常啓動

 

發佈了177 篇原創文章 · 獲贊 43 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章