一般的虛擬機器映象檔案,比較直接的做法是存放在乙個img映象檔案裡,或者直接使用/dev/sda*分割槽。但是萬一把虛擬機器分割槽「玩壞」了就不好恢復了。
qemu支援一種映象格式qcow2,能夠建立增量映象,這樣可以把修改存在新檔案裡,當出錯時可以保護原始映象。這個功能非常有用,【xen似乎支援qcow2,待查】
但是xen自身不支援。
xen想要使用增量映象,只能使用lvm檔案系統的snapshot快照功能。(note:xen hvm虛擬機器因為使用qemu做前端,所以同樣可以用qcow2格式。但是pv虛擬機器就只能用lvm snapshot)
lvm可以對乙個分割槽建立多個快照(snapshot),作為分割槽的增量映象。在快照裡的修改不會影響到源分割槽。
在建立快照時,需要指定快照的大小。當snapshot的空間被填滿時,lvm會丟棄這個快照(奇怪的設定所以盡量不要塞滿……而比較新的lvm版本支援把snapshot與本體分割槽合併,如果建立了快照又想同時修改本體和快照,可以使用這個merge功能。
下面是具體的配置。
環境:lvm版本為2.02.54。這個版本比較老。比較新的版本支援把snapshot與本體分割槽合併。
gui使用kde的kvpm,和gnome下的system-config-lvm
lvm的檔案系統可以定義在物理分割槽上,或者映象檔案裡。我使用的是/dev/sda*分割槽。
建立lvm分割槽:
sudo pvcreate /dev/sda11 -v
注意這一步會抹掉分割槽頭部資訊。剩下的分配捲組/分割槽的步驟可以在gui裡完成。最後的結果是這樣:
/dev/sda11(physical volume)
--- vg0(group0)
------ pv (10gb, ext4)
------ swap (512mb, swap)
其他的預留給hvm虛擬機器和snapshot
安裝配置好映象pv裡的所有內容後,使用gui建立兩個snapshot:pv-shot1和pv-shot2,大小均為2gb
然後把虛擬機器配置檔案做相應的修改:
xm_vars.var('volume', use="specify the logical volume (snapshot) used")
disk = [
"phy:/dev/vg0/%s,xvda2,w" % volume,
]name = 'debian-pv-%s' % volume
執行時的命令列:sudo xm create -c debian-pv.cfg volume=pv-shot1
這樣啟動的虛擬機器,所有的修改都在snapshot中進行,原始映象可以得到很好的保護。
Xen虛擬機器
虛擬化技術是雲計算實現彈性計算的核心技術。在構建雲計算平台中,虛擬機器的安裝是基礎。常用的虛擬機器工具很多,如vmware xen kvm virtual pc等,這些工具使得使用者可以在單台物理pc上 稱為宿主機 虛擬出多個虛擬機器vm virtual machine 由於在每個vm上可以安裝與宿...
Xen虛擬機器檢測
應用程式如何獲知自己是否工作在xen 虛擬機器中呢?使用cpuid指令可以完成該任務。uint32 t eax,ebx,ecx,edx,pages,msr,i char signature 13 cpuid 0x40000000,eax,ebx,ecx,edx uint32 t signature ...
Xen虛擬機器VNC輸出
摘要 有時需要通過主機hvc0登入到虛擬機器中,有時需要借助vnc登入虛擬機器進行管理,這樣就需要有相應的配置保證兩者都能正常輸出。具體的配置如下文。hvc是xen虛擬化技術引入的對虛擬機器進行控制的虛擬console,在虛擬機器的配置中自動完成 vnc顯示vga硬體輸出,可以完成對虛擬機器的管理。...