Xen:完全虚拟化与准虚拟化的硬件驱动管理

2008-9-26  选择字号:  | |
打印本文章
正在加载数据... 【TechTarget中国原创】虚拟机管理员面对的最困难的任务之一就是硬件管理。硬件管理是一个令人迷惑的话题,因为有时指的是真正的硬件,有时指的是虚拟硬件。有些情况下,使用的是完全虚拟化,有时使用的又是其它虚拟化。因此,根据虚拟化技术的不同,所表示的硬件也不同。在本文中,TechTarget中国的特约虚拟化专家Sander van Vugt将解释完全虚拟化与准虚拟化环境下硬件驱动的不同之处。本文将以Xen环境为例。

【TechTarget中国原创】虚拟机管理员面对的最困难的任务之一就是硬件管理。硬件管理是一个令人迷惑的话题,因为有时指的是真正的硬件,有时指的是虚拟硬件。有些情况下,使用的是完全虚拟化,有时使用的又是其它虚拟化。因此,根据虚拟化技术的不同,所表示的硬件也不同。在本文中,TechTarget中国的特约虚拟化专家Sander van Vugt将解释完全虚拟化与准虚拟化环境下硬件驱动的不同之处。本文将以Xen环境为例。

  在Xen架构中,驱动域(driver domain)通常为Domain0。这就意味着只有这个Domain0被允许使用“真正的”驱动与硬件设备直接对话。通常,Domain0被用作驱动域,不过这并不是唯一的一种可能性。在后面你将了解到,如果需要的话,你可以将某个驱动的管理交给某个Domain。所有不是驱动域的Domain都使用虚拟设备驱动,这些虚拟设备驱动会使用驱动域中的驱动。

  在Xen驱动模块中,有一个后端(back-end)驱动运行于驱动域(通常为Domain0),然后驱动域直接与硬件设备对话。在DomainU中,则有一个前端(front-end)驱动与驱动域中的后端驱动对话。为了与后端驱动通信,Xen建立了Xen总线(bus)。这是一个虚拟总线,所有前端驱动都可以通过它与后端驱动通信。后端驱动的任务就是处理与硬件设备之间的通信。

  前端驱动与后端驱动的通信有两种方式:准虚拟化(paravirtualization)和模拟(emulation)。首先,可以采用准虚拟化,当准虚拟化不可用时,可以采用模拟。

  如果使用的是准虚拟化的操作系统,也就会自动使用准虚拟化驱动。在这种情况下,驱动软件能识别虚拟化环境。因此,驱动可以发出最优的指令与硬件直接对话。

  准虚拟化驱动并不只是在准虚拟化环境才可用,在完全虚拟化中也可以使用。比如说,Novell Virtual Machine Driver Pack对有些操作系统可用,所以有可能使用该驱动包中的准虚拟化驱动去驱动块设备和网络设备。由于这些设备都会导致超高负载,使用这些驱动会大大地提高性能。

  完全虚拟化环境中的驱动可以替代准虚拟化驱动。因为,在这些环境中,驱动自身无法意识到自己是虚拟的,它发出的所有指令都必须被截留和模拟。要完成这个工作,可以使用Qemu解决方案。Qemu是一个处理器模拟器,提供了多种解决方案与设备通信,如模拟磁盘设备。

  为了协助完全虚拟化中的驱动,通信必须经过驱动域中的驱动,而这会给性能带来负面的影响。不幸的是,驱动域并没有多余的内存资源来处理这些模拟驱动引起的负载,这是由于驱动域中使用了一种叫做“影子页表(shadow pages)”的特殊技术。

  驱动属性
  
  在Xen虚拟化环境下,驱动的属性取决于你所使用的虚拟化技术。因此,有些操作可能在完全虚拟化中可以进行,而在准虚拟化环境下不能。有些问题可能在某种环境中存在,而在另一种环境中没有。在下面的分段中,你将了解到在特定虚拟化环境下设备类型及其属性的相关重要信息。

  块设备:通过准虚拟化处理块设备时,你会在DomainU中以xvd(Xen虚拟磁盘)设备的形式看见它们。第一个准虚拟化块设备是xvda,第二个是xvdb,依此类推。

  通常,虚拟机中的操作系统会把这些设备看作SCSI磁盘设备。在虚拟机中,你最多可以有16个这样的设备。虚拟机中的这些xvd设备会与Domain0中的xenblk模块进行对话,虚拟机本身使用了blkbk与blktap内核模块。

  如果你使用的完全虚拟化DomainU没有使用准虚拟化驱动,那么在这些虚拟机中会看到“正常的”块设备。也就是说,如果是虚拟的Linux,你会看见hda和hdb,与非虚拟机上一样。你应该意识到,你的选择要么是这个要么是那个。如果你的某些块设备是完全虚拟的,那么所有的块设备就都必须采用完全虚拟化。

  LAN设备:完全虚拟与准虚拟LAN设备的不同之处不如块设备那么明显。两种情况下你都最多只能有三个虚拟网络插件板(network board)。在准虚拟化环境下,netbk和netloop内核模块用于与Domain0中的xennet模块对话。网卡本身作为xennet网卡使用。使用完全虚拟化时,你可以在Realtek 8139、AMD PCnet32和NE2000 网络插件板之间进行选择。

  视频设备:至于视频板(video board),准虚拟与完全虚拟也是有区别的。一般来说,你是不会在意这个区别的,因为视频板对服务器性能没什么重要影响。使用准虚拟视频板时,它是作为帧缓冲设备使用的。在DomainU中,帧缓冲设备用于提供服务,在前端,该驱动与xenfb模块通信。模拟视频驱动在完全虚拟化环境中被看作Cirrus Logic或一般VESA显卡。

  准虚拟化设备驱动的好处

  在本文中,我们了解到了Xen环境下虚拟驱动使用的两种方法。即便是在完全虚拟化环境,某些设备的准虚拟化驱动使用也是有可能的。这通常会大大地提高设备性能,因为准虚拟设备驱动能识别自己被使用的虚拟化环境。

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
相关的专家答疑
准虚拟化与其他虚拟化方式相比有哪些优势和劣势?准虚拟化相对于竞争者VMware ESX服务器来说非常轻量级,因此它的性能非常好。另外……
虚拟机管理员面对的最困难的任务之一就是硬件管理。有时指真正的硬件,有时指虚拟硬件,有时使用完全虚拟化,有时使用其它虚拟化。在Xen环境下,如何管理硬件驱动呢?
Xen是一个监视与x86兼容的计算机的开源虚拟机程序。Xen使用一个叫做hypervisor的软件层来调节对真实硬件的访问,实现在一台单独的计算机上运行多个子操作系统。
什么是准虚拟化技术?它有哪些用途及优势?在考虑选择准虚拟化产品时需要注意哪些事项?在本文中,我们将为您一一解答。
经过这段时间对Xen的试用,我是非常推崇这个软件的,以下从几个方面,包括源码的规模统计角度来对比Xen同其他类似软件的优势。
在之前的专题里,我们学习了如何运行ESX Server以及它与免费的VMware Server的比较。在本专题中,我们将详细描述VMware ESX Server子操作系统性能的技巧。
随着VMware陆续推出新产品,越来越多的虚拟化管理更加关注在虚拟架构里的存储问题。虚拟化存储有哪些选择?如何提高存储效率?在配置存储的时候应该注意哪些事项?
Novell推出PlateSpin PowerConvert Version 7.0版本,新增备份与恢复功能,并扩充对多重平台的支持。那么如何安装PlateSpin PowerConvert?如何在具体环境中使用迁移和恢复功能?
最新更新
专家答疑
技巧
James E. Geis
使用两台非同步的或不同的服务器作为提供冗余的一种方式怎么样?但是由于增加了设备,容易引起管理混乱的问题。有没有更好的办法呢?
Anil Desai
使用虚拟硬盘(VHD)优劣势是什么?那么直接映射虚拟机到物理磁盘的优劣势呢?在具体的情况下如何进行选择?
Andrew Kurtz
虚拟机文件在VMware里如何处理?有识别虚拟机及其状态与位置的好用工具、标准做法或策略吗?您能比较追踪服务器信息与状态的方法吗?