Q: 什么是Partition Alignment(分区对齐)?
A: 这主要指客户机OS的分区需要和存储设备的块对齐。具体来说就是分区起始偏移(PSO, Partition Starting Offset)应该是4096的倍数。Windows 2008、Vista和Win7全新安装后,Partition Starting Offset是1048576,已经是4096的倍数,因此无需调整。但是Windows XP,2000和2003的Partition Starting Offset是32256,不是4096的倍数。(注意,如果Win2008/7/Vista是从XP/2000/2003版本升级而来,PSO是不会改变的,也会存在问题)

Q: 为什么要Partition Alignment?
A: 没能做到Partition Alignment会带来VM磁盘性能的下降,浪费处理能力,带来成本的上升。在Host平台负载不高的时候,这种性能负面影响可能还不明显,但是随着主机负载的增加,磁盘性能的损失就会被放大。因此从部署新的VM的一开始,就必须注意到这个问题。

Q: 如何判断已有虚机是否存在Partition misalignment的问题?
A: 通过系统信息可以知道。运行msinfo32命令或者从开始菜单进入Start → All Programs → Accessories → System Tools → System Information。
虚拟机分区对齐(Partition Alignment)之Q&A_第1张图片
或者也可以用NetApp提供的mbrscan工具来扫描,具体见下文描述。

Q: 对于一台新的VM,如何保证部署的时候不会引起Partition Misalignment问题?
A: 用模板部署新的VM的话,应该在安装VM模板机的时候,就修正问题。这样通过好的模板部署的VM就不会产生Partition Misalignment问题

Q: 创建新VM的时候,如何对齐分区?
可以用WinPE CD启动虚机,并用Diskpart工具创建分区并直接设定分区起始偏移。如下图所示:
虚拟机分区对齐(Partition Alignment)之Q&A_第2张图片
然后再在这个预创建的分区上安装操作系统。

Q: 如果我的VM已经存在,而且分区起始偏移不是4096的倍数,怎么改正呢?

A: NetApp提供了一个工具mbrtools,其中包括2个可执行文件,一个是mbrscan,用来扫描vmdk,看其是否符合分区对齐的要求。第二个是mbralign用来解决这个问题。

Q: 如何获取该工具?
A: 第1种方法是:ESX Host Uitility里面已经包含此工具。EHU是安装在ESX主机上的一个工具包,可以通过登录NetApp Now网站来下载到(需要Now帐号)。
第2种方法是在vCenter上安装VSC。然后在vSphere Client界面中就可以下载。(关于VSC,请参见拙文《 VSC 1.0 (netapp存储在vSphere vCenter 4上的插件)》
虚拟机分区对齐(Partition Alignment)之Q&A_第3张图片

或者你可以点这里下载


Q:  如何使用MBR Tools扫描vmdk?
A:
(1)首先把mbrtools.tar.gz上传到datastore上。(可以在vSphere Client里面直接upload到datastore上)
(2)然后通过ssh或者console连接到ESX主机,升级为root身份。
(3)找到上传的文件,移动到/root目录  # mv mbrtools.tar.gz /root
(4)转到/root   # cd /root
(5)解压缩   # tar xzvf mbrtools.tar.gz
(6)修改mbrscan和mbralign的属性为555
  # chmod 555 mbrscan
  # chmod 555 mbralign

转到要扫描的datastore的目录下。 # cd /vmfs/volumes//
(7)运行扫描程序
  # /root/mbrscan -flat.vmdk
snap0076
图中显示的就是一台没有对齐分区的Windows 2003


Q: 如何修复分区对齐问题?
A:
(1)删除VM所有的snapshot
(2)关闭VM
(3)运行mbralign命令
  # /root/mbralign -flat.vmdk
(4)你可能需要等上一段时间,这视vmdk的大小。可能需要几分钟到几十分钟。为了避免新建立的VM有同样的分区对齐问题,建议对在创建VM模板的时候,先进行分区对齐操作。
虚拟机分区对齐(Partition Alignment)之Q&A_第4张图片
* 记得datastore中必须有足够的空间,否则会出现这样的报错(点击看大图):
snap0077

datastore的分区对齐

最后,要补充的是,datastore本身也有分区对齐的问题。对于Netapp NFS datastroe来说,不需要datastore的Alignment,默认已经对齐了。对于NetApp iSCSI或FC SAN的LUN来说,创建LUN的时候选择VMware格式,则在LUN创建的时候就已经对齐了。对于其他品牌的存储,也需要做LUN的对齐。请参考这些硬件厂商的技术文档。