博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: network

VMware ESX4使用大全

[复制链接]
 楼主| 发表于 2010-12-20 15:49:06 | 显示全部楼层
提高VMware ESX Server性能的10个最佳实践
1. 保证硬件在VMware的硬件的硬件兼容列表中
   点此查看你的硬件兼容性
2. 了解你的硬件,确保正确的规格
   了解你的硬件,你的服务器能支持多少CPU,能否支持64位,能否支持Intel VT虚拟化,能支持多少内存,这些规格你服务器的规划和将来的扩展性都是非常重要的。
3. 了解你的虚拟机的操作系统及应用
   了解你的应用是很关键的,这样你能了解应用需要多少CPU、内存和磁盘,这样创建虚拟机的时候能对这些参数进行设置,并且放置到适合的ESX服务器上。
4. 对你的硬件作出benchmark并监测性能
   使用VMware VMmark、或VKernel Capacity Bottleneck Analyzer来对你的硬件作出性能分析,以了解该硬件能运行多少虚拟机。
5. 启用VMware DRS
   DRS是一个很有效的动态资源调度的机制,起用它能有效地均衡各ESX间的负载,达到性能优化的目的。
6. 遵循VMware官方的最佳实践
   VMware官方给出的一些最佳实践的文档能有效地优化性能
   下面是一些最佳实践文档的链接:
   VI3性能网络VMFS分区对齐资源管理
7. 保证VMware Tools是最新的
   新的VMware Tools可能会更新一些硬件驱动从而提高性能。
   另外移除虚拟机里不需要的硬件设备也是非常必要的,还有没有必要为一台只需要384MB内存的虚拟机分配1GB内存,不必要的设备、内存和CPU都会导致额外的内存overhead。
8. 防止虚拟机的泛滥
   虚拟机的泛滥可能使性能需求超过你当时的规划,从而导致整体性能的下降。
9. 保持补丁是最新的
   新的VMware ESXi和ESX 3.5的补丁可能会修复一些性能问题,因此建议及时更新补丁,或者使用VMware Update Manager来自动更新补丁。
10. 访问blog.ebanban.com来查看新的性能优化建议
 楼主| 发表于 2010-12-20 15:51:01 | 显示全部楼层
VMware ESX Server子操作系统性能技巧
 VMware ESX Server是市场上性能最高的虚拟化平台之一,但这并不意味着你不需要优化。为了尽可能获得更高的性能,你必须关注三个主要的领域。   
首先,必须在物理硬件层和虚拟化平台层对ESX主机服务器的配置进行详细检查。这个区域的决策将影响每台宿主在ESX服务器上的虚拟机性能。性能优化的第二个区域是在虚拟机层,因为这层有各种虚拟硬件配置。最后的第三个级别是运行在虚拟机里的子操作系统的配置。
  在这系列的三篇文章中,TechTarget中国的特约作者David Marshall 和Wade Reynolds将列举12条技巧以提升这三个区域的虚拟环境性能。这些技巧将覆盖升级到远程访问到配置妙计。

  技巧1:升级到VI3 文章抄袭自唯实数据恢复公司
  如果你仍然运行VMware ESX Server 2.x版本,你应该知道VMware Virtual Infrastructure 3(VI3)能带来明显的性能提升。这更不用说主要增强的可扩展性、可用性与硬件兼容性。所以,升级ESX 2.x主机和虚拟机到VI3(使用ESX 3.0.1)能带来性能的提升。 网站内容抄袭自唯实网站
  VMware在版本3里已经优化了ESX Server的几个零部件,你可以在虚拟机里快速地处理页面错误、环境切换和内存管理单元操作。虚拟机现在能使用物理地址扩展(PAE)访问高达16GB的RAM,比以前限制的3.6GB多得多,也没有严重的性能损耗。 网站内容抄袭自唯实网站
  在ESX 3.0里的虚拟网络改良了,不止在vmxnet虚拟网络适配器里还有在虚拟机之间。VMFS3是文件系统VMFS家族的新版本,提供了增强型性能和可扩展性。虚拟机较少依赖于服务器控制台,它们的用户级别虚拟化组件现在能运行在任何可用的处理器核上。据VMware所说,这也允许ESX 3.0在每台主机上比ESX 2.5多扩展50%的虚拟机。

  ESX 3.0能使用ACPI省电模式以更好处理空闲虚拟机。虚拟机能利用多达四个虚拟处理器。VI3的其他一些功能也增强了性能与扩展性,如分布式资源调度(DRS)、资源池、高可用性(HA)和VMware Consolidated Backup。ESX 3.0主机现在能支持20个物理网络适配器。
pcrecovery.com

  如果你不做其他事,那么考虑升级到VI3。这个差别类似从Windows NT Server 4.0升级到Windows Server 2003。 copyright vsinfo
  技巧2:提升主机的处理器与内存

  主机服务器的物理硬件极大地影响了宿主其中的虚拟机性能。处理器与内存是这个区域里两个至关重要的因素。

  尽管VMware ESX Server与大多数服务器硬件兼容,包括比较旧的服务器设备,顶级CPU和更多内存将提升子环境的性能。这通常能通过使用最高性能的处理器来获得。 唯实数据恢复
  在选择处理器时,不仅要考虑每个处理器的功率值,还有它的热功率。一些处理器比其他的更有效,一些功率值很大的处理器可能隐藏更多的能源消耗成本。 copyright vsinfo
  也要注意一些处理器在达到其热阕值时,实际上在运行时会降低性能。尽管听起来这是增加处理器预期寿命的功能,但这会损耗虚拟机的性能。最好选择一个更有效率的处理器,在你使用的使用不会发生任何问题。
  除了使用高性能处理器之外,通常拥有更多处理器更好。大多数新处理器可用于多核版本,这在机架里维持物理服务器密度的同时增加了处理器密度。VMware ESX Server的2.5和3.0版本支持多个核心。拥有更多可用的处理器资源能在每台物理主机服务器上部署更多虚拟机,并且能通过降低CPU资源争夺提升现有虚拟机的性能。 厦门唯实信息技术有限公司
  优化主机服务器上虚拟机整合到物理处理器的比率也很重要。更多核心等同于更高密度,在多数情况下,运行每个核心太多虚拟机反而对性能有影响。最佳比率取决于资源需求与单个虚拟机的利用率。VI3的DRS功能及资源池能帮助自动化地解决这个问题。 网站内容抄袭自唯实网站
  往ESX主机添加尽可能多的RAM,只要能与虚拟机密度匹配,受处理器支持。VMware ESX Server主机最小有8GB RAM,18GB、32GB,甚至64GB是不常见的。 copyright vsinfo
  当原始虚拟机性能是最重要的指标,避免过多地调用内存。尽管ESX能处理过的调用的内存,这会引起位于磁盘上的虚拟机交换文件的调换。磁盘通常比RAM慢,因此为了享用物理内存的好处避免调换到磁盘。
内容来自vsinfo

  技巧3:增强主机存储
  这可能听起来很明显,但使用性能最高的磁盘I/O子系统可能会提升子系统的性能。如果你计划使用本地或直接附属的磁盘存储,使用Ultra320 SCSI的RAID-5阵列或SAS磁盘。多数磁盘控制器支持多个通道,并跨这些通道拆分磁盘以提升性能。
  例如,你有六个SCSI磁盘和一个双通道控制器,在每个通道放置三个磁盘,将其配置到RAID-5阵列,如果可能使用你的服务器硬件。注意,用这种方法,一些服务器的存储底版可能不允许拆分I/O。
 楼主| 发表于 2010-12-20 15:53:06 | 显示全部楼层
