XFS在LVM上的RAID性能下降,RAW或非LVM时速度更快

我有一个奇怪的问题,我正在设置一个服务器。 这是一个文件共享types的网站,所以需要快速的IO和大量的容量。 OS是CentOS 6.4 64位

有问题的服务器是HP DL360p,18x驱动器托架中装有RAID50中的2TB SAS驱动器

另外还有一个HP StorageWorks SAS扩展托架,还有一个12x2TB的RAID50

RAID是使用服务器的BIOSconfiguration实用程序configuration的,使用的控制器相当不错,备有电池备份和2GB FWBC。

现在,我们原来把它们分别设置成单独的卷,但是由于我们软件的细节,单个大量的工作会更好。

所以,我设置了一个LVM卷,结合这两个卷,然后使用XFS格式化逻辑卷

问题是,由此产生的速度令人失望。 运行hdparm -tT可以达到300MB / s的最佳读取速度

所以我做了一些testing,得到这个:

两者都没有LVM,XFS:两个卷的读取速度都达到700MB / s左右

与LVM,但没有安装的卷:1000-1100MB /秒

LVM采用条纹模式,卷装未安装:1100-1300MB / s

所以不知何故,XFS似乎限制了速度……我在格式化和挂载时尝试了一些更高级的选项,比如-l内部,启用懒数,nobarrier,但是这没有任何改进。

我发现的唯一问题可能是一个问题,RAID卷的条带大小不匹配(一个设置为512KB,另一个设置为256KB),所以我将它们重新configuration为匹配,这将需要几个小时更多。 我还用su = 512k,sw = 28(sw = 28只是一个猜测,因为总共有28个活动硬盘,或者我应该为RAID卷设置为2)来格式化音量?

我试图消灭所有的东西,尝试ZFS,它似乎很有前途,但我认为configuration它将远远超出我的技能水平…

所以,如果有人有任何经验或build议,这将是非常感谢!

什么是您的应用程序的读/写吞吐量和IOPS要求? 存储性能并不总是关于arrays吞吐量或原始带宽。 连续读取/写入只是I / O活动的一部分。

一个更准确的testing将会是一个Bonnie ++或者iozone对安装的文件系统的运行……甚至运行你的应用程序并且测量真正的工作负载 。


如果我是你,我会转储内部和外部控制器,并合并到惠普智能arraysP822控制器 – 部分#615418-B21。

这将允许您在一个arrays中寻址内部磁盘和外部机箱。 P822还具有默认启用的智能arrays高级function集(SAAP) 。 此时,您可以使用正确的RAID级别(可能是RAID 1 + 0)正确雕刻arrays,并且可以将一个或多个全局热备份分配给设置。 控制器还将利用双path到您的外部存储。 您还可以安排内容和外部存储之间的条带化或镜像驱动器对。 很多的灵活性。

但是,此设置的最大优势在于所包含的HP SmartCache SSDcachingfunction 。 这与LSI的Cachecade类似。 有了一两个固态硬盘,您就可以将较低延迟固态硬盘上的热点数据与转盘进行比较。

这只是硬件方面,虽然…


对于XFS卷,特别是在惠普的齿轮,我不使用LVM( 有些人虽然 )。 使用HP控制器时,块设备表示是抽象的,所以我使用了一个非常基本的文件系统格式化string:

 mkfs.xfs -f -d agcount=32 -l size=128m,version=2 /dev/sdX` 

fstab有几个安装选项:

 UUID=4a0e1757 /data xfs noatime,logbufs=8,logbsize=256k 1 2 

但是在RHEL6中,还应该考虑一些调度和性能调整function。 主要的是调整框架。

 yum install tuned tuned-utils tuned-adm profile enterprise-storage 

这将设置I / O电梯,禁止写入障碍,并根据下面的时间表设置一些其他性能意识的选项。

在这里输入图像说明


这个设置上的ZFS不会帮助你。 您必须彻底转储Smart Array控制器并转至SAS HBA 丢失所有ZFS RAIDfunction,并使用一个大型块设备(这将受益于我上面提出的Smart Array P822)。 两者都需要某种forms的写入caching(ZIL),我不认为它解决了可pipe理性问题。 ZFS需要更多的预先计划