問題產生背景:
使用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
否則會造成藍屏的!!!