为什么Hyper-v不能够从SCSI磁盘启动和关闭?

简介:
在hyper-v的虚拟机上我们有两种磁盘控制器选择,你可以再一个虚拟机上加入IDE磁盘或者SCSI磁盘.下面列出了它们之间不同的地方.
IDE:工作在操作系统上,不需要集成服务安装,可以引导虚拟机.
SCSI:支持热插拔的虚拟磁盘,这种类型的磁盘控制器和你平时在物理机上使用的是一样的,没有什么差别.SCSI上面得VHD文
件也可以储存在IDE磁盘上,IDE上的VHD文件也能够储存在SCSI磁盘上.
为什么hyper-v上的虚拟机不能从SCSI磁盘上启动?
这里,我们所称呼为”SCSI”控制器其实有些不恰当.当我们致力于虚拟服务器的时候,我们听到一些声音,让虚拟服务器工作在SCSI磁盘上.所以,虚拟服务器需要虚拟SCSI磁盘.为此,我们在虚拟服务器上添加了一个仿真的SCSI控制卡.不幸的是,SCSI控制器是一种非常先进的硬件.最终的结果是,仿效的设备比简单的IDE控制器要慢.为了SCSI控制器在虚拟机有更好的性能,我们扩展了仿真控制器并重写了自定义的驱动,来支持操作系统.在hyper-v中,我们完全放弃了仿真控制卡,相反,我们使用了传统的仿真IDE 控制器,和一个新的虚拟控制器,基于VMBUS,存储控制气.并没有任何的仿真痕迹.当你选择在虚拟机里添加SCSI控制器时,你可以使用这种虚拟存储控制器.随之而来的问题是.你的虚拟机的BIOS并不知道VMBUS,它只能认识从仿真驱动设备启动.这就是为什么你可以从一个IDE控制器和一个旧的网络适配器启动,而不是一个SCSI控制器或网卡启动.
为什么你不用关心不能从SCSI启动的hyper-v?  
我们来讨论下用户在什么情况下需要从SCSI磁盘启动虚拟机.有如下两个理由~!
第一个理由是SCSI比IDE可以支持更大的VHD.为了解决这一点,我们是hyper-v的IDE控制器使用48-bit LBA.这样,我们可以附加最大到2TB的VHD.
第二个理由是性能,但是, 这也不是什么问题.
首先,我从如下的图中去说明.下图中的父分区图并不是100%的Windows Server 2008 R2的,但是,子分区图,Windows Server 2008和Windows Server 2008 R2是一样的.这是我想说的一点.
 
首先,你要注意子分区图上的“Virtual Storage Minport (VSC)”.本质上是加载到虚拟机的SCSI控制器上的一个驱动程序.它连接到 VMBUS上,提供一个非常高的性能,并没有像仿真方式那样所涉及任何磁盘的I/O.下一个要注意的是图上的“Fast Path Filter”这个过滤器驱动能够获得虚拟机磁盘上的所有对象.不管是IDE或SCSI.它能够通过VMBUS进行数据交换.除了一些低等级的操作.(如分区)
这就意味着,一旦安装了集成服务,不管你是否使用IDE磁盘或SCSI磁盘.它们都使用相同的代码路径.
不过IDE磁盘仍然有两个限制.
一个IDE控制器只能挂载两个IDE磁盘.
IDE磁盘的I/O block只有512K或者更少,而SCSI控制器可以达到8MB.
但我还没有看到一个测试如果上述限制,导致IDE和SCSI之间明显的性能差别.
本文转自许珈毓的技术思考博客51CTO博客,原文链接http://blog.51cto.com/jiayu/294681如需转载请自行联系原作者

BabyXc
相关文章
|
10月前
|
机器学习/深度学习 虚拟化 Android开发
Windows开启 CPU 虚拟化 + 关闭 Hyper-V
Windows开启 CPU 虚拟化 + 关闭 Hyper-V
VirtualBox虚拟机移到另外一台机器,需要在设置中禁用usb
VirtualBox虚拟机移到另外一台机器,需要在设置中禁用usb
78 0
|
IDE 开发工具 虚拟化