如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘
問題產生背景:
使用CloudStack+ KVM組合進行資源池納管工作,通過ISO鏡像文件創建了兩個模板: RHEL6U3 64位系統以及WindowsServer2008 R2 SP1 64位系統。 然后通過模板創建實例,掛載外接存儲,實例啟動后,通過fdisk -l 查看RHEL系統以及通過計算機管理中 的存儲管理查看Windows系統發現,RHEL系統可以顯示掛載的第二塊硬盤(卷),但是 Windows卻始終 不能識別。 問題分析: 首先考慮是不是CloudStack的SSVM出現了問題,不能夠執行諸如卷的掛載等操作,但是RHEL這樣的Linux操作 系統不管再掛幾塊新磁盤或者卸載之類的操作均不會有任何問題,所以判斷問題不是出在CloudStack上面,而是在于操作系統。 那么會不會是KVM不能夠對 Windows虛擬機進行磁盤掛載操作呢?顯然不可能,在沒有 CloudStack或者Openstack這樣的云管理平臺之前,我們就是直接使用RHEL上面的KVM去創建虛擬機,不管是virsh之類的 命令也好,還是virt-manager這樣的圖形化控制臺也好,都不存在說Windows虛擬機不能添加第二塊硬盤, 在 CloudStack里面對應添加除系統卷之外的第二塊卷。既然從CloudStack的管理界面看不出任何問題,那么 就登陸到KVM主機上面查看吧,打開 virt-manager圖形化工具,點擊RHEL與Windows虛擬機的Details查看 硬件,發現硬盤跟網卡的硬件類型均為virtio,然后通過手動添加硬盤的方式對RHEL跟Windows進行測試,發現 如果硬盤類型添加為IDE,則兩個操作系統均可以顯示出來,然而如果添加virtio類型的硬盤,只有RHEL可以顯示,而Windows卻不能顯示。那么virtio是個什么東東呢?http://www.linux-kvm.org/page/Virtio?,?所謂的半虛擬化驅動,而CloudStack調用KVM接口去創建虛擬機的時候,數據磁盤類型就是使用的virtio類型的,而在KVM上Windows虛擬機并不能支持,所以導致無法成功顯示出數據磁盤。
解決步驟:
圖 通過界面添加一個新的數據盤
圖 點擊附加磁盤
圖將磁盤掛載到windows2008上
先取消ISO
圖 點擊掛載ISO
圖 選擇ISO
圖 重啟實例
圖 重啟實例后打開設備管理器查看SCSI控制器
圖 選擇驅動位置
圖 選擇驅動掛載盤
圖 安裝驅動
圖 確認驅動安裝是否成功
圖 成功顯示數據盤
圖 初始化磁盤
圖 開始格式化
圖 開始分區
圖 格式化成功
圖 大功告成
注意:
Windows server 2003的驅動:virtio-win-0.1-30.iso
Windows server2008 的驅動:virtio-win-0.1-65.iso
否則會造成藍屏的!!!
=========================2013年12月15日 新問題分析============================
今日,客戶反饋說通過CloudStack + KVM 創建的Windows 實例使用起來體驗沒有原始的ESXI主機上面的虛擬機快,Linux虛機倒是沒有什么問題,排除網絡跟存儲的原因,問題就在虛擬化層面了?難道KVM的問題,倒是KVM的性能也不會有那么大的差距,找了很久,發現唯一的區別就在于Windows的第一塊硬盤始終是IDE的,即使按照上文給Windows安裝了VIRTIO驅動,第一塊盤都不會顯示為VIRTIO。
也就意味著我們在通過ISO創建實例,然后通過實例制作模板的時候,就需要將ISO注冊成Windows PV的操作系統,然后通過如此的ISO創建實例,再安裝virtio驅動,會將磁盤跟網絡的virtio驅動都安裝上,然后將實例做成模板,問題就解決了。
本文轉自 暗黑魔君 51CTO博客,原文鏈接:http://blog.51cto.com/clovemfong/1320587,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Server 2008
- 下一篇: 梦到别人抬棺材出殡是什么意思