多年來,在部署新的應用程序和虛擬機時,VMware模板節省了管理員寶貴的時間。
從本質上講,模板是虛擬機的主副本,或者是一個全新的安全補丁,具備公司所有的標準軟件安裝和配置,而且可以在虛擬環境中提供最佳性能。模板的目的是提供一個可以供應許多虛擬機的基地,最好讓它們保持最佳的狀態。
通過確保虛擬機模板都是正常的,管理員可以節省大量時間,減少煩憂。多年來,我已經建立了大量的模板。以下是一些可以使虛擬機發揮最大的性能的實踐經驗和技術,以及虛擬機配置情況。
使用快照并刪除不必要的設備
為了充分利用模板,你應該不斷更新并維護它們。在任何情況下,你都不想成為不小心配置錯誤或破壞公司的“光輝形象”的人,因為這些都無法恢復。使用快照是一個幫助你保持運行的辦法。快照是一個極好的方式,無論你不小心做了哪些改變,它都能確保恢復到原來的狀態,同時保存模板。將虛擬機轉換回模板時,一定要記得提交或刪除你的快照,因為它們的存在會大大增加供應時間。
刪除不存在或需要的設備是一件不費腦力的事。當你創建一個虛擬機,默認是創建一個軟盤驅動器和一個串行端口,這兩項是很少用的。如果你不打算使用它們, 就從模板的配置中刪除。如果需要的話,你可以在每個虛擬機的基礎上重新添加這些設備。同時, 打開設備管理器顯示當前沒有呈現的設備之前,使用“設置devmgr_show_nonpresent_devices = 1”命令。這些設備已經安裝,但沒有顯示。有些設備并不需要,你可以將它們處理掉。
使用最新的虛擬兼容模式
這個技巧比其他的更棘手。一方面,它可以讓我們的兼容模式隨環境變化而更新,獲得所有新的最大值以及ESXi的最新版本和特性。另一方面,考慮在其它地方可以使用該模板。如果可以將該模板部署升級到ESXi 5.0,就不要升級到5.5。當你想使用最新的兼容性模式,選擇是很重要的。
考慮有效的虛擬機配置選項
請務必考慮虛擬機中所有的配置和先進的配置項。例如,CPU Hot-Add和內存Hot-Plug系統默認是禁用的。你想在模板中打開,然后在虛擬機中使用是不可能的,除非虛擬機系統電源關閉。僅僅因為它默認是禁用的,并不意味著它需要保持這種方式。
關注存儲
如果設備容量是一個問題,你肯定可以利用vSphere的自動精簡配置,因為它屬于模板存儲。創建無法提供實質性內容的模板,它們只會消耗盡可能多的VMDK數據存儲空間。通過使用大量的模板來節省更多的空間是一個很好的方式。此外,考慮在自己的數據存儲空間儲存所有的模板。這樣,在部署過程中,你會孤立模板數據存儲讀取I/O,利用產品或目標數據存儲記錄I/O。更要注意,如果你使用的是Windows Server 2003或更低的版本, 當格式化這些Windows驅動器時,要確保與存儲相匹配。不匹配的模板將導致部署虛擬機時發生偏差,這會對性能造成很大的影響。
給操作系統和應用程序打補丁
沒有什么比幾分鐘內用模板部署虛擬機更單調,然后需要花上幾小時的時間執行Windows更新。你通常會花時間使用更新虛擬機的操作系統并應用到你的模板。更好的選擇是,在日歷封鎖時間內建立一個重復事件保持模板更新。不要忘記其他應用程序,如Adobe、Java、VMware工具等,這些也需要更新。同樣, 在這個過程中,為了減少計算機被感染的幾率,你可能想要隔離或限制網絡訪問模板。
應用程序的基本負荷
在模板中除了安裝、配置和修補一個操作系統,你還可以使用此功能來提供一個基礎服務器負載的應用程序。如果你有安裝在每一個單獨服務器上的軟件,如7-Zip、PowerShell和殺毒軟件,可能要考慮增加這些模板。這將確保每個用該模板部署的虛擬機都安裝了這些應用程序,并且配置方式都一樣。
為了使虛擬機具備更好的性能,需要調整和設置Windows和Linux,可以啟用或禁用很多選項。除了使用Sysprep,我總會確保在我的模板設置幾個選項。
Windows
啟用和配置遠程桌面協議(RDP)。出于安全考慮,你可能想要繼續啟用遠程桌面,并指定一些可以將RDP添加到服務器的用戶。
部署和設置WinRM,可以幫助你實現遠程管理硬件和操作系統,或者啟動本地化PowerShell會話。這都取決于你實施哪種安全指導方案。使用命令行”winrm quickconfig”默認選項或“winrm幫助”進一步選擇。
我已經在物理服務器上更改Windows啟動選項很久了。降低顯示操作系統列表的時間以及禁止發生故障時自動重啟,我總會在模板中用到。
最后一件事是Windows設備的睡眠和休眠。在電源選項中我總是選擇“高性能”選項,甚至修改計劃,確保顯示屏永遠不會關閉。
利用模板將許多舊項目部署到每一個虛擬機沒有任何意義。轉換成一個模板之前,清除它們吧。
Linux
清理安裝補丁的YUM/Apt緩存是一個好主意。
很多時候,如果你只打包Linux虛擬機模板而沒有清理現有udev設備規則,你會發現你的新網卡將顯示eth1。你可以用命令行“rm - f /etc/udev/70 *”刪除udev固有的設備規則,阻止這種情況發生。
顯然,安全始終是一個重要問題。SSH密鑰可用于執行“login-less”認證,因此多個虛擬機使用相同的密鑰是一件糟糕的事。包裝成模板之前使用命令行“rm - f /etc/ssh/ *鍵*”刪除它們。
就像我們舍棄Windows中事件查看器,我們可以在Linux的旋轉和清除日志上做同樣的處理。首先,運行logrotate開始一個新的日志,然后繼續使用“logrotate - f /etc/logrotate.配置來處理那些你認為不需要舊日志。
最新的虛擬機模板在清潔性、高效性方面應該不言而喻。通常,如果基于一個圖像沒有成千上萬的虛擬機,IT企業將部署數百個虛擬機,并確保圖像滿足安全法規,包含標準工具并最大化地發揮性能是部署成功的關鍵。我們當然沒有提到所有可以在Linux或Windows調整的模板,所以如果你有任何其他的想法,我鼓勵你在下面留下你的評論。