WAFL 最長(zhǎng)每10 秒就會(huì)生成一個(gè)內(nèi)部快照,成為一致性檢查點(diǎn),所以在磁盤(pán)上會(huì)有一個(gè)完全具有一致性的文件系統(tǒng)版本,當(dāng)filer 啟動(dòng),WAFL 總是是用在磁盤(pán)上最新的檢查點(diǎn),所以Filer 避免了費(fèi)時(shí)的文件系統(tǒng)校驗(yàn),F(xiàn)ile system check, 使得即使意外掉電或者系統(tǒng)故障時(shí),也不必進(jìn)行file system check。 Filer 只需要2 分鐘的硬件自檢就可以重新完成啟動(dòng)。

    Filer 使用電池支持的不掉電RAM (NVRAM),避免丟失任何發(fā)生在檢查點(diǎn)后的NFS/CIFS請(qǐng)求,正常關(guān)機(jī)時(shí),F(xiàn)iler 關(guān)閉NFS/CIFS 服務(wù),將所有緩沖在NVRAM 的請(qǐng)求刷新到磁盤(pán)后關(guān)閉NVRAM。當(dāng)filer 故障后重啟動(dòng),它將replay 所有保存在NVRAM 中的沒(méi)到磁盤(pán)的NFS/CIFS請(qǐng)求。

    使用NVRAM 保存沒(méi)有commit 到磁盤(pán)的請(qǐng)求,與一些UNIX 使用NVRAM 作為disk cache有很大的區(qū)別。當(dāng)在磁盤(pán)層面上使用NVRAM ,其中可能包含影響一致性的重要數(shù)據(jù),如果NVRAM 出問(wèn)題,文件系統(tǒng)會(huì)不一致,即使使用fsck 也無(wú)法恢復(fù)。

    WAFL 還使用NVRAM 作為文件系統(tǒng)日志journal,而不是需要變化的磁盤(pán)塊的緩存(Disk Cache),所以WAFL 極為有效地利用了NVRAM 的空間。例如,一個(gè)請(qǐng)求,讓文件系統(tǒng)生成一個(gè)新文件,可以用幾百個(gè)字節(jié)信息表明,而磁盤(pán)上卻需要改變十幾塊的信息。由于WAFL 使用NVRAM 保存操作命令日志,而不是這些命令的結(jié)果,NVRAM 可以保存幾千個(gè)操作的日志。

    15.4.3.6 Filer 的RAID

    Filer 使用了一種RAID 4 設(shè)計(jì)來(lái)保護(hù)數(shù)據(jù)避免受磁盤(pán)故障的破壞。然而與一般的RAID4 和 RAID 5 實(shí)現(xiàn)不同,一般的RAID 實(shí)現(xiàn)結(jié)構(gòu)沒(méi)有考慮文件系統(tǒng)的結(jié)構(gòu)和活動(dòng)方式。

    WAFL 的 RAID 4 實(shí)現(xiàn),是與文件系統(tǒng)的設(shè)計(jì)緊密優(yōu)化的。 通過(guò)將文件系統(tǒng)和RAID 層結(jié)合考慮, NetApp. RAID 的設(shè)計(jì)提供了所有RAID 校驗(yàn)保護(hù)的好處,克服了常規(guī)的RAID 5帶來(lái)的性能損失。另外, WAFL 的 RAID 4 設(shè)計(jì)不像RAID 5 那樣將數(shù)據(jù)和校驗(yàn)數(shù)據(jù)交織到每個(gè)盤(pán),整個(gè)系統(tǒng)可以在有RAID 的時(shí)候仍然可以迅速簡(jiǎn)便地?cái)U(kuò)充。

    通過(guò)RAID 4, 如果一個(gè)磁盤(pán)有損壞,利用RAID 組里的校驗(yàn)盤(pán)可以重新計(jì)算出損壞磁盤(pán)上的數(shù)據(jù),其 block 映射到磁盤(pán)上的新的位置。如果整個(gè)磁盤(pán)損壞,校驗(yàn)盤(pán)也可以保護(hù)數(shù)據(jù)不丟失,當(dāng)故障盤(pán)重新替換,所有內(nèi)容通過(guò)校驗(yàn)盤(pán)自動(dòng)重計(jì)算。

    RAID 4 陣列使用一個(gè)磁盤(pán)專用于校驗(yàn),其余用于數(shù)據(jù)。每個(gè)磁盤(pán)由4KB 的 block 組成。一個(gè)條帶,stripe,由每個(gè)數(shù)據(jù)磁盤(pán)的一個(gè)block 和校驗(yàn)盤(pán)的一個(gè)block 組成。

    最常用的RAID 級(jí)別有0,1,3,5,RAID0 是劃分為條帶,由于沒(méi)有校驗(yàn)區(qū),所以無(wú)容余糾錯(cuò)能力。RAID1 是簡(jiǎn)單地鏡像,所有數(shù)據(jù)復(fù)制在另一粒盤(pán)上,RAID 1 很安全,但是需要兩倍的磁盤(pán)容量。RAID 3 類似 RAID 4, 專門(mén)一個(gè)盤(pán)用于校驗(yàn),但是RAID 3 的條帶太小,一個(gè)讀寫(xiě)操作就可能跨陣列內(nèi)所有的磁盤(pán), RAID 3 適合單個(gè)大文件很高的速率要求,例如超級(jí)計(jì)算,和圖像處理,但對(duì)于多用戶應(yīng)用產(chǎn)生的不相關(guān)的讀寫(xiě)表現(xiàn)很差。而RAID 4 改進(jìn)了這一點(diǎn)。

    RAID 5 類似 RAID 4,但是在所有磁盤(pán)中循環(huán)安排數(shù)據(jù)區(qū)和校驗(yàn)區(qū),第一個(gè)條帶的校驗(yàn)區(qū)在第一塊盤(pán),第二個(gè)條帶的校驗(yàn)在第二個(gè)盤(pán),等等。主要的優(yōu)點(diǎn)是防止校驗(yàn)盤(pán)成為瓶頸。缺點(diǎn)是在RAID 5 array 中增加一個(gè)盤(pán)很不實(shí)際,擴(kuò)容時(shí)需要添加一個(gè)新陣列。例如,如果在RAID 5 實(shí)施時(shí)每個(gè)陣列使用7 個(gè)disk,通常擴(kuò)容時(shí)每次增加7 個(gè)盤(pán)。

    大多數(shù)用于UNIX 和Windows 環(huán)境的外設(shè)避免使用RAID 4,因?yàn)槭褂猛ㄓ玫奈募到y(tǒng),校驗(yàn)盤(pán)會(huì)成為瓶頸。另一方面,WAFL file system, 利用其隨意寫(xiě)的布局寫(xiě)磁盤(pán),使用RAID4 的磁盤(pán)卻十分高效。

    以UNIX 的文件系統(tǒng)為例說(shuō)明WAFL 如何與通用的文件系統(tǒng)不同。通常的UNIX 使用FFS(the Berkeley Fast File System) ,該文件系統(tǒng)的設(shè)計(jì)針對(duì)一次寫(xiě)一個(gè)文件進(jìn)行優(yōu)化,所以不同文件的塊寫(xiě)到磁盤(pán)上很分散的位置。FFS 在陣列里寫(xiě)入3 個(gè)不相關(guān)的文件時(shí)的塊分配的位置,每個(gè)數(shù)據(jù)盤(pán)寫(xiě)只有2 次,而校驗(yàn)盤(pán)卻要寫(xiě)6 次。更致命的是,校驗(yàn)位的寫(xiě)十分分散,導(dǎo)致很長(zhǎng)的尋道時(shí)間。

    這是由于 Berkeley FFS 不知道下層的RAID 4 的布局,往往會(huì)生成在數(shù)據(jù)盤(pán)上分散的磁盤(pán)寫(xiě)請(qǐng)求,導(dǎo)致校驗(yàn)盤(pán)過(guò)長(zhǎng)的尋道時(shí)間。WAFL 的寫(xiě)方式被設(shè)計(jì)成最小化校驗(yàn)盤(pán)的尋道時(shí)間。WAFL 總是把寫(xiě)相鄰條帶的block,減少校驗(yàn)盤(pán)的尋道時(shí)間。WAFL 還盡可能地寫(xiě)同一條帶的多個(gè)塊,進(jìn)一步減少校驗(yàn)盤(pán)的流量。

    15.4.3.7 Appliance 方式的優(yōu)點(diǎn)

    通過(guò)Appliance 方式的設(shè)計(jì),以網(wǎng)絡(luò)為服務(wù)器提供數(shù)據(jù),使得NetApp 可以提供一種傳統(tǒng)的存儲(chǔ)方式,以及基于UNIX 和NT 的系統(tǒng)無(wú)以比擬的存儲(chǔ)管理


    這些特點(diǎn),以及Appliance方式帶來(lái)的高性能和高可用性,使得Filer成為十分易用且性價(jià)比很高的產(chǎn)品。

分享到

多易

相關(guān)推薦