你能在主机里安装多个磁盘控制器和额外的磁盘,并且使用多个文件系统,在每一个这样的文件系统上放置一些虚拟机。这对划分I/O密集型的虚拟机时尤其有效。例如,如果你主机上有20台虚拟机,其中两台是I/O密集型的,你能添加额外的控制器到磁盘,并能将I/O密集型虚拟机移动到第二个控制器或跨每个控制器拆分所有虚拟机,确保只有一台I/O密集性虚拟机分配到每个文件系统。

  正如在物理环境那样,如果你需要提升磁盘寻道时间,在服务器里更快地放置磁盘。在ESX主机里使用每秒转数15K的磁盘以提升主机上所有虚拟机的I/O性能。

  使用SAN将从ESX主机服务器卸载I/O操作,给虚拟机留下更多资源。取决于你的解决方案,拥有更多带宽也能提升I/0性能。尽可能使用4Gb的光纤通道SAN。

  虚拟机不可避免地共享ESX主机服务器的I/O子系统。你应该使用每台虚拟机的共享配置,适当地调整分配给虚拟机的I/O资源数量。对于不是I/O密集型的虚拟机,可以设置资源共享为500(低),对于更多资源密集的虚拟机,它们需要更多I/O资源优先权,设置其值为2000(高)。
  技巧4:优化主机网络

  如果物理服务器运行的是VMware ESX Server,你应该使用千兆以太网网络适配卡来提升网络性能。这有意味着你必须有千兆交换器。千兆网络合配卡允许更多虚拟机在快速以太网内共享每个物理网络适配器,并且为网络密集虚拟机极大地提升网络带宽。



  在配置物理网络适配器时,每个网络适配器的速度及设置必须与其连接的交换器端口的速度与设置相匹配。如果网络适配器与交换器的设置相冲突,不止造成性能问题,还会造成连通性问题。

  当使用100Mbit Fast Ethernet适配器,设置网络适配器与交换器端口的speed/duplex为100/Full。当使用千兆以太网时,设置网络适配器和交换器端口为Auto Negotiate,这通常使用默认值。


  通过聚合多个以太网网络适配器,你能增加可用的网络带宽和网络容错。这也能简化虚拟交换器映射到物理网络适配器的数量。为了利用虚拟机里千兆网络适配器的优势,给虚拟机配置vmxnet或e1000虚拟网络适配器。


  在下文中,我们将讨论虚拟机到主机的位置、处理器、不必要的硬件等。
  


  尽管VMware ESX Server以高性能著称,不过性能妙计能使它性能更好。在本系列中,我们将学习12条技巧以达到ESX Server的最高性能。 文章抄袭的
  第一部分讨论了VI3、主机处理器和内存、存储与主机网络。现在我们来看看虚拟机到主机的位置、远程访问、虚拟处理器以及内存等等。


  技巧5:注意虚拟机在主机的位置
  在ESX 2.x环境里,持续追踪虚拟机在做什么很重要。将负荷较重的虚拟机分配到不同的主机上或者将在一天不同时段操作的虚拟机放置在相同主机上,这能通过降低资源争夺增加虚拟机的性能。使用VMware ESX Server 2.x时,这是一个人工操作的过程。
  因为虚拟机容易创建和分布,所以容易发生众所周知的虚拟机蔓延的问题。如果不适当管理,会有人们忘记的虚拟机存在。

  关闭或暂停未使用的虚拟机很重要,这样它们就不能浪费ESX Server上的有用资源。甚至一台空闲的虚拟机也将占用内存和处理能力。


  升级到VI3有助于解决虚拟机在主机的位置问题。不是人工地计算一台虚拟机应该放在哪一台主机服务器的哪里,其他虚拟机又放在哪,VI3的DRS和资源池功能将做这项工作。
严禁抄袭
  当使用DRS在VI3里部署一台虚拟机时,你不再需要计算哪一台ESX Server将宿主这台虚拟机。只需要你简单地分配这台虚拟机到资源池。RDS将自动地移动这台虚拟机到适合的ESX Server。DRS将自动地跨所有分配到资源池的ESX Servers平衡虚拟机,甚至在添加、删除及修改虚拟机之后也可以。

  如果一台虚拟机没有获得足够的资源,那么DRS能自动地平衡在资源池里的虚拟机,确保所有虚拟机得到足够的资源。如果资源池本身的资源消耗完的话,通过添加额外的ESX服务器到资源池来增加额外资源。 内容抄袭自唯实网站
  VI3的DRS功能需要VMotion来执行自动迁移。VMotion能从一台ESX Server迁移虚拟机到另一台而不需要停机。这需要一些猜测,通过这样做,虚拟机性能能得到优化,因为如果虚拟机放置在不合适的主机服务器上时,不再像以前那样处理资源争夺。
  技巧6:谨慎使用远程访问
 楼主| 发表于 2010-12-20 15:54:31 | 显示全部楼层
一些虚拟机性能增强功能能如关闭一个不必要的VMware Remote ConsoleVMRC会话那样简单。尽管你可能没有想到这会引起问题,每个打开的远程控制台会话在服务控制台消耗了重要资源。

  你能通过不连接到远程控制台来提升虚拟机性能。VMRC协议没有优化,从来都不是作为一个标准远程技术使用。在KVM类型的到虚拟机的访问需要使用VMRC进行不定期地管理功能,或者当控制台访问明确要求时。
  记住,并不是所有以子操作系统为导向的远程访问方法同等创建。例如,一些组织使用Virtual Network Computing(VNC)浏览器,这可能比其他一些浏览器消耗更多资源,不过这也比VMRC客户端好得多。


  技巧7:虚拟机处理器和内存 严禁抄袭
  在物理环境里,不论好坏,我们都被告知增加处理器的数量或添加额外的内存到服务器能增加操作系统及其应用的性能。相同的观念转移到虚拟环境里。不幸的是,多个处理器和内存的共享将增加ESX服务器的负荷。并且这正是你想要消除的。


  如果你主要到虚拟机性能变慢,检查其CPU使用率。你应该检查每个处理器的空闲时间,并通过VMware管理界面检查整个系统的CPU使用率。



  通过使用VMware的Virtual SMP添加额外的处理器到虚拟机并不是经常能解决性能问题。不是所有的应用都能利用多个CPU的优势。应该分析子操作系统和应用以决定Virtual SMP能否提升吞吐量。

  如果这些应用不是多线程的或不能在执行中使用多个处理器,添加Virtual SMP可能消耗物理处理器资源,而没有给虚拟机带来任何性能提升,最终,可能从物理主机服务器上的其他虚拟机带走资源。 网站内容抄袭自唯实网站
  应该保守使用Virtual SMP。多数情况下,在一个单一虚拟CPU上运行一台虚拟机比在Virtual SMP上运行相同虚拟机更好一些。这当然是一个具体分析例子,你应该测试每个虚拟机环境。
  如果性能缓慢不是由CPU造成的,检查虚拟机使用的内存。决定子操作系统是分页内存还是交换内存很重要。由于磁盘比RAM慢,需要识别和纠正性能瓶颈。


  有大量的工具和选项能决定分页是否在进行。在Linux子操作系统里,你能使用vmstat命令。如果是Windows子操作系统,使用管理工具下面的性能工具检查每秒页数的值。如果虚拟机有大量的分页错误,例如1000页每秒,增加它的最小内存值以消除过度的页面执行数量。如果最小内存大小迅速接近最大内存大小,那么增加资源设置。


  记住,你应该只分配给虚拟机所需的内存。在这里也需要一些严格审查和测试,给虚拟机额外的内存并不是都能增加性能。事实上这是一种浪费的做法,因为你拿走了应该分配给额外虚拟机或用来增加主机服务器上虚拟机密度的内存。

  修改虚拟机CPU资源分配百分率的最小值和最大值是影响性能的另一种方法。如果你想避免一台虚拟机的CPU消耗光,设置其最小百分率是除了0以外的值。相反,为了防止低优先级虚拟机消耗太多CPU资源,将其最大百分率设置得很低,例如50%,从而有效地限制了该虚拟机,并允许其他虚拟机利用这些宝贵的CPU资源。
  你也能控制每台虚拟机使用哪个物理处理器或处理器。这种控制叫做处理器亲和(processor affinity)。默认的设置是不使用亲和的,这通常是多数情形最好的选择。在绝对必要的时候,你应该只设置虚拟机的CPU亲和。
  如果你有一台资源密集型虚拟机运行在一台主机服务器上,你可能想设置它的CPU亲和以隔离虚拟机并保护其性能。这样做也能保护所有其他运行在相同主机服务器上的虚拟机性能,这是通过更改这些虚拟机亲和设置到不同于资源密集型虚拟机的处理器来实现的。 网站内容抄袭自唯实网站
  技巧8:移除不需要的虚拟硬件


  在物理服务器里,添加或移除系统不经常使用的硬件组件非常困难,也非常消耗时间。通常,物理服务器上未使用的硬件设备不妨碍系统性能。但在虚拟机里,情况就不同了。 严禁抄袭
  禁用或移除虚拟机未使用的任何虚拟硬件组件是增加子服务器性能的一种好方式。在虚拟机里小量性能的提升对于整个主机服务器来说是极大的提升。
  如果你的虚拟机环境不需要CD/DVD ROM驱动、软驱动、网络适配器或COM和LPT端口,移除或禁用它们。如果稍后虚拟机需要这些驱动中的一种,虚拟机使其在任何时间都能很快很简单地添加驱动。


  在本系列的下一部分中,我们将看看如何更新VMware工具、优化子操作系统和有效使用杀毒和备份工具。
 楼主| 发表于 2010-12-20 15:56:02 | 显示全部楼层
