3.主機(jī)文件系統(tǒng)影響
在主機(jī)層次,通過(guò)指定最小最大的I/O request size,文件系統(tǒng)也影響了應(yīng)用I/O的特性。
A.文件系統(tǒng)的緩沖和組合(coalesce)
跟在存儲(chǔ)系統(tǒng)上的cache相似的是,緩沖是文件系統(tǒng)提高性能的一種主要方式。
緩沖
在大部分的情況下,文件系統(tǒng)的緩沖應(yīng)該最大化,因?yàn)檫@能減少存儲(chǔ)系統(tǒng)的負(fù)載。然而,還是會(huì)有一些意外。
一般來(lái)說(shuō),應(yīng)用自己來(lái)調(diào)配緩沖,能避免文件系統(tǒng)的緩沖或者在文件系統(tǒng)的緩沖之外工作。這是基于應(yīng)用能更加有效的分配緩沖的假設(shè)之上。而且,通過(guò)避免文件系統(tǒng)的coalesce,應(yīng)用更能控制I/O的響應(yīng)時(shí)間。但是,正如在64位的服務(wù)器里RAM的容量將會(huì)提升到32GB或者更多,這也就有可能把這個(gè)文件系統(tǒng)都放在緩沖里面。這就能使讀操作在緩沖下,性能會(huì)有非常顯著的提升。(寫(xiě)操作應(yīng)該使用寫(xiě)透(write-through)的方式來(lái)達(dá)到數(shù)據(jù)的持續(xù)性。)
結(jié)合Coalescing
文件系統(tǒng)的coalesce能幫助我們從存儲(chǔ)系統(tǒng)里獲得更高的帶寬。在大部分順序訪問(wèn)的操作里面,用最大鄰近和最大物理的文件系統(tǒng)設(shè)置來(lái)最大?文件系統(tǒng)的coalescing.例如,這種處理方式可以和備份程序一起把64KB的寫(xiě)操作結(jié)合(coalesce)成一個(gè)完全stripe的寫(xiě)操作,這樣在write cache被bypass的情況下,對(duì)于帶校驗(yàn)的Raid會(huì)更加有效果。
B.最小化I/O的大?。何募到y(tǒng)的request size
文件系統(tǒng)通常都被配置成一個(gè)最小的范圍大小,例如4KB,8KB或者64KB,這是提供給陣列的最小的不可分割的請(qǐng)求。應(yīng)用使用的I/O在比這個(gè)范圍大小要小的時(shí)候,會(huì)導(dǎo)致很多不必要的數(shù)據(jù)遷移和/或read-modify-write的情形出現(xiàn)。這也是考慮應(yīng)用和文件系統(tǒng)文件的最佳設(shè)置的最好辦法。(it is best to consult application and file system documentation for the optimal settings)而request size沒(méi)有被文件系統(tǒng)限制的Raw partitions,則沒(méi)有受到這個(gè)約束。
C.最大化的I/O大小
如果想要快速的移動(dòng)大量的數(shù)據(jù),那么一個(gè)大的I/O(64KB或更大)會(huì)更加有幫助。在整合(coalescing)順序的寫(xiě)操作成Raid Group整個(gè)的stripe的時(shí)候,陣列將會(huì)更加有效率,正如預(yù)讀取大的順序讀操作一樣。大的I/O對(duì)從基于主機(jī)的stipe獲得更好的帶寬而言也是很重要的,因?yàn)樗麄儗?huì)被基于srtipe的toplogy打散成更小的大小。
D.文件系統(tǒng)的fragmentation
避免fragmentation和defragementation在一起,這是一個(gè)基礎(chǔ)的原則。注意NTFS文件系統(tǒng)可能被分區(qū)成任何形式除了默認(rèn)的范圍大小,他們不能被大部分的工具所defragement:這個(gè)API(程序的接口)并不能允許這樣做。執(zhí)行一個(gè)文件級(jí)別的拷貝 (到另一個(gè)LUN或者執(zhí)行一個(gè)文件系統(tǒng)的備份和恢復(fù))是defragement的一個(gè)有效的實(shí)現(xiàn)。
<未完待續(xù)>