在使用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实例成功识别并挂载数据盘的更多相关文章

  1. Linux重装为Windows后读取原EXT类型数据盘

    Linux重装为Windows后读取原EXT类型数据盘 1 2 3 4 分步阅读 Windows的文件系统通常使用NTFS或者FAT32格式,而Linux的文件系统格式通常是EXT系列.当操作系统从L ...

  2. OpenStack创建Win10实例

    直接用Windows的iso文件创建实例是创建不出来的,需要先在kvm下创建qcow2格式的虚拟机,然后用已经创建好的虚拟机文件当做OpenStack的镜像来创建实例就好了. 首先第一点是需要有一台L ...

  3. centos7 通过kvm+vnc 实现远程桌面虚拟化和创建windows、Linux虚拟机

    感谢朋友支持本博客.欢迎共同探讨交流,因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  4. 烂泥:KVM虚拟机windows系统增加硬盘

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前一篇文章介绍了有关linux系统添加硬盘的方法,这次我们来介绍有关windows系统添加的相关步骤. 其实linux和windows添加的硬盘的方法都 ...

  5. KVM下windows虚拟机使用virtio驱动

    KVM下windows虚拟机默认disk使用的是Qemu IDE硬盘,网卡默认是rtl8139网卡.为了使kvm主机在相同的配置下,有更好的效率,可以将网卡和磁盘替换成virtio的驱动. windo ...

  6. kvm下Windows激活方式小计

    使用kvm创建widnwos镜像模板,镜像模板默认是已经激活的正版系统,但是使用程序拷贝部署到不同的机器后发现已经激活的系统变成未激活状态,我们需求就是需要拷贝到不同的机器也能显示是正版系统 网上找了 ...

  7. KVM虚拟机windows系统增加硬盘

    原文:http://www.ilanni.com/?p=6211 前一篇文章介绍了有关linux系统添加硬盘的方法,这次我们来介绍有关windows系统添加的相关步骤. 其实linux和windows ...

  8. ubuntu14.04 desktop 32-bit kvm装windows xp

    经过这几天来的折腾,总算是在ubuntu14.04用kvm装上了xp, 看不少的的贴,也绕了不少的圈,总的来说,非常感谢CSDN上的"上善若水75",看着他写的一个分类" ...

  9. kvm 安装 windows 虚拟机

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211108848062/ 相关话题:https://ww ...

随机推荐

  1. 微软企业库3.1DIY编译使用(数据库连接符写在企业库DLL里)

    1.在winform项目app.config文件中去掉"PublicKeyToken=b03f5f7f11d50a3a"(不然无法加载使用新编译的企业库DLL文件) 2.在企业库所 ...

  2. hdu_5179_beautiful number(数位DP)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5179 题意:给你一个范围,问你漂亮的数有多少个,漂亮的数的定义为 数位高的比数位低的大,并且 数位高的 ...

  3. Nginx 502/504 Gateway time-out错误完美解决方案【转发】

      在安装完Nginx+PHP-fpm+Mysql后,跑PHP的应用会经常出现504 Gateway Time-out 或者502 Bad Gateway的情况. Nginx 504 Gateway ...

  4. Windows查看端口被哪个进程占用

    命令 查看PID: netstat -ano|findstr 端口号 查看进程名称: tasklist|findstr PID 结束进程: taskkill -F -PID PID号 配图详解: 1. ...

  5. DP CF 319 div1B

    http://codeforces.com/contest/319/problem/B 题目大意: 有删除操作,每次都删除数组右边比自己小的.且紧挨着自己的数字.问最小需要删除几次. 思路: 我们定义 ...

  6. MyEclipse报错 Building workspace has encountered a problem Errors occurred during the build 的2种解决方法

    1: Building workspace has encountered a problem Errors occurred during the build 如果报错这个 那么有可能是jar包,报 ...

  7. android脚步--Relativelayout设置

    引自http://blog.csdn.net/lamp_zy/article/details/8035161 http://my.oschina.net/honeyming/blog/130761 以 ...

  8. CentOS 6.5 安装Suricata(with PF_RING & CUDA)

    0.基础包 确保已安装 yum install mpfr cpp ppl cloog-ppl gcc kernel-devel pcre-devel libpcap-devel yum-plugin- ...

  9. CharSequence的getText()与String的getString()(转)

    CharSequence的getText()与String的getString()『Android系列七』 曾经在学习中碰见两种获取常量的方式: CharSequence chrs = getText ...

  10. USACO Section 1.3 Barn Repair 解题报告

    题目 题目描述 某农夫有一个养牛场,所有的牛圈都相邻的排成一排(共有S个牛圈),每个牛圈里面最多只圈养一头牛.有一天狂风卷积着乌云,电闪雷鸣,把牛圈的门给刮走了.幸运的是,有些牛因为放假,所以没在自己 ...