每个人都能使用性能提升,甚至像VMware ESX Server这样的企业级虚拟化产品也不例外。实用的技巧能为你的虚拟环境带来巨大的性能提升。


  在这一系列文章中,我们讨论了提升ESX Server环境性能的技巧,从存储到远程访问,再到整合率。在这一部分中,我们将讨论更新VMware工具、优化子操作系统和有效使用杀毒工具和备份策略。


  技巧9:更新VMware工具

  在你更新ESX Server版本或安装更新补丁时,确保安装在子操作系统里的VMware工具是最新的。有时,更新补丁可能包括对VMware工具组件的修复,在这种情况下,更新虚拟机里的VMware工具非常重要。
  如果你从其他VMware平台迁移虚拟机,如VMware Workstation或VMware Server,确保在迁移虚拟机之后更新VMware工具。不同的VMware产品之间的VMware工具版本是有差异的。



  确保ESX主机与VMware工具里的虚拟机之间的时间是同步的。让多个时间同步计划同时运行不是个好主意,因此,如果你使用VMware Tools执行时间同步的话,不应该使用其他时间同步工具,如NTP客户端。

  如果你必须使用交替的时间同步方法,那么禁用VMware Tools里的时间同步。这种情形通常发生在属于Active Directory成员的Windows虚拟机里,因为它们必须与域控制器里的时间同步。



  为了得到Windows虚拟机里最佳视频显示性能,启用故障表格上高级图象显示设置下的硬件加速功能。这样的话,在使用远程控制台时就不用鼠标了。


技巧10:优化Windows子操作系统


  对虚拟机虚拟磁盘进行碎片整理有利于提升I/O性能。使用第三方基于服务的磁盘碎片整理工具,如Diskeeper或SpeedDisk,这将使你的磁盘架构条理化。


  注意不要将碎片整理任务安装在高峰时段或经常进行,因为这可能在所物的时间消耗太多不必要的资源。如果虚拟机运行着REDO日志,那么不用管这个技巧。永远不要使用REDO日志文件进行虚拟硬盘碎片整理。只对持久状态模式的磁盘进行碎片整理。



  通过停止和禁用不必要的服务和背景任务来释放虚拟机的一些资源。你最后一次需要在虚拟机里使用无线网络是什么时候? 唯实数据恢复公司
  注意不要禁用应用所需的服务,这个服务可能不容易看见。如果你不确定某个具体服务是否需要,与系统管理员核查,或建一台克隆虚拟机用于测试禁用这个服务的影响。


  下面的清单包括通用Windows服务的建议,它们能在虚拟机里停止或禁用。只有在服务不能使用或不需要的时候才能停止或禁用。它们如何使用或安装了什么应用,在虚拟机之间是不同的。

  卸载从未用到的Windows组件。这样能降低操作系统里内存消耗的数量,把内存还给应用,这也增加了虚拟机的安全。


  许多虚拟机可能从来不需要NTFS Last Accessed时间标签。通过禁用这个功能,能减少在幕后运行的不明显的工作数量,并且能节约宝贵的CPU资源。不要将时间标签与Last Modified时间标签混淆。Last Accessed时间标签记录的是文件访问的时间(读或写)。Last Modified时间标签只记录最后一次访问的日期和时间,这通常用于备份和存档。



  运行在VMware ESX Server上的多数或全部Windows虚拟机像服务器。这些服务器通常不需要在桌面上出现幻想的图象效果,这不必要地放慢虚拟机。确保禁用所有没明确要求增强型图象显示的Windows虚拟机上的视觉效果。确保在拖放每个窗口内容的同时关掉窗口。
本文来自唯实

  多数情况下,你也不需要Windows服务器桌面上的屏幕保护。通常,禁用桌面壁纸也很好。这种情况下的唯一例外可能是使用像Sysinternals公司的BgInfo工具,这个工具对动态地创建便捷信息桌面壁纸非常有用,这个壁纸包括像计算机名和域名、磁盘可用空间和IP地址这样的系统信息。

  如果你在虚拟机里运行Windows XP,你可能想禁用System Restore功能。这样做将取消磁盘、CPU和I/O资源锁定。从Windows XP里的恢复功能得不到好处,不过你能通过使用VMware的Append Mode或快照功能恢复系统,这些功能都非常有用。


  一些系统电源功能,如休眠和硬件电源管理(关闭硬件驱动、监控器等),这些在虚拟机里没有实际意义。在多数情况下禁用这些功能很有意义。屏幕保护程序也是这样。不要担心,这不会引起远程控制台屏幕的毁坏。
  你肯能会说在虚拟机上使用屏幕保护程序很有用,能自动在指定时间后锁定控制台,不过如果你对这还有疑问,请重新阅读技巧6。让控制台sessions打开太长时间通常不好。如果你运行着交互式程序,只要关闭远程控制台sessions而不需要退出登录。如果你觉得仍然有安全性问题,那么你可能需要重新在ESX服务器上登录。
 楼主| 发表于 2010-12-20 15:56:56 | 显示全部楼层
技巧11:优化Linux子操作系统 copyright vsinfo
  在使用Linux子操作系统时,选择2.4或2.6内核版本以编译每秒从1000降低到100的信号数量。Linux 2.6内核版本的默认系统时钟是每秒1000次,改变这种行为的唯一方法是重新编译2.6内核。如果你不能编译这个内核,用Linux 2.4内核版本替代。2.4内核默认下是每秒100次。

  在VMware ESX Server上运行的Linux虚拟机本身更像服务器。多数Linux服务器不需要X-Windows。如果可能,不要安装图象桌面,只使用基于字符的控制台。Linux虚拟机要求较少的资源。



  如果你确实需要一个图象桌面,那么使用轻量级的窗口管理,如WindowMaker。KDE和Gnome都非常消耗资源,它们会影响虚拟机的潜在资源,或者使用用于其他虚拟机的额外ESX主机资源。

  在优化Linux虚拟机时,确保你禁用或移除了不必要的守护进程、服务以及背景任务。同样也移除了不需要的包。这将释放处理器和内存资源用在应用上。
  技巧12:使用智能的杀毒软件和备份配置

  如果你的虚拟机不是用于生产服务,如虚拟机用于测试或开发环境,你可能不需要安装反病毒解决方案(除非你测试反病毒解决方案)。多数生产虚拟机都需要反病毒解决方案。
  你应该谨慎配置反病毒解决方案以最大化虚拟机性能。你首先能做的一件事是设置病毒扫描时间表,使其在非高峰时段进行,那么应用就不会与反病毒解决方案争夺资源。多数情况下,每天进行一次病毒扫描是合适的。
  服务器通常不需要实时病毒扫描,因为会影响服务器性能。尽可能禁用生产服务器的实时病毒扫描功能,尤其是那些作为数据库、文件或web使用的服务器。多数反病毒解决方案有排除某些文件、文件类型和目录的能力。


  一些应用文件不需要扫描,因为这会破坏性能,如扫描数据库的数据文件。配置反病毒解决方案,让其排除没有高风险病毒传染的关键任务应用文件。某些情况下也应该排除Swap文件。
  如果在虚拟机里运行一个备份代理,你应该制定备份时间表,使其在非高峰时段和非病毒扫描期间执行。这样做能缓和应用与备份解决方案争夺资源。
  不要忘记先前所提到的,在升级到VI3时,尽可能利用VMware Consolidated Backup功能的优势,因为它能通过卸载备份到SAN上消除虚拟机里和网络上的性能开销。当结合使用VMware Consolidated Backup和一个市场上支持这个功能的备份解决方案,这种拥有零网络负荷和尽可能少的主机服务器开销的完整备份解决方案允许虚拟机使用所有的主机服务器资源增加它们自身的性能。

 楼主| 发表于 2010-12-20 15:59:14 | 显示全部楼层
