虛擬機并不是沒有說是安全的,沒有任何問題的。當虛擬機出現(xiàn)問題的時候,里面的數(shù)據(jù)應該怎么樣備份呢?小編就介紹幾種備份的的方式吧!
方法一 停機備份
在業(yè)務的維護時間,將虛擬機的鏡像復制一份,并拷貝到其他宿
主機上,這種方式操作最簡單,也最有效,缺點是只能業(yè)務停機時間操作,備份的周期比較長。
方法二 通過快照備份虛擬機
在線虛擬機的快照實際有兩個層面,磁盤快照和內(nèi)存快照,如果是關機情況下,就只有磁盤快照了。如果是關機情況,虛擬機的備份就很簡單。下面主要討論在線虛擬機的備份方法
虛擬機快照操作命令很簡單
virsh # snapshot-create-as test
Domain snapshot 1419296749 created
但是centos6 centos7中,創(chuàng)建虛擬機的快照,虛擬機會被暫停幾秒中!
virsh # list --all
Id Name State
48 test paused
快照查看
virsh # snapshot-list test
Name Creation Time State
1419296749 2014-12-22 20:05:49 -0500 running
1419296772 2014-12-22 20:06:12 -0500 running
通過qemu-img命令查看
image: test
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 4.0G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1419296749 1.8G 2014-12-22 20:05:49 01:07:36.123
2 1419296772 1.8G 2014-12-22 20:06:12 01:07:48.249
Format specific information:
compat: 1.1
lazy refcounts: false
將快照遷移出來,并拷貝到其他宿主機上,就可以完成虛擬機的備份
qemu-img convert -f qcow2 -O qcow2 -s s1 test.qcow2 test-s1.qcow2
因為快照對虛擬機的性能有影響,備份完成后,刪除快照
virsh # snapshot-delete test 1419296749
Domain snapshot 1419296749 deleted
virsh # snapshot-delete test 1419296772
Domain snapshot 1419296772 deleted
virsh # snapshot-list test
Name Creation Time State
先回答兩個朋友在后臺提的問題
問題一
你最新文章的最后一段,我的理解是做快照過程中對虛擬機性能有影響,做完之后只是個文件吧,沒有性能影響吧?
解答
快照對虛擬機的性能影響很大的,一般基于系統(tǒng)的快照,都是采用寫時復制的技術,一份快照的時候,要寫一份數(shù)據(jù),需要先把改變的地方復制出來,然后在寫如,如果是兩份快照,就要寫三次,所以對性能影響很大的。
問題二
如何選擇
虛擬化的存儲方式?本地?nfs?iscsi?gluster?其他?有沒有相關的測試數(shù)據(jù)?
解答
這個和硬件有很大的關系,比如用ssd,無論用那種方式,肯定要比普通的sas快很多。其次,基于網(wǎng)絡的文件系統(tǒng),和網(wǎng)絡帶寬關系也很大。如果虛擬機數(shù)量比較少,建議使用本地的存儲方式,如果虛擬機數(shù)量多,并且要做高可用,就需要使用共享存儲。共享存儲使用商業(yè)存儲還是分布式文件系統(tǒng),這個第一要看自己對性能的要求,第二還要看自己的預算??傊畱撓却_定自己的需求,然后在決定選擇那種方式。
虛擬機的災備方式(二)
方法三 使用lvm快照備份虛擬機
如果虛擬機全部使用的是lvm,可以利用lvm的特性,通過lvm快照備份虛擬機
通過lvcreate 創(chuàng)建lvm快照
lvcreate -s -n centos7s1 -L 10G /dev/testvg/centos7onlvm
Logical volume "centos7s1" created
通過lvs命令查看快照
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
centos7onlvm testvg owi-aos--- 200.00g
centos7s1 testvg swi-a-s--- 10.00g centos7onlvm 0.06
通過dd命令將lv快照備份到文件中
dd if=/dev/testvg/centos7s1 of=/home/centos7.bak
在將文件復制到其他宿主機,恢復的時候,直接使用raw格式的文件,或者在通過dd命令將備份文件復制到備用宿主機上的lvm都可以
方法四 使用qcow2塊復制備份
很遺憾目前centos6 centos7默認攜帶的qemu還不支持qcow2塊復制的功能,如果要使用這個功能,只能手工編譯qemu或者使用fedaro,下面的測試需要在fedaro21上測試。
blockcopy必須是臨時生成的虛擬機,不能是define狀態(tài)的虛擬機,先將在線的虛擬機xml文件備份
virsh dumpxml --inactive win7 >/tmp/win.xml
然后undefine之后才能使用blockcopy
virsh # undefine win7
將虛擬機的一塊硬盤blockcopy到/home/win72.bak文件中,命令如下
virsh blockcopy --domain win7 hda /home/win72.bak --wait --finish --verbose
塊復制: [100 %]
通過qemu-img 查看
[root@f21b home]# qemu-img info win72.bak
image: win72.bak
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 8.3G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
在將文件復制到備用宿主機上就可以。
方法五 在線的帶存儲遷移
從centos6.4開始,支持在線的帶存儲遷移,這個是一個非常強大的功能,操作方法如下
第一步 在備用宿主機上通過qemu-img create 創(chuàng)建好空文件,大小和要備份的虛擬機一模一樣
qemu-img create -f qcow2 -o preallocation=metadata centos6.qcow2 150G
空文件需加預分配參數(shù),要不復制過去的文件會是按照qcow2預分配文件的大小
第二步 設置遷移速度,一般不希望遷移的時候?qū)φI(yè)務造成影響,設置遷移速度限制到600M/秒
virsh migrate-setspeed centos6 600
第三步 遷移
virsh migrate --live --copy-storage-all --unsafe --persistent centos6 qemu+ssh://192.168.0.101/system
遷移時間隨磁盤
空間大小而不通,磁盤空間越大,遷移時間越長,遷移的過程是先遷移磁盤,然后遷移內(nèi)存,遷移內(nèi)存的時候,一般業(yè)務會瞬斷下。虛擬機一瞬間在會在一邊關閉,領一邊的宿主機開啟。
以上就是小編介紹備份的全部內(nèi)容。