天天看点

如何调整磁盘分区以提高虚拟机性能?

      既然VMware允许你从模板创建一台新的虚拟机(VM),所以在一台虚拟机上花些时间调整它的性能,将它作为虚拟机的模板,这就可以明显地提升整个系统的性能。途径之一是通过调整磁盘分区获得性能,这会提高磁盘读的速度。 在这篇文章中,我们会介绍怎样通过调整磁盘分区来提高Windows类型虚拟机的整体性能,并将此VM制成模版。然后,它可以用来建立其他经过适当调整以及性能增强VM(虚拟机)。如果在阅读这篇文章后,你还想更详细了解一些细节, 请参阅VMware的白皮书——调整VMware虚拟机文件系统(VMFS)分区推荐文档。(注:本文仅适用于Vista之前的Windows版本 ,因为Vista和Windows Server 2008都使用默认的1024KB分区偏移量。 )

为什么要调整磁盘分区? 一个被调整过的磁盘分区可以使系统能够更有效地读取数据。这也使系统变得更快。但是,要了解为什么机器的磁盘调整是很重要的,我们将不得不了解虚拟机的磁盘子系统的结构。虚拟机磁盘系统由三个层次组成。最上面的层是虚拟机磁盘文件( VMDK ) ,它由集群组成,因为它被新技术文件系统( NTFS )格式化 。 第二层是虚拟机文件系统( VMFS ),并且它是由块组成的。 最底层是逻辑单元号( LUN ) ,是由条或块组成(在这种情况下,LUN是一个磁盘冗余阵列(RAID) 5 ,它会结合3个或更多的磁盘,以保护数据不会从单块磁盘丢失,建立一个大容量和具有冗余性的磁盘) 。 LUN是在物理磁盘设备或卷和应用之间的虚拟层。 在一个NTFS里面 ,最小的数据单元是一个分配单元,或一个集群。对于数据磁盘来说,你可以更改集群的大小。但是,对系统卷来说,默认的集群大小必须是4 KB,以便系统正常启动。此外, x86系统的主启动记录( MBR )中有63个扇区来存放操作系统上磁盘分区表,和ESX服务器是没有什么不同的。因此,问题是什么呢?看看下面的图表显示的一个调整过分区(aligned partition)和一个未调整分区(unaligned partition)。

如何调整磁盘分区以提高虚拟机性能?

让我们先从未调整分区的VMFS层开始。正如你所看到的,试图在VMFS分区上读取数据块,可能会导致读取LUN层的两个条,因为块跨越了条边界。这将导致读取时间将慢于单块磁盘的读取时间。幸运的是,你可以通过VMware基础设施的客户端(VI Client)自动创建调整VMFS分区。 但还有另一个调整关注的问题。正如你从图上所看到的,在NTFS层企图要读取的集群,可能会导致在VMFS层读取2个块,从而导致在LUN层读三个条。

如果你的磁盘是被调整了的,那你怎么才能知道呢? 在Windows分区层,你怎么知道一个磁盘没有得到调整?记住,MBR的表——即x86系统使用的是第一个63个扇区。通常每个扇区有512字节。如果你做一下数学运算,63 x 512 = 32256 。要验证这一点,以管理员身份登录到一台机器(物理机或者虚拟机),它的系统卷没有对齐。转到开始菜单,然后点击运行,键入“ Msinfo32.exe”命令 ,然后按ENTER 。浏览到组件,然后储存,然后磁盘。请注意,该分区起始偏移为磁盘# 0 ,分区# 0 (系统卷)是32,256字节。

如何调整磁盘分区以提高虚拟机性能?

由于该系统体积是32256字节,分区还没有得到适当的调整。请记住, Windows系统格式化卷,以4 KB或4096字节簇的大小。这意味着你想一个调整分区以4096字节为边界。用4096除32256。你得到7.875 ,这不是一个整数。 分区不符合以4096字节为边界,除非偏移量可以被4096整除。

调整磁盘分区

为了调整该分区,你将使用一个64 KB的偏移量,即65,536个字节。用65536除以4096 。你应该得到的答案是16 。这表明,分区被调整到以4096字节为边界。 调整分区会破坏该分区上的数据,所以在操作系统被安装后,你不能调整它。这会出现两种选择:你可以在另一台虚拟机上调整一个空的虚拟磁盘,或者,你也可以使用启动磁盘,在安装操作系统完毕之前调整该分区。 因为第一个虚拟机分区将不会被调整,所以如果你的目标是调整将来所有的VM系统分区,那么第一种选择是不理想的。附加的虚拟磁盘在被调整后,你将需要删除虚拟机。在你调整了这个磁盘之后,如果你删除了虚拟机,那么你又有可能不想浪费时间来安装操作系统。 第二个选项是针对在刚刚安装好的ESX环境中,即目前没有安装任何虚拟机。在这种情况下,你使用的WinPE 2.0启动磁盘来启动你的第一个虚拟机,调整它的磁盘,安装和配置操作系统,并将此虚拟机转换为模板。让我们创建一个基本的WinPE 2.0启动磁盘。