Oracle在VMware上完美运行的10大理由

看到外界非常关注 Oracle 在虚拟环境中的表现,我们感到十分高兴。Oracle 在 VMware ESX 上的优越表现一直是我们的秘诀之一。这种优越表现绝非偶然,因为我们对 VMware ESX Server 体系结构做了大量功能和性能优化工作,特别是在数据库支持方面。
在此,我将向大家介绍一下确保我们获得最佳数据库性能的 10 大重要因素。以下是其中几项性能优势:
  • 接近本机系统的性能:Oracle 数据库与物理系统的性能几近相似
  • 超强的数据库 I/O 扩展性:VMware ESX Server 的精简虚拟化管理程序层每秒能够驱动 63,000 次数据库 I/O 操作
  • 多核扩展:使用 SMP 虚拟机和多个数据库实例进行纵向扩展
  • 巨大的内存容量:可扩展的内存容量 - 每个数据库 64 GB;每台主机 256 GB
我们一直持续地下大气力优化 Oracle 在 VMware 产品上的性能,因为它已是最常用的虚拟化应用程序之一。融合了多项先进优化措施的 ESX 3.5 版本即将发行,这是我们迄今为止推出的最棒的数据库平台。
在本篇博客文章中,我将为大家介绍数据库应用程序(如 Oracle 产品)的独特和专有特性,并向大家展示 ESX Server 在此类工作负载下的运行能力。
[size=1.2em]数据库的本质
数据库具有多种独特的属性,例如较大的内存占用空间。这样,数据库要进行顺畅的虚拟化就略显复杂了。然而,实践证明这也是一种机会,因为我们可以专门针对这些特定的属性进行优化。
  • 巨大的内存容量:数据库使用大量的内存来对其存储数据进行高速缓存。大容量高速缓存是衡量数据库性能极为重要的一个标准,因为它通常可使物理 I/O 操作的次数减少 10-100 倍。
  • 高性能数据块 I/O:数据库使用固定大小的数据块写入和读取数据。这些 I/O 通常较小,频繁发生于少量文件或设备中。
  • 以吞吐量为中心:数据库通常会有大量的用户同时进行操作,因此具有多个逻辑或物理处理器的系统便可以使这些用户自然并存并充分受益。
[size=1.2em]理解和量化虚拟性能
量化虚拟系统的性能时,首先应衡量延迟和吞吐量,其次是资源的使用率。例如,如果一个物理系统正在以每分钟 10000 个事务、每个事务 500 毫秒的延迟运行,则与该物理系统性能相同的虚拟系统也应该以可接受的延迟标准提供同样水平的吞吐量。其次应该是资源使用率的衡量指标,通过这一指标可以衡量要取得同样水平的性能需要额外使用多少物理资源。有些时候我们过于简单地仅去考虑 CPU 资源,然而现实中我们需要配备的内存和 I/O 却是更加昂贵的资源。随着时间的推移,内存和 I/O 资源的使用率变得越来越重要,原因是多核 CPU 会使每个处理器内核的成本继续降低,而内存的成本却一直居高不下。
对于 Oracle 而言,更重要的一点是纵向扩展能力,即通过虚拟化管理程序充分利用多核 CPU、大容量内存以及 I/O 吞吐量来支持后端存储阵列中大量的磁盘。
[size=1.2em]数据库性能认识误区
对于虚拟化数据库,通常存在以下几点认识误区:
  • 虚拟数据库具有很高的系统开销:就延迟和吞吐量而言,虚拟数据库的运行速度能等于或接近物理系统。对于常见的数据库而言,虚拟化开销很小 – 在 VMware ESX Server 中所测量到的 CPU 开销低于 10%。
  • 数据库的 I/O 操作过多无法进行虚拟化:通常情况下,数据库会产生大量小的、随机的 I/O 操作,其理论值可能达到虚拟化管理程序层的 I/O 数量极限。然而,VMware ESX 的精简虚拟化管理程序层每秒可以驱动 63,000 多次数据库 I/O 操作,等同于 600 多个硬盘的 I/O 吞吐量。这样的 I/O 极限值,即使是用于 x86 系统上最大的数据库也绰绰有余。
  • 虚拟化只能用于较小的、无关紧要的应用程序:ESX 虚拟化管理程序非常强健 - 很多客户的基于 ESX 的系统已经连续正常运行了两年多的时间。此外,ESX 虚拟化管理程序一直非常稳定,即便在资源过度使用时亦是如此。
我们不能奢望通过一个快速的解决方案使数据库与很多种实际的应用程序完美兼容 – 只有通过长时间地致力于研究众多用户在实际数据库工作中获得的教训,并且在虚拟化管理程序体系结构中应用这些教训,才能获取优异的性能。
下面让我们简要了解一下虚拟化管理程序中可确保数据库获得优异性能的一些特性。

[size=1.2em]1. VMware ESX 的高性能 I/O
I/O 系统的吞吐量和延迟对于在线事务处理系统的性能来说至关重要。由于事务数据库系统是针对数据集中随意位置的不同小数据项进行操作的,因此应测量随机 I/O 吞吐量(以每秒钟的 I/O 操作数为测量标准),而非带宽(MB/s)。
图 1:VMware ESX I/O 驱动程序模型
由于逻辑上虚拟化管理程序驻留在客户虚拟机数据库和后端存储之间,因此很重要的一点就是虚拟化管理程序的 I/O 能力可以纵向扩展且不会超出任何性能限额,并且不能产生可察觉延迟。如图 1 所示,VMware ESX 的 I/O 子系统使用直接的驱动程序模型,以使由虚拟堆栈引起的延迟最小化。这是可能的,因为 I/O 请求可以由同一个处理器(相对于发出请求的虚拟机)进行内处理。在其他体系结构中,当 I/O 由一个重量级域 0 或父分区进行代理时,会产生大量的延迟和 CPU 开销。

在随机存取模式下,Oracle 数据库通常会产生许多 4 KB 或 8 KB 的小型 I/O 操作。对于这类 I/O 操作,一个典型的磁盘每秒可处理的 I/O 操作数介于 100 到 200 之间(具体值取决于磁盘的转速)。然而在实际操作中,最好不要使一个驱动器每秒处理的 I/O 数超过 100 个。VMware ESX 3.5 虚拟化管理程序的吞吐量已经得到了显著的提升,可持续以每秒 60,000 多个 I/O 操作数的速度运行,相当于 600 多个磁盘的吞吐量。


                           图
