电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4421|回复: 0

为什么使用SCSI硬盘的时候不能启动Hyper-V

[复制链接]
admin 发表于 2011-6-1 13:21:51 | 显示全部楼层 |阅读模式
在Hyper-V之下,有两种硬盘控制器可添加到虚拟机上——一种是IDE硬盘,另一种是SCSI硬盘。这两种硬盘控制器的大致区别如下:
  IDE: 1.在操作系统上运行,不需要安装集成服务。
     2.可用来启动虚拟机。
  SCSI: 支持虚拟硬盘的热添加和热删除。
  虚拟机上的这类硬盘控制器与物理电脑上所使用的硬盘不同。SCSI VHD可以保存在IDE硬盘中,而且IDE VHD可以保存在SCSI硬盘中。
  为什么使用SCSI硬盘的时候不能启动Hyper-V?
  把SCSI控制器称为SCSI有点不恰当。我们以前在虚拟机上工作时,知道服务器上有SCSI硬盘——因此虚拟服务器也需要虚拟的SCSI硬盘。出于这个目的,我们便仿制了一个用于虚拟服务器的Adaptec SCSI控制器。遗憾地是,该SCSI控制器是一个非常高级的硬件设施——因此其速度比简单些的IDE控制器还要慢。
  最后,我们必须扩展这一仿制的Adaptec控制器,并用我们所支持的操作系统写自定义驱动,目的是为了让虚拟机上的SCSI具备良好性能。
  我们放弃了Hyper-V和Adaptec控制器的仿效物。相反,执行了仿效的传统IDE控制器以及一个全新的虚拟控制器,后者以VMBUS为基础,是一个存储控制器——它的身上不再有仿效品的痕迹。
  这就是当我们选择为虚拟机添加一个SCSI控制器的时候,要添加到虚拟机的虚拟存储控制器。
  可问题在于,虚拟机所使用的BIOS并不了解VMBUS,而且无法启动仿效设备。这也就是为什么我们可以启动IDE控制器和遗留网络适配器,却不能启动SCSI控制器或网络适配器的原因。
  不要在意因使用SCSI硬盘而无法启动Hyper-V
  跟用户谈及在虚拟机上启动SCSI硬盘的事宜时,他们给出了两点理由。
  一是SCSI与IDE相比可以支持更大的虚拟硬盘。为解决这一问题,我们在Hyper-V里用48位 LBA制作了一个IDE控制器。这样,用户就可以将容量为2TB的虚拟硬盘附加到IDE控制器上。
  第二个理由与性能有关,可这同样不成问题。我们截取了一个架构图(用户可以辨认出它是一个旧图,因为它使用了代码名称Viridian,意思是在出现Hyper-V这一名词前,就有了这个图。)现在,母分区图不是百分之百能与Windows Server 2008 R2对应——不过子分区图可与Windows Server 2008和Windows Server 2008 R2对应,而这也是我们要关注的地方。

2009-12-14 15:19 上传
下载附件 (35.65 KB)




图一
  首先,在子分区部分要注意的就是Virtual Storage Miniport。将SCSI控制器附加到虚拟机上的时候,该端口就是驱动加载的地方。它连接到VMBUS,可以让我们执行Disk I/O,而不需要有任何有助于高性能的仿效物。
  下一个要注意的是“Fast Path Filter”。这是一个安装在虚拟机所有硬盘对象上的过滤驱动。可以让我们以任何原因(除了低级别的硬盘操作),直接通过VMBUS路径。
  不论我们是使用IDE硬盘还是SCSI硬盘,一旦集成服务安装完毕,就会有相同的代码路径用于Disk I/O。下面是两个针对IDE硬盘的限制:
  1.客户操作系统对相同控制器上IDE硬盘的硬盘命令进行序列化操作。(注意,一个控制器上只能存在两个IDE硬盘。)
  2.IDE硬盘的I/O被限制在512kb或更小的量,而SCSI控制器的字区大小可以达到8mb。
  目前,还没有看到有着这种局限性的测试会导致与IDE和SCSI截然不同的后果
hyper-v的虚拟机只能支持IDE通道的设备启动,SCIS通道需要VMBUS的驱动来支持,而VMBUS驱动只有加载了虚拟机的系统以后,才会加载
您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-5-17 17:15 , Processed in 0.079272 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表