创建启动盘的WinPE 2.0

你将需要以下内容:

  • Windows自动安装工具包(Windows AIK)的副本 ;
  • 一台“技术员电脑” ( 装有Windows Server 2003 SP1, Windows XP SP2中,或Windows Vista操作系统)
  • 一台装有DVD刻录机的电脑 (应该是技术员电脑)

一旦你有了一台可以安装WAIK的技术员的电脑,下载Windows AIK并把它安装在技术员的电脑上。要安装Windows AIK,你需要从微软网站下载它的镜像文件,将其刻录到DVD盘并安装。安装了WindowsAIK后,转到开始,程序,Windows AIK,然后是Windows PE工具命令提示符。注意:如果你使用Windows Vista ,你可以右键单击Windows PE工具命令提示符选择和进入计算机管理员模式。 在命令提示符打开后,你需要运行一些命令,将为你的WinPE 2.0磁盘创建必要的目录结构。在命令提示符下运行下面的命令: copype <arch> <destination>

<arch>参数是指你的处理器架构(x86 , amd64或ia64 ),<destination>参数是一个到本地目录的路径。下面是一个例子,运行此命令: copype x86 c:\winpe-2_0 <enter> 你会发现这将创建下列目录结构: \WinPE - 2_0 -包含引导加载( ETFSBoot.com )和一份已含有需要建立一个的WinPE 2.0磁盘所需要的基本文件的Windows镜像( winpe.wim )。

\WinPE - 2_0 \ISO-包含有创造WinPE 2.0启动盘的ISO磁盘映像所需要的必要文件。

\WinPE - 2_0 \mount-一个空文件夹,但你需要修改winpe.wim镜像文件时会使用到。在此示例中,你将不会使用到此文件夹。 如果你创建的目录结构和我一样,你只需要将winpe.wim文件复制到“c:\winpe-2_0\ISO\sources”目录里,并将它命名为boot.wim 。你可以使用下面的命令来完成:

copy c:\winpe\winpe.wim

c:\winpe-2_0\iso\sources\boot.wim /y 按下Enter键。现在,所有您需要做的就是创建ISO文件,您将用它来启动虚拟机。 要做到这一点,在Windows PE工具命令提示符下运行下面的命令: oscdimg -n -h -bc:\winpe-2_0\etfsboot.com c:\winpe-2_0\iso c:\winpe-2_0\winpe.iso 按下Enter键。这将转换boot.wim文件到winpe.iso文件,此文件可以引导一台机器到WinPE 2.0环境下 。 现在你所需要做的是复制winpe.iso文件到一个地方( NFS, VMFS ,等等),使你的ESX主机可以加载此ISO文件到虚拟机的虚拟光驱。一旦做到这一点,首先要创建一个带有虚拟磁盘的虚拟机,此虚拟磁盘用作系统卷(磁盘大小要仔细选择,因为之后你将不能改变它和维护此分区) 。将winpe.iso文件挂载到虚拟机上,以便它能够被引导到WinPE 2.0环境。启动虚拟机并引导到WinPE 2.0环境下。

用Diskpart.exe创建64KB的调整分区 虚拟机将启动到WinPE 2.0环境下的命令提示符。一旦你在命令提示符下,使用Diskpart.exe创建一个被调整过的分区。要做到这一点,键入以下命令: diskpart

select disk 0

create partition primary align=64 通过输入' exit ' 你现在可以退出diskpar。关闭虚拟机。卸载winpe.iso文件,取而代之的是一个ISO格式的操作系统( Windows Server 2003, Windows XP,等等) 。 像平常一样安装操作系统。当你到了可以创建新的分区这一步,选择使用现有的分区,而不是建立一个新的分区。格式化分区为NTFS格式 。 当你安装完操作系统和完成虚拟机配置,使用vCenter转换此虚拟机成为一个模板,并从此模板来部署每一个新的虚拟机。另外,如果没有vCenter,当你需要创建一个新的虚拟机时,你可以给新的虚拟机复制此虚拟磁盘。 现在,每个虚拟机包含没有额外工作数据,而且被调整过的系统卷。当你开始部署虚拟机,做好前期工作,以确保虚拟机的系统卷有最佳性能,这是非常值得努力的。