2:随机 I/O 吞吐量
4-CPU 数据库平均量对比 VMware ESX 3.5
VMware 对其客户的 15,000 个 Oracle 服务器进行的调查研究结果表明:对于加载的 4 处理器系统,每秒的平均 I/O 数为 1280 个,大约是 15 个磁盘的吞吐量。由于一些工作负载吞吐量要求比其他工作负载高,有些工作负载的吞吐量要求是突发性的,因此必须要备有充足的预留量。即便是对于要求最高的数据库,ESX I/O 子系统的吞吐量能力也是绰绰有余的。
[size=1.2em]2. 使用 Virtual SMP 进行纵向扩展
VMware ESX 可以通过两种方式来利用多个物理处理器:通过多个虚拟机进行横向扩展;通过纵向扩展每个虚拟机来使用多个物理处理器。VMware ESX 提供的 Virtual SMP 功能允许每个客户虚拟机最多有 4 个处理器,物理系统最多有 64 个处理器。

图 3:Virtual SMP
由于数据库工作负载通常会有大量的用户同时进行操作,这些用户是完全并行的,并且可以毫不费力地同时处理多个任务。
Oracle 能够利用 VMware Virtual SMP 扩展性能,从而超出每个虚拟机单处理器的能力。为了说明这一点,我们通过 Oracle Database 10g 版本 2 进行了几个基准测试,使用的是流行的 SwingBench 在线事务处理工作负载。图 5 显示的是在单个虚拟机上增加处理器时 Oracle 的吞吐量。基准测试测量了事务的吞吐量,结果表明随着额外处理器的增加,吞吐量提高了 94%。恰巧,这与我们在本机系统上看到的扩展量完全一致,这很可能是硬件和数据库扩展带来的结果。

图4:VMware Virtual SMP 针对单个 Oracle 10g R2 实例的扩展情况










进行整合的关键要求之一是对于多个数据库实例的良好扩展性。为了显示这一点,我们在 VMware ESX Server 3.5 上运行了多个 Oracle 10G 实例。图 4 显示了在运行开放源 DVDstore 数据库基准测试时,VMware ESX 平台的扩展情况。该基准测试是以客户端-服务器模式运行的,因此我们可以专注于数据库层。在此研究中,我们在 7 个双处理器 SMP Linux 虚拟机(每个虚拟机皆具有自己的数据库实例)中运行了该基准测试。我们很快将在 Vroom 中发布该基准测试的详细信息。


图 5:16 核 Sun x4600 M2 上 VMware ESX 中多个数据库实例的扩展情况





























[size=1.2em]3. 利用大容量内存进行纵向扩展
Oracle 数据库会消耗大量内存。主要是在内存中缓存预编译的 SQL 查询和来自磁盘的数据块。
数据库设计者花费了极大的精力来尽量避免进行排?I/O。这是因为一个磁盘 I/O 的延迟要远远长于 CPU 处理一个事务的时间。例如,一个磁盘 I/O 需要等待 10 毫秒,而典型的事务只需占用 CPU 几毫秒。如果一个到磁盘的 I/O 能够被高速缓存在内存中,则可以在不到 1 毫秒的时间内调用。此外,由于磁盘很贵,通常情况下用于数据库的存储系统的成本更多地受其每秒所执行的 I/O 操作数的影响,而不是单纯的存储空间的影响。降低整体的磁盘吞吐量便意味着大幅降低系统的成本。
更大的内存空间可以帮助 Oracle 在内存中高速缓存更多的磁盘数据块。请看一个简单的例子:如果数据库系统正在使用内存来高速缓存其磁盘 I/O,并且高速缓存命中率达到 90%,这就意味着每 10 次访问操作,只有一次会导致物理 I/O。如果每秒的访问次数为 10,000,我们将会看到每秒 1,000 次 I/O 操作。如果增加内存将高速缓存命中率提高至 99%,则可以将 I/O 的发生率降低到 1%,从而使每秒的物理 I/O 数减至十分之一,即每秒仅 100 次 I/O 操作。
通常,在客户操作系统所使用的内存中,有 80% 以上是由 Oracle 磁盘数据块高速缓存占用的。基本的经验原则是数据库高速缓存大小应该是数据库大小的 5-10%,将内存容量增加一倍会使吞吐量大约提高 20%。显然这还与工作负载的多少有很大关系,但是您可以看到较大的内存可以帮助提高系统中其他区域的资源效率,因而就整体而言,内存越大越好。综合上述原因,大容量内存对于数据库来说非常重要。VMware ESX 3.0 允许每个客户操作系统拥有 16 GB RAM,而 VMware ESX 3.5 则将此限制提高到了每个客户操作系统 64 GB。
由于通过工作负载整合可以从内部提高处理器利用率,因此我们可以将更多工作负载压缩到单个系统中。这意味着平均而言,每个物理处理器的平均内存要求将是传统未虚拟系统的两倍。为了适应这些不断增长的要求,我们在 ESX 3.5 中大幅提高了内存扩展量,现在对于 Sun、IBM 和 Unisys 的最新高端系统,最高可以支持 256 GB RAM。
[size=1.2em]4. ESX 3.5 虚拟化管理程序的大页面功能
Oracle 数据库在 CPU 的 MMU 中使用大页面来优化内存性能已经有一段时日了。这一功能与操作系统的大页面功能配合使用,通常用于容纳数据库磁盘数据块高速缓存的较大共享内存分段。 Linux、Windows 和 Solaris 客户操作系统均支持大页面。通过大页面,Oracle 的性能一般会提高 5-20%,具体取决于处理器的类型和所配置内存的大小。
其他的 x86 虚拟化管理程序不提供虚拟的大页面功能,因此当数据库被虚拟化后无法使用该优化功能。ESX 3.5 虚拟化管理程序提供先进的大页面支持,允许数据库充分利用 CPU 的大页面功能。
[size=1.2em]5. ESX 针对不同内存体系结构系统进行的优化
当今许多备受关注的新硬件系统都是使用不同的内存体系结构实现的。这意味着并不是所有的内存都具有相同的速度,对比拓扑结构与处理器相近的内存和拓扑结构与处理器差异较大的内存,访问前者要比访问后者更快。
为确保最佳性能,VMware ESX 虚拟化管理程序在为客户操作系统分配内存时,将从与运行客户操作系统的 CPU 拓扑结构接近的物理内存中进行分配。
[size=1.2em]6. 高性能的半虚拟化网络连接
半虚拟化是一个专有名词,指的是客户操作系统具有虚拟化管理程序的一些知识,并且能够利用这些知识对虚拟化管理程序的执行进行优化。VMware ESX 虚拟化管理程序在客户操作系统中使用半虚拟化网络连接驱动程序来提供高性能的网络连接。在客户操作系统首次启动时,这些驱动程序会通过 VMware 工具包被自动安装。不同于 CPU 半虚拟化,半虚拟化驱动程序不需要对客户操作系统进行任何更改,它们只是作为透明的新驱动程序进行安装。

6 - 多 NIC 的扩展情况
ESX 能够以线速驱动千兆位以太网,如文章多个虚拟机中的网络连接性能中所述。通过集成新的无状态卸载功能,例如大分段卸载 (large-segment-offload, LSO) 和巨型框架,ESX 3.5 的网络连接性能得到了很大提升,现在在 10 千兆位以太网上已接近线速(9.9 千兆位/秒)。
通过在多个 NIC 之间扩展,网络连接的性能可以提高从而超过一个 NIC 的性能。图 6 显示了添加多个 NIC 后千兆位以太网性能的扩展情况。

