今天就如往常一樣,要建一個新的 VM,但是從 Template Deploy 的時候出現了異常訊息
此訊息表示無法存取 Template 的 vmdk 檔,因為被鎖定,但 Template 應該是不會有人去存取才是,理論上不會出現鎖定的行為,我就 Google 了一下,試過一些方法:
1. 把 Template 轉成 VM,無法開機,錯誤訊息一樣
2. 建立 Snapshot,然後再去 Snapshot 管理員選擇 Delete all,這個方法也沒用
後來終於發現問題所在,因為我上次用這個 Template Deploy 出來的 VM(之後都簡稱 MyVM),我去看他的 VMDK,赫然發現這個 MyVM 掛的硬碟竟然是 Template 的 VMDK 檔,真是哪門子的爛 Bug!
還好這個 MyVM 還沒交付給 User,只是個乾淨的 Windows,於是我就把這個硬碟從 MyVM 移除,把原本屬於他的掛上去,然後就正常了。
事情當然還沒結束,身為一個工程師,不能不了解原因就這樣放他過去,不然以後還是會發生,當我把 MyVM 的硬碟移除後,Template 也正常了,結果 Template 的硬碟變成 MyVM 之前的那顆,因為我之前在 Windows 裡面有建一個帳號,結果這個帳號出現在 Template 裡面,讓我只好重做一個乾淨的 Template,所以總結以上,正確的處理方式應該是:
- 關閉 MyVM,把 Hard Disk Remove
- 把 Template Convert 為 VM,把Hard Disk Remove
- 把 Template 的 Hard Disk Copy 到 MyVM 的 Datastore
- 把 MyVM 的 Hard Disk Copy 到 Template 的 Datastore
- 把原本 Template 的 VMDK 掛給 MyVM
- 把原本 MyVM 的 VMDK 掛給 Template
- MyVM 開機,應該就會跟之前一樣
- Template 重新 Convert 為 Template
Buttttttttttttttttttttttt,為什麼會出現這個爛 Bug 啊,不能這樣啊,不然以後我從 template Deploy VM 出來都要去檢查 VMDK 位置的話不就太蠢了!
所以我又實驗了一次 Deploy,很幸運的試了出來:
只要你在 Deploy VM from this template 的時候,有改硬碟大小,那這個 VM 就會掛到原本 Template 的 VMDK!
結論是,如果你要改新的 VM 硬碟大小,請 Deploy 成功之後再改……..
1 則留言:
Thanks , it help a lot.
張貼留言