Lead Ahead

Best Practice for EMC R22 (part3)

上一篇 / 下一篇  2006-09-20 13:13:39 / 天气: 晴朗 / 心情: 高兴 / 个人分类:原创/翻译

DOIT博客A [D qY"fyo%D

3.主机文件系统影响

*J+S)x$x]Ek"A0

3T8QI)]Kj0在主机层次,通过指定最小最大的I/O request size,文件系统也影响了应用I/O的特性。

)L-a*gFk/v6U i1st0

-L3k.M+un(s h8~X-G0A.文件系统的缓冲和组合(coalesce

/]&c;Oq#pR*lRK*A/A0DOIT博客yyF#I2~R!GH

跟在存储系统上的cache相似的是,缓冲是文件系统提高性能的一种主要方式。DOIT博客}eZ R0r:l

DOIT博客2]hJL-`a8H+Pu*W

缓冲
RthRW6_V1^DJ0
在大部分的情况下,文件系统的缓冲应该最大化,因为这能减少存储系统的负载。然而,还是会有一些意外。DOIT博客` ak/HP'Yu/P#I2@B

x/k!]U.?a/IT0一般来说,应用自己来调配缓冲,能避免文件系统的缓冲或者在文件系统的缓冲之外工作。这是基于应用能更加有效的分配缓冲的假设之上。而且,通过避免文件系统的coalesce,应用更能控制I/O的响应时间。但是,正如在64位的服务器里RAM的容量将会提升到32GB或者更多,这也就有可能把这个文件系统都放在缓冲里面。这就能使读操作在缓冲下,性能会有非常显著的提升。(写操作应该使用写透(write-through)的方式来达到数据的持续性。)

M7\8~5xT,|0DOIT博客`Uv _b(HC

结合CoalescingDOIT博客K/j.P bC6`k
文件系统的coalesce能帮助我们从存储系统里获得更高的带宽。在大部分顺序访问的操作里面,最大邻近最大物理的文件系统设置来最大化文件系统的结合Coalescing.例如,这种处理方式可以和备份程序一起把64KB的写操作结合(coalesce)成一个完全stripe的写操作,这样在DOIT博客7i7Yb:N@`;yK
write cache
bypass的情况下,对于带校验的Raid会更加有效果。DOIT博客 D'mC/XF!h

1p2j5K;`.Ow0t(iv0B.最小化I/O的大小:文件系统的request size

4^&sXf[ J1j0DOIT博客(J)~(I!h#\wK M

文件系统通常都被配置成一个最小的范围大小,例如4KB8KB或者64KB,这是提供给阵列的最小的不可分割的请求。应用使用的I/O在比这个范围大小要小的时候,会导致很多不必要的数据迁移和/read-modify-write的情形出现。这也是考虑应用和文件系统文件的最佳设置的最好办法。(it is best to consult application and file system documentation for the optimal settings)而request size没有被文件系统限制的Raw partitions则没有受到这个约束。

W!KY?l0DOIT博客9p Q'B(ZEi"u-oQo

C.最大化的I/O大小DOIT博客~t@)X5s

lac [&Jl U(qS0如果想要快速的移动大量的数据,那么一个大的I/O64KB或更大)会更加有帮助。在整合coalescing)顺序的写操作成Raid Group整个的stripe的时候,阵列将会更加有效率,正如预读取大的顺序读操作一样。大的I/O对从基于主机的stipe获得更好的带宽而言也是很重要的,因为他们将会被基于srtipetoplogy打散成更小的大小。

&pq.kZ)F%n;e0DOIT博客RGs^-u3X4f i'@s

D.文件系统的fragmentationDOIT博客'TB"[,cL-r

5J c1CV@LQ0避免fragmentationdefragementation在一起,这是一个基础的原则。注意NTFS文件系统可能被分区成任何形式除了默认的范围大小,他们不能被大部分的工具所defragement:这个API(程序的接口)并不能允许这样做。执行一个文件级别的拷贝(到另一个LUN或者执行一个文件系统的备份和恢复)是defragement的一个有效的实现。

3zem#Sm`X{(Tw0

U&T7Y*[ t0

&H5Ol$A5lS0w l?1N7F0

;_"BQhAu5U0跨越磁盘的小I/O在一些主机的类型里显得更加重要,而我们接下来将会探讨为什么会导致这种状况。

&N%c1mmB)B0DOIT博客Z!E3Dyn4J&v

当以下情况发生的时候,跨越磁盘将会对响应时间有一个显而易见的影响:DOIT博客:e8{W+? J&s4jVb
a)
有大比例的block size大于16KB的随机I/O
hF;T"W.[F!i(J+}'R0b)Navisphere Analyzer
报告的硬盘的平均等候队列长度比4大的时候对齐4KB或者8KB边界的时候(例如ExchangeOracle),工作负载将会从对齐中获得一些优势。但因为I/O当中,小于6%(对于4KB)或者12%(对于8KB)的I/O都会造成跨盘操作(碰巧的是他们可能会以并行的方式来完成)。这种额外的收益可能很难在实践中注意到。但如果当一个特定的文件系统和/或应用鼓励使用对齐的地址空间并且位移(offset)被注明,EMC推荐使用操作系统的磁盘管理来调整分区。Navisphere LUN的绑定位移(offset)工具应该要小心的使用,因为它可能反而会影响分层的应用同步速度。

rY#O4g-XYE0

\ ?OL7I8]Z ~*m0Intel架构系统中的文件对齐DOIT博客'MC0_C jo}
Intel架构的系统,包括windows2000/windows2003,都会受到在LUN上元数据的位置的影响,这也会导致磁盘分区的不对齐。这是因为遗留的BIOS的代码问题,BIOS里面用的是磁柱,磁头和扇区地址来取代LBA地址。DOIT博客M H9\(Vg ]U

DOIT博客*c!x3a%]b

(这个问题一样影响了使用intel架构的linux操作系统,正如windowsNT2000,和2003这个问题也一样影响了运行在intel硬件上的VMWare系统)DOIT博客@Ll's5K#}/OgR Z

DOIT博客Xc+X3jv R

fdisk命令,正如windowsDisk Manager,把MBRMaster Boot Record)放在每一个SCDI设备上。MBA将会占用设备上的63个扇区。其余可访问的地址是紧接着这63个隐藏分区。这将会后续的数据结构跟CLARiiONRAIDstripe变得不对齐。

$_Jc K8|+Gi#h0DOIT博客)_7VJmmY[

linux系统上,这个隐藏扇区的多少取决于boot loader/或磁盘管理软件,但63个扇区是一个最常遇到的情况。对于VMware,位移(offset)是63

"mCF.\*LSz^0

{?~7N%\Jq,H-d0在任何情况下,这个结果都为确定的比例的I/O而导致不对齐。大的I/O是最受影响的。例如,假设使用CLARiiON默认的stripe element 64KB,所有的64KBI/O都会导致跨盘操作。对于那些比这个stripe element的小的I/O,会导致跨盘操作的I/O的比例,我们可以通过以下公式来计算:

[X6sInr{0

K"]*D2J'qhw&wN0Percentage of data crossing=(I/O size)/(stripe element size)DOIT博客wSw#R-Y"nj

7wXg$z8].n,`0这个结果会给你一个大致的概念,在不对齐的时候的开销状况。当cache慢慢被填充的时候,这种开销会变得更大。

4|5a4Q zm E0DOIT博客w*iu;O8k{|"r

 

Ud)m8@'M(n;d0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar