在之前的文章(https://andersonwang.wordpress.com/2011/11/24/%E4%BB%A5%E6%8C%87%E4%BB%A4%E5%9C%A8kvm%E5%AE%89%E8%A3%9Dwindows-7-%E5%AE%89%E8%A3%9D%E5%88%B0lvm%E7%92%B0%E5%A2%83/)已經介紹過,如何將 Windows 7 安裝到 RHEL 6.0 KVM 環境中,這次還要再更進一步,將 LVM 的 snapshot(快照)功能也加上,這對 Virtual Machine 的應用是很棒的加分效果,LVM+snapshot的組合,可以方便 Virtual Machine 的快速、大量的佈署,也可以應用在測試環境,用途多多!
首先先觀察目前的分割區:
新增一個分割區,size 20GB,分割區 type 改為『8e』,新增完分割區之後,必須要重新開機
新增PV,加大現有的VG,新增一個15GB的LV
利用指令安裝,假設 Windows 7 64位元中文版的 ISO 檔放在『/tmp/tw_windows_7_enterprise_x64_dvd_x15-70973.iso』,Virtual Machine的名稱為『win7』,記憶體『2048MB』,兩個CPU。
『wget ftp://192.168.0.254/pub/iso/win7/tw_windows_7_enterprise_x64_dvd_x15-70973.iso -O /tmp/tw_windows_7_enterprise_x64_dvd_x15-70973.iso』
安裝的指令為『/usr/sbin/virt-install —vnc —noautoconsole —name=win7 —ram=2048 —arch=x86_64 —vcpus=2 —os-type=windows —os-variant win7 —hvm —accelerate —disk=/dev/vol0/win7 -w bridge=br0 —cdrom /tmp/tw_windows_7_enterprise_x64_dvd_x15-70973.iso』(紅色的部份都是兩個減號)
Windows 7 的安裝畫面就省略了,有興趣可以參考這篇:『https://andersonwang.wordpress.com/2011/11/24/%E4%BB%A5%E6%8C%87%E4%BB%A4%E5%9C%A8kvm%E5%AE%89%E8%A3%9Dwindows-7-%E5%AE%89%E8%A3%9D%E5%88%B0lvm%E7%92%B0%E5%A2%83』
安裝完成之後,接著要將 Virtual Machine 『移』到 LVM 的snapshot,先將 Windows 7 關機
如同之前的步驟,先新增一個『/dev/sda6』,type『8e』,size 20GB,新增完分割區,必須要重新開機,步驟跟之前的類似,畫面就省略了…
重新開機之後,新增一個PV『/dev/sda6』,將這個PV『/dev/sda6』加入一個已經存在的VG『vol0』,加大VG的空間
確認VG有足夠的空間後,新增一個LV,這個LV是原來『/dev/vol0/win7』的snapshot,新增的指令為『lvcreate -s -n win7-snap -L 10G /dev/vol0/win7』
將 Virtual Machine 的定義轉出,檔名為『/tmp/win7.xml』,修改 Virtual Machine 的定義檔
將 Virtual Machine 的位置,改成『/dev/vol0/win7-snap』(大約在24行)
根據新的定義檔,重新定義 Virtual Machine
此時 Virtual Machine 的任何異動,包括複製檔案、安裝應用程式、安裝 Service Pack … 任何的操作,都不會修改到原始的 LV 『/dev/vol0/win7』,修改的部份都只會寫入『/dev/vol0/win7-snap』
為了驗證這個架構,先任意的在桌面上開啟一個目錄,模擬複製檔案、安裝應用程式、安裝 Service Pack …等動作
將 Virtual Machine 關機,清除 Virtual Machine 的設定,如果『lvremove -f /dev/vol0/win7-snap』可以移除成功,就可以省略『dmsetup remove vol0-win7-snap』這個指令
重新再建立一個 snapshot『lvcreate -s -n win7-snap -L 10G /dev/vol0/win7』,雖然名稱相同,但是內容卻是全新的
重新再定義 Virtual Machine,並且觀察 Virtual Machine 是否還原到之前的環境?
桌面上的目錄已經消失,Virtual Machine已經還原到之前原始的環境了…
以後如果還有需要還原,不需要再修改設定檔了,只需要將 Virtual Machine 關機『virsh destroy win7』,殺掉 snapshot『dmsetup remove vol0-win7-snap』+『lvremove -f /dev/vol0/win7-snap』,重新再產生一個新的 snapshot『lvcreate -s -n win7-snap -L 10G /dev/vol0/win7』,就會是一個全新的 Windows 7 的環境了!