ovirt-3.5.3基于模版創建的win2008虛擬機無法二次啟動的解決方法

過程描述:

  • 創建虛擬機win2008
  • 通過sysprep封裝下win2008并關機
  • 基于此vm創建模版win2008-tmpl
  • 基于模版win2008-tmpl創建clone/thin模式虛擬機win2008-vm003
  • 首次啟動win2008-vm003成功
  • 關機再啟動win2008-vm003失敗!(可重現)

日志分析

less /var/log/libvirt/qemu/win2008_vm003.log (vdsm.log,engine.log略過)

2015-07-30T05:43:49.621585Z qemu-kvm: -drive file=/var/run/vdsm/payload/4c90582e-f337-4240-8747-50ed94dcd044.8580d6eeef5171d2fbdca8f7699028b8.img,if=none,id=drive-fdc0-0-0,format=raw,serial=:

could not open disk image /var/run/vdsm/payload/4c90582e-f337-4240-8747-50ed94dcd044.8580d6eeef5171d2fbdca8f7699028b8.img:

Could not open '/var/run/vdsm/payload/4c90582e-f337-4240-8747-50ed94dcd044.8580d6eeef5171d2fbdca8f7699028b8.img': Permission denied

2015-07-30 05:43:49.787+0000: shutting down

根據日志應該是找不到payload的img,查看/var/run/vdsm/payload目錄,確實沒有此img(但首次啟動vm時此img存在)

另:redhat有提這個bug,但沒提出目前版本3.5.3的解決方法,只說ovirt3.6已解決此問題。

解決方法##

1. 分析

由于本vm是通過模版創建且模版機通過sysprep封裝過,engine會在vm首次啟動時創建sysprep payload(前面報錯的img),當關閉vm時payload的img會自動刪除,但數據庫并沒有清理該device條目。而我們再此啟動時并不需要掛載此payload,且所在路徑/var/run/vdsm/payload也已沒有img,導致數據庫中的記錄和實際不一致,而啟動虛擬機時會自動讀數據庫條目并添加了啟動選項
`-drive file=/var/run/vdsm/payload/4c90582e-f337-4240-8747-50ed94dcd044.8580d6eeef5171d2fbdca8f7699028b8.img`,而實際上已沒用此img,所以報錯無法找到payload的img。

2. 解決方法

根據上面的分析,考慮直接刪除engine的數據庫相關條目,vm的device都存放在表vm_device中。以下為具體操作命令(除非緊急需要,不建議修改生成環境中的engine數據庫):

su - postgres  #切換到數據庫賬戶

ps_dump engine > engine.sql.bak #備份engine的數據庫

psql engine #連接到engine數據庫

SELECT vm_guid  FROM vms WHERE vm_name='win2008_vm003'; #查找win2008_vm003的ID(4c90582e-f337-4240-8747-50ed94dcd044)

DELETE FROM vm_device WHERE vm_id='4c90582e-f337-4240-8747-50ed94dcd044' and device=floppy; #根據查找到的ID來刪除vmPayload設備

3. 驗證

再次啟動win2008_vm003

查看qemu/win2008_vm003.log,未發現啟動項目
`-drive file=/var/run/vdsm/payload/4c90582e-f337-4240-8747-50ed94dcd044.8580d6eeef5171d2fbdca8f7699028b8.img`

查看win2008_vm003狀態,已正常啟動
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,947評論 18 139
  • 負載均衡通過將傳入請求分布到多個虛擬機來提供更高級別的可用性。 本教程介紹了 Azure 負載均衡器的不同組件,這...
    ITknight閱讀 468評論 0 0
  • 在公司避免不了會給電腦重裝系統,小到幾臺大到幾十上百臺,如果就只有幾臺手動安裝就可以了,那么如果幾十上百臺,手動安...
    jie0112閱讀 2,431評論 0 4
  • 這俗話說,燈紅酒綠惹人醉,社會打拼確實累,這俗話又說,二逼男女歡樂多,除了酒吧就是喝,今天就跟各位看官來聊一下那些...
    侯言狼語閱讀 395評論 0 0
  • 下午,拿出婆婆給我的白蒿,泡上,熱氣氤氳中,屢屢蒿香撲鼻而來,清新中帶著母親的氣息。 熱茶中的白蒿,由灰白色變成了...
    小鹿says閱讀 176評論 0 0