[size=1.2em]7. 利用 VMware ESX 的页面共享功能来减少内存使用量
通过一个被称作透明页面共享的功能,ESX 虚拟化管理程序可以安全地共享具有相同内容的物理内存。通过页面共享,虚拟化管理程序会分配一个单独的物理内存页面来对应客户系统中的多个页面,这样仅有一份数据副本驻留在内存中。使用这一技术,所耗用的内存总量就会少于各部分的总和。虚拟化管理程序会确保绝对的安全性隔离,即如果一个客户操作系统修改了一个页面,则该客户操作系统就会获得自己的专有副本。
可以通过多种方式使用此功能有效地节省 Oracle 所用的内存。如果有多个数据库实例在运行,则页面共享功能会自动共享操作系统和 Oracle 实例的代码部分。通常情况下,这会为每个虚拟机节省好几百 MB 内存。
当多个数据库正在共享相似的数据(如一个共享的参考表或者多个用于开发目的的数据库副本)时,ESX 可自动检测 Oracle 磁盘数据块高速缓存中相同的磁盘数据块,并安排对其进行共享。如此一来,各数据库实例以及各虚拟机之间就可以透明地共享数据库高速缓存内存映像。这会进一步节省几十 MB(至少系统表会是相同的)到几 GB 的内存,具体取决于实例间相同磁盘数据的数量。
页面共享的另一个好处是,某些内存还可以在每个实例内部进行共享。这通常适用于零页面。
[size=1.2em]8:半虚拟化 CPU
[size=1.2em]

图 7: 虚拟化技术

有多种技术可以用来虚拟化 x86 指令集,包括二进制转换、半虚拟化和硬件辅助。长期以来 VMware 虚拟化管理程序就一直使用二进制转换来为多种工作负载提供接近本机性能的虚拟化。CPU 半虚拟化或硬件辅助这两种方法可以用来为具有多个系统调用的工作负载提供小的优化,以及特定的内存优化。没有哪个方法是适用于所有工作负载的,在 VMware ESX 中,不同的方法被用于不同的工作负载。Ole Agesen 和 Keith Adams他们的论文(关于虚拟化性能)中解释了不同的技术。
VMware ESX 可以针对一些客户操作系统类型选择性地使用半虚拟化技术。在最近的研究中,我们在半虚拟化的 Linux 客户操作系统上使用 Swingbench 在线事务处理工作负载对 Oracle 10g R2 进行了测试。测试结果表明,采用半虚拟化 CPU 接口可使该数据库的性能提高 10%。


[size=1.2em]9. 最佳的 Oracle-Windows 性能
由于所有关键的 CPU、内存和 I/O 虚拟化功能都处在虚拟化管理程序的可移植层中,因此 Windows 客户操作系统中 Oracle 的性能与 Linux 客户操作系统中 Oracle 的性能是相同的。Windows 上的 Oracle 能够利用大页面、SMP、I/O 扩展性以及高性能半虚拟化网络连接驱动程序。
对于 Linux、Solaris 和 Unix 管理员,这就意味着您可以根据最适合自己部署的工具而自由选择操作系统。对于 Windows 管理员,这意味着您可以完全放心地在 Windows 中运行 Oracle 数据库,您会获得同样水平的性能和可扩展性。
[size=1.2em]10. 通用的 32 位和 64 位客户操作系统支持
为了在客户操作系统中使用超过 3.5 GB 的内存,需要将数据库配置为 64 位应用程序,并使用支持 64 位的操作系统。VMware ESX 允许 32 位和 64 位客户操作系统并存,这可以在需要时简化 64 位客户操作系统的部署。
[size=1.2em]
[size=1.2em]总结
各位数据库管理员们,欲知 Oracle 在 VMware 产品上的性能表现,敬请关注 VROOM 中更多相关文章,最新的 Oracle portal 也值得期待,您可以在其中获取大量有关 Oracle 虚拟化的有用资料。此外,一个全新的 Oracle Discussion Forum 即将面世,您可以在论坛中畅谈您对 Oracle 性能的看法。虚拟数据库实现了前所未有的高性能!


本文出自 “虚客帝国” 博客,请务必保留此出处http://virtualman.blog.51cto.com/200540/52530
 楼主| 发表于 2010-12-20 16:11:46 | 显示全部楼层
http://www.vmbest.com/index     
虚拟机百事通是一个专注于虚拟机软件虚拟化技术的专业技术类网站,提供虚拟机入门教程高级教程,提供各种虚拟机软件使用和配置提供详尽的帮助指导。提供各种虚拟机软件下载资源。对常见的虚拟机软件VMwareVMware ESX(i)Virtual PCVirtualBoxXenHyper-VParallels WorkstationOpenVZQemucygwin/winlinuxcolinuxsimics均开设单独的栏目进行介绍

 楼主| 发表于 2010-12-20 16:16:52 | 显示全部楼层
看谁能笑到最后? VMWare ESX虚拟服务器ERP压力测试
工程师点评VMWare的虚拟服务器目前占据了大部分的市场不是没有原因的,其技术也有着自己的独特之处。在测试中VMWare的虚拟服务器表现稳定,即使是运行大压力的重要业务的应用程序也没有出现宕机,这和很多人认为的虚拟机只能跑非核心应用的观念有很大的出入,虚拟服务器同样胜任物理服务器所能做的大部分任务。测试方法:在单一基于VMWare ESX的虚拟服务器上进行ERP压力测试,不断加大并发用户数来体现系统性能极限,另外在保持高性能压力的状态下,通过长时间运行疲劳测试以考察虚拟系统的稳定性。
  
硬件组成        物理机        星盈G129-Q,Intel Xeon 5335*2,4*146G SAS 15K转/ RAID5/ 16G内存
        VMWare虚拟服务器
网络        1000M交换机        
软件组成        OS:VMWare Infrastructure 3.5Microsoft Windows Server 2003 Enterprise  Edition ON VMWare ESX
Microsoft SQL Server 2005 with SP2
        
浪潮通软ERP-PS9.1        
Loadrunner8.1        
测试脚本        浪潮ERP物流6功能模块 测试用数据库数据大小为5G。5G数据库大约是一个中等规模企业      
优点:设置界面友好、简单,虚拟服务器系统稳定性可以与物理服务器媲美缺点:相对于物理服务器在系统资源的调用效率,直接体现的系统性能都有一定的下降。

前言
  在目前的虚拟技术市场上,VMware是掌握了绝对的市场份额。但微软公司即将正式发布的Windows Server2008中也整合了Hyper-V虚拟技术,看来软件的巨头微软公司已经将其触手伸向了这个越来越热的虚拟技术市场,毫无疑问,Hyper-V借助低廉的价格以及Windows的迅速普及,将VMware的垄断地位会有一定的打击。

  有意或无意,在Microsoft Windows Server2008发布时间很接近的时候,VMware也发布了新的VMWare Infrastructure 3.5,Infrastructure 3.5包涵了全套的服务器ESX虚拟平台和管理套件。无论如何,巨头之间的技术和市场的直接竞争,对用户来说,尤其是对信息化预算投入不多的中小企业,还是好处更多一些。


一、测试简介:
  建立虚拟服务器作为测试的服务端,采用浪潮ERP最常用的6种功能模块对象作为测试脚本,在客户端利用Loadrunner虚拟用户并发并记录系统资源占用、响应时间、通过事务数等参数。(相关说明见本站文章“微软、浪潮工程师谈ERP压力测试”、“ERP压力测试专题”)。
  性能测试方面,对虚拟服务器进行ERP压力测试,通过不断加大并发用户数来测试系统性能极限;稳定性方面,在保持高性能压力的状态下,进行12-20小时左右的长时间疲劳测试来考察虚拟虚拟系统的稳定性。
  硬件方面的物理服务器是配置较高的星盈G129-Q企业级服务器,星盈G129-Q是高集成度的IU机架式服务器,使用两路Intel Xeon 5345 CPU,16G内存,存储系统为4块15,000转的SAS 146G硬盘组成的硬件RAID5。该服务器先前在Windows Server2008中的Hyper-V进行过同样测试项目。我们给ESX的虚拟服务器划分同样的系统资源(4CPU以及8G的物理内存),以此来对比基于同样硬件平台使用不同虚拟技术的虚拟服务器的差异(Hyper-V测试结果见《全球首发!Windows Server 2008虚拟机ERP压力测试
》)。

