1. 程式人生 > >Snapshot在virsh和qemu-img中的使用

Snapshot在virsh和qemu-img中的使用

 snapshot  -c  base_sys_centos5.564bit.img  CentOS5.5_64bit.img
在現有映象基礎上建立一個快照。
報如下錯誤:
emu-img: Could not create snapshot 'base_sys_centos5.564bit.img':-95 (Operation not supported)

2:懷疑是檔案格式不對,檢視一下。
qemu-img   info   CentOS5.5_64bit.img
image: CentOS5.5_64bit.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 3.4G

果然是raw格式

3:使用如下命令將raw格式的映象轉化為qcow2格式。
qemu-img  convert  -f  raw  -O qcow2   CentOS5.5_64bit.img   CentOS5.5_64bit_basesys_qcow2.img

4:轉換成功後,再次對映象建立一個快照

qemu-img snapshot -c CentOS5.5_64bit_Qcow2_basesys.imgCentOS5.5_64bit_Qcow2.img

OK,建立成功。

該步並不會建立一個新的映象,可以使用如下命令來檢視指定的映象上是否存在快照,並在合適的時候,恢復快照。

qemu-img  snapshot -lCentOS5.5_64bit_Qcow2.img

Snapshot list:
ID       TAG            VMSIZE            DATE      VM CLOCK
1       CentOS5.5_64bit_Qcow2_basesys.img     0 2011-07-2123:17:38   00:00:00.000

恢復快照:

qemu-img  snapshot  -a  CentOS5.5_64bit_Qcow2_basesys.img   CentOS5.5_64bit_Qcow2.img

其他操作:

  'snapshot' is the name of thesnapshot to create, apply or delete
  '-a' applies a snapshot (revertdisk to saved state)
  '-c' creates a snapshot
  '-d' deletes a snapshot
  '-l' lists all snapshots in thegiven image


一、kvm快照與恢復
1、為原虛擬機器所在的lv做一個快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm (一般快照大小是宿主的15-20%)
2、修改/etc/libvirt/qemu/虛擬機器名.xml,將此配置檔案裡虛擬機lv名,改成虛擬機器快照名。
vim /etc/libvirt/qemu/虛擬機器名.xml
   <source dev=‘虛擬機器快照名’>
3、重啟動計算機,即可使用快照虛擬機器。
4、恢復,當快照虛擬機器弄亂或弄壞了,可以直接用回原始的虛擬機器做一個快照,再用上面同樣的方法,指向這新建的快照。

二、快速製造多臺虛擬機器
1、為原虛擬機器所在的lv做一個快照。
lvcreate -L 2G -sn kvmSS /dev/vg/kvm (一般快照大小是宿主的15-20%)
2、複製/etc/libvirt/qemu/虛擬機器名.xml並改名為/etc/libvirt/qemu/虛擬機器名1.xml
cp /etc/libvirt/qemu/虛擬機器名.xml /etc/libvirt/qemu/虛擬機器名1.xml
3、修改 /etc/libvirt/qemu/虛擬機器名1.xml
vim /etc/libvirt/qemu/虛擬機器1.xml (修改一下幾項,隨便改只要與原來不一樣就可以了。)比如:
<name>1kvmSS</name>
<uuid>395ae05e-c118-e460-4de4-7f58e08f8aa1</uuid>
<source dev=‘虛擬機器快照名’>
 <macaddress='52:54:00:a7:11:cb'/>
4、virsh define 虛擬機器名1.xml (定義虛擬機器)
5、virsh start 虛擬機器名1 (新的虛擬機器就可以使用啦。呵呵)

如果遇到虛擬機器網絡卡啟動失敗提示device eth0 does not seem
可以ifconfig -a 檢視網絡卡的名字是否不是eth0.
如果不是,ip link set ethX name eth0


virsh常用命令一覽表
命令
說明
help 顯示該命令的說明
quit 結束 virsh,回到 Shell
connect 連線到指定的虛擬機器伺服器
create 啟動一個新的虛擬機器
destroy 刪除一個虛擬機器
start 開啟(已定義的)非啟動的虛擬機器
define 從 XML 定義一個虛擬機器
undefine 取消定義的虛擬機器
dumpxml 轉儲虛擬機器的設定值
list 列出虛擬機器
reboot 重新啟動虛擬機器
save 儲存虛擬機器的狀態
restore 回覆虛擬機器的狀態
suspend 暫停虛擬機器的執行
resume 繼續執行該虛擬機器
dump 將虛擬機器的核心轉儲到指定的檔案,以便進行分析與排錯
shutdown 關閉虛擬機器
setmem 修改記憶體的大小
setmaxmem 設定記憶體的最大值
setvcpus 修改虛擬處理器的數量

檢視Domain資訊執行的命令
命令 說明
domid 檢視虛擬機器的識別符號
domname 檢視虛擬機器的名稱
domuuid 檢視虛擬機器的 UUID
domstate 檢視虛擬機器目前的狀態
dominfo 檢視虛擬機器的資訊