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

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

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

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

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

一個通常的例子如下圖所示。基于intel架構(gòu)的系統(tǒng)是不對齊的,這是因為元數(shù)據(jù)(Metadata)是被BIOS所寫的。在一個對齊的系統(tǒng),64KB的寫操作會由單獨(dú)一個硬盤來服務(wù)。


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

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

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

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

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

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

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

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

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

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

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

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


<未完待續(xù)>

分享到

多易

相關(guān)推薦