二、性能测试

  性能测试的项目中我们为VMWare ESX 选取了和Hyper-V同样的测试并发数,分别是50、100、200、240并发的响应时间来进行对比。

  [url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url][url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url]

  图1、2两套虚拟系统性能比较(点击放大)

  上图左边是本次的VMWare的测试结果,右边是Windows Server 2008的Hyper-V测试结果。为了方便各位对两种虚拟技术有更直观的比较,我们将它们都放到一起。简单的对比,除了库存入库单记帐模块在VMWare平台上响应时间比较领先之外,其他的5个功能模块都不同程度的落后于Hyper-V的虚拟平台。

  不同的功能模块在不同的虚拟服务器系统中应该有着不同的表现,但VMWare和Hyper-V其实都是属于同一种虚拟架构的虚拟技术,都是裸金属架构,即都是虚拟服务器上的系统直接驱动底层硬件,而我们测试的都是在同一套硬件之上,安装的操作系统以及所使用的系统资源都是一样的,理论上这两种虚拟机上的性能表现应该是一样的,原来我们曾经在同一个物理服务器上进行过同样压力的性能测试项目,前后的测试成绩相差都不会超过10%。对于虚拟服务器,我们原来猜想也是如此,但现实往往在想象之外。

    虽然现在对具体的原因还很难分析清楚,不过根据虚拟技术的原理,可以做出一个基本判断:不论是Hyper-V还是VMWare,虚拟层的主要作用就是给客户操作系统(微软称为访客操作系统)提供模拟的单独硬件环境,另外更重要的作用就是调度核心资源例如CPU、内存以及IO。实际上在之前的Hyper-V,还有这次VMWare测试中我们都发现,分配给虚拟机的虚拟CPU和物理CPU没有映射关系(当然VMware提供这个选项),测试中不论我们分配给虚拟机1个还是4个CPU,虚拟机的性能上限都变化不大。这就意味着在CPU资源调度这个关键功能而言,虚拟层都将所有的物理CPU当成一个资源池,根据虚拟机实时的资源申请进行分配。在我们这个场景的测试中,因为只有一个虚拟机,因此基本上物理CPU资源池仅仅保留虚拟层进程必要的CPU时间片,其他资源都可以按需要分配给虚拟机。

    很明显,虚拟层进程的时间占用和对资源申请的调度效率就很大程度决定了虚拟机的表现。虽然VMware描述的技术是虚拟机直接在物理CPU上运行,但是对CPU资源的调度就像操作系统对处理器的调度一样,仍然是虚拟层的核心任务,而Hyper-V与VMWare在调度效率上显然有所侧重,这也没什么奇怪的地方。


在深入研究过测试的数据后我们大致的发现VMWare响应时间比较慢的原因。对于VMWare ESX Server上的虚拟系统资源,有3种会比较影响性能的参数,1是对虚拟系统的资源保留值,即每个系统保留的CPU个数、内存大小,磁盘大小等等。2、是各个系统在物理硬件资源池中所占的资源权重,比如说多个系统都对物理资源申请调用时,哪得系统会得到优先使用权的设置。3、是虚拟系统资源的限制值(Limit),这个数值是指虚拟系统不能占用超过物理资源的百份比例。这三个设置其实是互相影响的,在物理服务机上安装的虚拟系统不多的情况下,如果没有对虚拟系统设置限制值,那么保留值的设置并没有太大的意义,因为只要物理资源有空闲的时候,虚拟系统提出申请,那么这些系统资源,尤其是CPU的计算能力,都是被虚拟系统所调用。    

