文件系統(tǒng)的對齊

文件系統(tǒng)的不對齊會在以下兩個方面影響性能:

1.不對齊造成了跨硬盤的訪問:一個I/O跨越了兩個硬盤(正常來說是只會訪問到一個硬盤)

2.不對齊會讓大的沒有cache的寫操作,變得難以條帶對齊(strip-align)

第一個情形是更加容易碰到的。就算磁盤上的操作使用了cache的緩沖,也會對(性能)產(chǎn)生負面的影響,因為這會使cache的flushing變慢。隨機的讀操作(通過正常要求的磁盤訪問產(chǎn)生的),也會受到相應的影響,不管是直接的(等待兩個磁盤的響應以便返回數(shù)據(jù))還是間接的(使磁盤的操作比正常更加忙)。

一個通常的例子如下圖所示?;趇ntel架構的系統(tǒng)是不對齊的,這是因為元數(shù)據(jù)(Metadata)是被BIOS所寫的。在一個對齊的系統(tǒng),64KB的寫操作會由單獨一個硬盤來服務。


跨越磁盤的小I/O在一些主機的類型里顯得更加重要,而我們接下來將會探討為什么會導致這種狀況。

當以下情況發(fā)生的時候,跨越磁盤將會對響應時間有一個顯而易見的影響:

a)有大比例的block size大于16KB的隨機I/O

b)Navisphere Analyzer報告的硬盤的平均等候隊列長度比4大的時候?qū)R4KB或者8KB邊界的時候(例如Exchange和Oracle),工作負載將會從對齊中獲得一些優(yōu)勢。但因為I/O當中,小于6%(對于4KB)或者12%(對于8KB)的I/O都會造成跨盤操作(碰巧的是他們可能會以并行的方式來完成)。這種額外的收益可能很難在實踐中注意到。但如果當一個特定的文件系統(tǒng)和/或應用鼓勵使用對齊的地址空間并且位移(offset)被注明,EMC推薦使用操作系統(tǒng)的磁盤管理來調(diào)整分區(qū)。Navisphere LUN的綁定位移(offset)工具應該要小心的使用,因為它可能反而會影響分層的應用同步速度。

在intel架構系統(tǒng)中的文件對齊

intel架構的系統(tǒng),包括windows2000/windows2003,都會受到在LUN上元數(shù)據(jù)的位置的影響,這也會導致磁盤分區(qū)的不對齊。這是因為遺留的BIOS的代碼問題,BIOS里面用的是磁柱,磁頭和扇區(qū)地址來取代LBA地址。

(這個問題一樣影響了使用intel架構的linux操作系統(tǒng),正如windowsNT,2000,和2003。這個問題也一樣影響了運行在intel硬件上的VMWare系統(tǒng))

fdisk 命令,正如windows的Disk Manager,把MBR(Master Boot Record)放在每一個SCDI設備上。MBA將會占用設備上的63個扇區(qū)。其余可訪問的地址是緊接著這63個隱藏分區(qū)。這將會后續(xù)的數(shù)據(jù)結構跟CLARiiONRAID的stripe變得不對齊。

在linux系統(tǒng)上,這個隱藏扇區(qū)的多少取決于boot loader和/或磁盤管理軟件,但63個扇區(qū)是一個最常遇到的情況。對于VMware,位移(offset)是63。

在任何情況下,這個結果都為確定的比例的I/O而導致不對齊。大的I/O是最受影響的。例如,假設使用CLARiiON默認的stripe element 64KB,所有的64KB的I/O都會導致跨盤操作。對于那些比這個stripe element的小的I/O,會導致跨盤操作的I/O的比例,我們可以通過以下公式來計算:

Percentage of data crossing=(I/O size)/(stripe element size)

這個結果會給你一個大致的概念,在不對齊的時候的開銷狀況。當cache慢慢被填充的時候,這種開銷會變得更大。


<未完待續(xù)>

分享到

多易

相關推薦