從不同的 VHD 文件(但舊文件的副本)重新啟動 VM
我想知道是否有其他人這樣做並隨後遇到了任何問題,或者根據我的描述,任何人都可以提出我可能遇到的問題類型:
我將 Windows 2008 R2 Datacenter 作為我的 Hyper-v 主機,並在其上執行 Windows 2008 R2 Ent 來賓 VM。
在進行重大更新之前,我保存了來賓 VHD 文件的副本(這是來賓 VM 上的 C: 驅動器)。這不是快照,只是 VHD 文件的複制/粘貼。
由於 SQL Server 2012 升級遇到一些困難和挫折,我決定放棄故障排除(我有一個很短的維護視窗可以使用)——而是停止了 VM。然後將 VHD 文件更改為我之前保存的上一個副本。
VM 已啟動,但域控制器無法辨識。我將其刪除並重新添加到域中,之後沒有重大問題。我完成了升級,沒有以前的問題,並且安裝了 Windows 更新也沒有問題。
這被認為是不好的做法嗎?我可以保持此 VM 不變,還是需要從頭開始重建以避免作業系統異常?如果您是首席系統管理員並且這是一個生產盒,您會允許嗎?謝謝
首先,您需要了解一些有關 Windows 機器/域的基本概念(可能知道也可能不知道):
- 電腦和使用者一樣是安全主體
- 名稱只是對底層 SID 的人性化引用
- 電腦在啟動時向域進行身份驗證
- 電腦帳戶也有密碼(預設情況下每 30 天更改一次)
基本上,當您將舊 VHD 卡在機器中時發生的事情是(我打賭),電腦帳戶的本地密碼與 DC 為電腦帳戶設置的密碼不匹配,因為密碼在備份之間的某個時間被更改你做了和你恢復它的時間。結果,域控制器不會讓電腦進行身份驗證,您看到的錯誤是信任關係失敗。
這依賴於一兩個假設,最明顯的是您的備份和失敗的機器沒有不同的 SID,這也會破壞域信任。當您重命名電腦或將電腦加入與現有帳戶同名的域時,通常會發生這種情況。新重命名的電腦將嘗試使用其新 SID 進行身份驗證,但名稱映射到舊 SID,因此當 AD 檢查時,SID 不匹配並且身份驗證失敗。
所以無論哪種方式,當你“恢復”舊備份時,你基本上破壞了你的虛擬機和域之間的身份驗證。我相信你能明白為什麼這很糟糕。(如果只是機器密碼,而不是不同的 SID,那就沒那麼糟糕了,值得一提。)
為什麼像你那樣做是“不好的做法”是主觀的,並且會從不同的管理員那裡得到不同的答案(或不同的具體問題),但我的回答基本上是這是不好的做法,因為有更好的方法可以做到這一點打破域身份驗證或增加複雜性和未知數。(備份有多舊?從那時到現在,系統發生了什麼變化?依賴於那些可能會破壞或導致難以解決問題的變化?等等)這也是不好的做法,因為聽起來你沒有實際的、有效的備份或快速恢復過程
$$ a real $$如果/需要時備份。這很糟糕,原因我希望你不需要澄清。 說了這麼多,聽起來你還是比較安全的。(當然,假設舊備份沒有失去一堆 SQL 數據,或者安裝了舊版本的東西,或者類似的任何基本的東西。)不同的電腦帳戶密碼不會在任何地方被引用,通常你的電腦的完整 SID 也不會被 AD 之外的太多引用,因此更改它不應該引起問題。(但就像任何一個在街區裡來過一兩次的管理員一樣,我見過一些會讓你的血液凝固並導致我排位賽的東西,否則這將是絕對的陳述。)
希望這會有所幫助。