[url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url]

      图3 IOmeter测试结果

  在压力测试之余,我还特意的对两种虚拟平台上磁盘文件系统的性能做了IOmeter的性能测试。从上图可以看出,Hyper-V下的虚拟磁盘性能曲线平稳一些,而VMWare ESX 的磁盘对压力的表现更直观。就性能而言,在队列深度的不断增加,虚拟磁盘的读写速度差别不是很大,两种磁盘的性能都很接近,但在压力增加的时候,VMWare ESX 的下降趋势比较明显,这多少解释了为什么VMWare ESX 的ERP高并发时响应时间变得更慢的原因。  

  

    

  读写速度(MBps

  队列深度

  物理服务器磁盘

  29.172204

  64

  VMWare ESX Server

  9.73768

  16

  Hyper-V

  9.502278

  32

  表1 IOmeter磁盘峰值速度

   从上表可以看出,虚拟文件系统与物理文件系统的差别巨大,性能仅仅是物理系统的30%!这就是为什么重要的解决方案例如高可用和容灾一定要在单独的阵列上运行。原因之一就在于虚拟文件系统实际上需要虚拟层的翻译。例如Hyper-v其实是在Windows 2008文件系统上创建一个扩展名为VHD文件来模拟虚拟机文件系统,所有对虚拟文件系统的操作实际上是对这个Windows2008文件的操作来实现。VMware给虚拟机一个单独的分区,但是根据测试来看,其虚拟机仍然不是直接操作物理磁盘系统。这样虚拟文件系统相当于所有的操作都要通过虚拟层的翻译,效率自然高不到哪里去。

    在我们进行的虚拟机Windows 2008和Windows 2003文件传送效率对比测试中,虚拟文件就造成更惊人的差别:Windows2008的文件传输效率居然是Windows2003的9倍!主要的原因也出在这个虚拟机文件系统上。

    因此对实际生产的系统而言,不论采用Hyper-v还是VMware方案,我们都强烈建议将虚拟机安装在单独的SAN存储上,而不要和虚拟层共同安装在服务器直连存储上!

三、稳定性测试

  对于VMWare ESX虚拟系统的稳定性,我们同样的进行了100并发中等压力下的12小时长时间的压力测试来验证VMWare ESX系统的稳定性能。同样的,测试项目顺利的完成,没有出现宕机死锁的现象。在测试中VMWare的虚拟服务器表现稳定,这和很多人认为的虚拟机只能跑象备份、邮件等非核心低压力应用的观念有很大的出入,虚拟服务器同样胜任物理服务器所能做的大部分任务。

  

[url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url]

  图4 长时间的测试结果

  因为测试项目运行的时间很长,同样的ERP业务动作会被重复的执行很多次,而由于数据的冗余,执行的事务的时间会越来越长,最小和最大的响应时间之间会出现很大的偏差,所以在稳定性测试中,平均响应时间有更多的参考价值。值得一提的是,在稳定性测试中,VMWare每个模块的平均响应时间又都领先于之前的Hyper-V的同样测试的结果(见图)。难道VMWare对数据冗余有更好的优化技术?这个问题我们会继续咨询相关的技术人员,随后给大家一个合理的答案。

  









    实际上,VMware已经证明能够很好的支持异构操作系统,例如同时支持微软和Linux,而目前Hyper-V对Linux的支持还需要完善。目前我们还没有办法测试在完全异构环境下的资源调度效率,从这个意义上说,Hyper-V在Windows平台的优胜还不是两种方案的全部。

  这其实是由于Hyper-V和VMWare ESX Server两种虚拟技术所使用的底层编译语言是不一样的,在硬件层和虚拟服务器客户机系统之间的虚拟平台,它实现的是客户机操作系统对硬件的驱动,但各自使用的方式及编译语言是不一样的。这好比BENZ和BMW,虽然都是汽车,都表现出相似的运动方式。但说到核心技术,诸如发动机、底盘、驱动方式、制动方式都有着自己的标准,所以差别并不少。



四、资源使用率

  在进行压力的测试的同时,我们会不断的记录虚拟系统的资源占用情况,这也是从去年在物理服务器上测试时遗留下来的习惯。系统资源的占用情况会直观的表现系统的压力程度,不过在虚拟平台上,这就和我们的使用习惯相去甚远了。

  

[url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url]

  图5 VMWare不同并发压力下的资源使用率

  正如上文提到的虚拟资源的3个很重要的参数。没有添加限制值的时候,CPU资源的会自动进行动态的调配。持续长时间占用的100%CPU计算时间在物理服务器上是很少见到的,而在虚拟机上,不同的压力下,CPU也一直维持为接近100%的水平,这个现象在之前的Hyper-V上的虚拟服务器上已经出现过了,所以在这样高系统占用的情况下,只要虚拟服务器的计算申请没有达到或者超过物理服务器的资源水平,仍然没有宕机也不算奇怪。

  这样的设置其实是体现了虚拟技术的最大特点,就是以不同应用来划分系统资源,将闲置的系统资源分配给合适的应用,同时保证每一个应用都最大程度的利用系统资源的,使物理服务器的硬件价值得到最大化的体现。


四、结论

    VMWare ESX是VMWare Infrastructure的主要组成部分,ESX运行在物理服务器上的一个虚拟层,它将要调配的处理器、内存、存储器和网络资源抽象到多台虚拟机中。这大大的改变了以往一台物理服务器负责一个或多个主要应用的旧有习惯,提高了系统资源的利用率的同时,也很大的节约了服务器的摆放空间和能耗。现在的数据中心机房服务器托管都是按U计算费用,同时国家也出台了关于高能计算的单位能源损耗标准,无疑,虚拟技术的出现和普及有其必然性。

[url=http://www.pconline.com.cn/images/html/viewpic_pconline.htm?&][/url]

  图6 VMWare Infrastructure架构

  从本次在虚拟平台上的测试,如果单以物理性能来的衡量,测试的成绩虽然没有给我们带来太多的惊喜,但我们至少在虚拟平台上进行了高压力的应用项目测试。单个虚拟服务器的测试成绩不算很出色,不过我们并只划分了部分的硬件资源,如果全部利用起来就可以构造多个的虚拟服务器以应付不同的应用,在象VMWare的企业级的虚拟服务器平台上,依靠单台的物理服务器,架构出一个中小型企业的全部应用平台也不是不可能的。在虚拟技术这个大舞台上,微软还是VMWare,我们看看谁能笑到最后吧?

  之前有网友评点过微软Server2008的测试,说目前虚拟系统的最大用途是用于测试。诚然,虚拟系统中有很多诸如快照这样的可回溯的功能,对一些破坏性的测试有很大的帮助。但经过我们的自己的测试,这样来定义虚拟服务器,确实是有点大材小用。由于时间的关系,VMWare ESX的一些其他的应用象是高可用方案(HA),VMotion管理等功能的测试会陆续进行,测试结果也会分批次的与网友见面。

 楼主| 发表于 2010-12-20 16:20:24 | 显示全部楼层
详细讲解在VMware ESX中使用NAS的优缺点NAS是一种十分简单的网络存储。众所周知,它易于实施、操作和管理。这和VMware公司的VMware ESX有些类似。在ESX的网络存储中使用NAS不失为一项很好的选择。

    NAS是一种十分简单的网络存储。众所周知,它易于实施、操作和管理。这和VMware公司的VMware ESX有些类似。在ESX的网络存储中使用NAS不失为一项很好的选择。
    在ESX中使用NAS需要网络文件系统(NFS)协议(目前暂时不支持CIFS)。用户经常会问到这样一个问题:“为什么NFS NAS在VMware ESX环境中的运用不是那么经常使用?”传统观点认为FC或者iSCSI SAN存储更加适合VMware ESX,但是这种观点可能不完全正确。
    在VMware ESX中使用NAS NFS的优点
    所有的ESX客户机都以*.vmdk文件被保存,意识到这一点,非常重要。从架构而言,NAS是对存储、管理和提供文件进行优化。管理文件通常被认为比管理逻辑单元号(LUN)更为简单。所以,从逻辑意义而言,根据定义,NAS是一种比存储局域网络(SAN)更加简单的网络存储。
    如果系统中存在数十个虚拟机(VM),那么从技术上讲,将虚拟机文件系统(VMFS)写到SAN存储上,会十分有利于把所有的VMDK整合到单个LUN上。但是如果系统中有上千个虚拟机,NAS NFS则是一种更加高效的网络存储方式。
    例如,NAS可以允许将相似的VMDK文件分组放到不同的文件夹中。一个文件夹可以存放所有的桌面镜像,一个文件夹可以存放所有的微软Exchange服务器,而另一个文件夹可以存放SQL服务器,以此类推。而且,很多NAS产品还带有非常有用而且吸引人的文件管理能力。比如,重复数据删除、信息生命周期管理(ILM)、服务等级(QoS)、零影响快照、克隆、安全和验证,以及成熟的本地及远程复制(同步及异步)。
    诸如重复数据删除、ILM和QoS等高级的NAS功能可以对存储类型和VMDK占用的空间产生巨大的正面影响。VMware用户会产生很多的服务器镜像,每一个大约会占用1GB到10GB的存储空间。单独看的话,占存储空间并不大。但是积累起来,就可能会很惊人了。
    基于NAS的重复数据删除(文件级、块级、可变块大小及应用感知)能够减少这些镜像高达97%甚至更高,这就意味着真金白银的成本削减。但是,重要的是,这种技术只能在对VM应用性能服务等级要求不很高的情况下才可以使用。ISO文件、模板、桌面系统镜像等都非常适用该技术。存储在NFS上的已去重复的VMDK能达到合理的运行速度,但是速度会低于一般的NAS或者基于SAN(FC或者iSCSI)的存储。去重复后的性能一般对于使用率不高的虚拟机来说还是比较合适的。
    NAS可以不间断地把应用文件移动到不同的服务等级和存储层,这种固有的能力可以有效地使用低成本的存储和归档设备。但是,并不是所有的生产和非生产虚拟机都需要相同的性能等级。一些NAS系统可以根据规则决定每一个VM的性能服务优先级,检测到它们实际达到的性能,然后确保服务等级能够透明化地得以实现。
    在灾难恢复方面,很多NAS系统都能和VMware vCenter Site Recovery Manager(SRM)协同工作。NAS系统可以把整个组的虚拟机数据作为一个单元进行复制,从而极大地简化了复制。
    在VMware ESX中使用NAS NFS的缺点
    在VMware ESN中使用NAS NFS的最大缺点一般认为是性能。从某种程度而言,NAS性能是会比FC或者iSCSI的SAN存储稍慢。实际上多数的虚拟机很难看出区别,因为存储很少成为系统中的瓶颈。同时,目前市场上有很多速度很快的NAS系统,从而使这个区别更加难以察觉(如BlueArc、EMC、NetApp、OnStor 、Reldata)。
    另一种进一步缩小性能差距的方法是利用多路网络。这种网络结构能够均衡负载,并且为通往不同的NFS共享点建立了多条路径。
    另一个缺点是人们认为NAS NFS不能支持VMware ESX的高级特性。这种看法不对,只存在一个特例。NAS NFS能够支持VMware VMotion, DRS, vCenter SRM, HA-DR, 甚至 VMware 集中备份。目前唯一还不能支持的是Storage VMotion(不间断VM的情况下在不同存储系统之间迁移数据)。
    最后一个缺点是人们常断言Windows VM客户机不能有效地使用NAS NFS,因为他们不能从NFS启动(微软目前不支持Windows从NFS启动)。NFS可以运用于Window的虚拟机,因为VMware将NFS内建到ESX的磁盘虚拟层中,克服了这一缺点。有的IT专家对此表示诧异。ESX负责处理NFS协议,这样所有的操作和协议都与操作系统相脱离。
    NAS NFS和VMware ESX的总结
    对VMware ESX虚拟机来说,NAS NFS是一个非常优秀的网络存储候选方案,因为它使用简单,并且提供杰出的价值。
    此外,VMware环境中可以存在NAS和SAN混合的网络存储方案,适合何种方式的地方就使用何种方式。尤其是在基础架构中已经存在某种网络存储方式时,这更加是一个合理的选择方案。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-4-26 19:28 , Processed in 0.185555 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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