×

虛擬機的災備方法

  • 作者:
  • 來源:
  • 瀏覽:100
  • 2018-04-23 14:17:30

虛擬機并不是沒有說是安全的,沒有任何問題的。當虛擬機出現(xiàn)問題的時候,里面的數(shù)據(jù)應該怎么樣備份呢?小編就介紹幾種備份的的方式吧!

   1452070271303.png

  
  虛擬機并不是沒有說是安全的,沒有任何問題的。當虛擬機出現(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命令查看
  qemu-img info test
  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)容。
 

免責聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權,也不承認相關法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權內(nèi)容。

免費咨詢獲取折扣

Loading