KVM+Windows7+snapshot

 

在之前的文章(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 的快速、大量的佈署,也可以應用在測試環境,用途多多!

首先先觀察目前的分割區:

image

新增一個分割區,size 20GB,分割區 type 改為『8e』,新增完分割區之後,必須要重新開機

image

新增PV,加大現有的VG,新增一個15GB的LV

image

利用指令安裝,假設 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』(紅色的部份都是兩個減號)

image

image

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 關機

image

如同之前的步驟,先新增一個『/dev/sda6』,type『8e』,size 20GB,新增完分割區,必須要重新開機,步驟跟之前的類似,畫面就省略了…

重新開機之後,新增一個PV『/dev/sda6』,將這個PV『/dev/sda6』加入一個已經存在的VG『vol0』,加大VG的空間

image

確認VG有足夠的空間後,新增一個LV,這個LV是原來『/dev/vol0/win7』的snapshot,新增的指令為『lvcreate -s -n win7-snap -L 10G /dev/vol0/win7』

image

將 Virtual Machine 的定義轉出,檔名為『/tmp/win7.xml』,修改 Virtual Machine 的定義檔

image

將 Virtual Machine 的位置,改成『/dev/vol0/win7-snap』(大約在24行)

image

根據新的定義檔,重新定義 Virtual Machine

image

此時 Virtual Machine 的任何異動,包括複製檔案、安裝應用程式、安裝 Service Pack … 任何的操作,都不會修改到原始的 LV 『/dev/vol0/win7』,修改的部份都只會寫入『/dev/vol0/win7-snap』

為了驗證這個架構,先任意的在桌面上開啟一個目錄,模擬複製檔案、安裝應用程式、安裝 Service Pack …等動作

image

將 Virtual Machine 關機,清除 Virtual Machine 的設定,如果『lvremove -f /dev/vol0/win7-snap』可以移除成功,就可以省略『dmsetup remove vol0-win7-snap』這個指令

image

重新再建立一個 snapshot『lvcreate -s -n win7-snap -L 10G /dev/vol0/win7』,雖然名稱相同,但是內容卻是全新的

image

重新再定義 Virtual Machine,並且觀察 Virtual Machine 是否還原到之前的環境?

image

桌面上的目錄已經消失,Virtual Machine已經還原到之前原始的環境了…

image

以後如果還有需要還原,不需要再修改設定檔了,只需要將 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 的環境了!

本篇發表於 虛擬化, Linux, Windows, 一般。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s