標籤:
在使用kvm給windows虛擬機器動態掛載virtio類型的硬碟時候遇到問題,通過下面的文章知道需要安裝virtio驅動,從而解決問題使掛在正常,在此處mark一下
問題產生背景:
使用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驅動都安裝上,然後將執行個體做成模板,問題就解決了。
原文:http://clovemfong.blog.51cto.com/3297559/1320587
[轉] 如何讓CloudStack使用KVM建立Windows執行個體成功識別並掛載資料盤