FAST 15 論文導(dǎo)讀(下): Atomic Update、RAIDShield 和 F2FS 等
來(lái)源:易賢網(wǎng) 閱讀:2535 次 日期:2015-04-09 14:34:12
溫馨提示:易賢網(wǎng)小編為您整理了“FAST 15 論文導(dǎo)讀(下): Atomic Update、RAIDShield 和 F2FS 等”,方便廣大網(wǎng)友查閱!

名單

Failure-Atomic Updates of Application Data in a Linux File System

本論文主要設(shè)計(jì)并實(shí)現(xiàn)了一種能保護(hù)應(yīng)用數(shù)據(jù)原子性的文件系統(tǒng),其通過(guò)擴(kuò)展 POSIX 接口來(lái)完成這個(gè)能力。其背景主要是傳統(tǒng)文件系統(tǒng)通常使用日志形式來(lái)保證自身元數(shù)據(jù)的正確性,來(lái)避免掉電或者系統(tǒng)崩潰后造成的文件系統(tǒng)異常,而應(yīng)用程序數(shù)據(jù)為了保證數(shù)據(jù)更新的原子性和正確性必須在應(yīng)用層同樣實(shí)現(xiàn)日志功能。

為了解決應(yīng)用層使用日志引起的 Double Write,目前硬件廠商比如 Fushion IO 提供的原子寫 API 或者使用 NVM 來(lái)保證持久性的內(nèi)存寫入來(lái)解決系統(tǒng)崩潰帶來(lái)的問(wèn)題。

本文的 AdvFS 完全不依賴特定硬件并且基于原生的內(nèi)核實(shí)現(xiàn)了支持原子更新且支持多文件的原子更新。在打開(kāi)一個(gè) AdvFS 的文件時(shí)指定 O_ATOMIC 來(lái)表示該文件需要使用原子更新能力,在打開(kāi)文件后會(huì)在 AdvFS 產(chǎn)生一個(gè) shadow file,其是用戶可見(jiàn)文件的 clone,其跟正常文件一樣指向數(shù)據(jù)塊,但是擁有自己的數(shù)據(jù)指針圖,在寫入文件時(shí)使用 COW(copy on write) 技術(shù)正常文件的數(shù)據(jù)指針圖更新到寫入到新的塊,在調(diào)用 msync 時(shí)會(huì)刪除原來(lái) clone 指針圖和相應(yīng)的數(shù)據(jù)塊,同時(shí)產(chǎn)生一個(gè)新的 clone。最后在關(guān)閉文件,會(huì)刪除該 clone。因此如果系統(tǒng)發(fā)生崩潰,在打開(kāi)該文件時(shí)會(huì)發(fā)現(xiàn)殘留的 clone 文件,可以恢復(fù)到之前的內(nèi)容來(lái)保證更新一致性。

如果更新多個(gè)文件時(shí),因?yàn)閱挝募褂?COW 的形式提供原子性,那么多文件其利用日志來(lái)記錄元數(shù)據(jù)操作,比如寫入后同步會(huì)對(duì)日志寫入所有相關(guān)的 clone 元數(shù)據(jù)操作,且不會(huì)寫入數(shù)據(jù)內(nèi)容,因此可以利用較少的日志空間大小得到同時(shí)能夠原子性更新多個(gè)文件的效果。

最后通過(guò) AuvFS 跟其他文件系統(tǒng)使用 Double Write 獲得的原子性更新做比較,在傳統(tǒng)的 B樹(shù)數(shù)據(jù)庫(kù)能獲得較大收益,對(duì)于 LevelDB 等 LSM 結(jié)構(gòu)的數(shù)據(jù)庫(kù)會(huì)造成性能下降,對(duì)于了解兩者實(shí)現(xiàn)的性能差異我們可以很容易理解。

RAIDShield: Characterizing, Monitoring, and Proactively Protecting Against Disk Failures

本論文旨在通過(guò)監(jiān)測(cè)物理盤的內(nèi)部統(tǒng)計(jì)數(shù)據(jù)的變化來(lái)進(jìn)行分析并判斷一個(gè) RAID 盤陣是否處于不健康狀態(tài)。眾所周知,RAID 通過(guò)冗余數(shù)據(jù)增加了數(shù)據(jù)的可用性和持久性,但是在運(yùn)行過(guò)程中的數(shù)據(jù)訪問(wèn)和修改會(huì)使得不同盤組迥異的數(shù)據(jù)可用結(jié)果和狀態(tài)。

本文提出了兩種監(jiān)測(cè)模式,一種是獨(dú)立盤的內(nèi)部數(shù)據(jù)如 Sector Error,Reallocated Sector 等,類似于設(shè)置一個(gè)閥值,當(dāng)錯(cuò)誤量超過(guò)一定數(shù)目時(shí)進(jìn)行報(bào)警。另一種是通過(guò)多個(gè)盤的聯(lián)合監(jiān)測(cè)并通過(guò)公式計(jì)算盤組的數(shù)據(jù)訪問(wèn)有效性來(lái)解決當(dāng)多個(gè)盤可能同時(shí)到達(dá)閥值而短時(shí)間無(wú)法更換大量盤的問(wèn)題。

該文對(duì)于分布式存儲(chǔ)提供了一定的借鑒意義,單個(gè)盤的錯(cuò)誤數(shù)據(jù)可以有效幫助管理員提前預(yù)警,多個(gè)盤的聯(lián)合監(jiān)測(cè)能提高集群應(yīng)對(duì)極端情況的應(yīng)對(duì)能力。

F2FS: A New File System for Flash Storage

F2FS 在文件系統(tǒng)屆應(yīng)該是小有名氣的了,作為以面向 SSD 優(yōu)化著稱的本地文件系統(tǒng),它在論文中介紹了其對(duì)于 Flash SSD 的特點(diǎn)與傳統(tǒng)文件系統(tǒng)實(shí)現(xiàn)的差異,然后橫向比較了與 Ext4(Update in Place)、Btrfs(Copy on Write) 和 NILFS2(LFS) 的性能差異。

從其對(duì)特性的論述中如 Flash SSD 友好的 on-disk 格式,在更新數(shù)據(jù)時(shí)減小對(duì)于元數(shù)據(jù)更新的損耗(減小隨機(jī)小 IO),用多個(gè) logging 流來(lái)提高并發(fā)能力,同時(shí)支持兩種寫日志方式(Append-only 和 Write in Hole)來(lái)解決高利用率時(shí)前者性能雪崩問(wèn)題,最后還有面向大量使用 fsync 程序如 SQLite 的 fsync 調(diào)用優(yōu)化。

總的而言,F(xiàn)2FS 采用了空間換時(shí)間的策略,在實(shí)現(xiàn)上對(duì)于潛在的大量隨機(jī) IO 等待大量使用 Lazy 的策略處理,同時(shí)因?yàn)椴捎?Lazy 的原因?qū)τ谠诟呃寐氏碌膲簻y(cè)可能造成 Cleaning 延時(shí)的問(wèn)題上,保留了 5% 的預(yù)留空間來(lái)避免潛在的雪崩情況。打個(gè)比喻,F(xiàn)2FS 把大多數(shù)傳統(tǒng)文件系統(tǒng)(或者 LFS)可能的隨機(jī)小 IO 都不會(huì)及時(shí)提交而是拖后合并,這些小 IO 實(shí)際上可能累積后在最后的低可用空間先造成雪崩,但是 F2FS 的預(yù)留空間好像是“救命稻草”一樣簡(jiǎn)單利落的扼殺了這種風(fēng)險(xiǎn),非常對(duì)本人的”胃口”:-)。

A Practical Implementation of Clustered Fault Tolerant Write Acceleration in a Virtualized Environment

這篇論文是希望在 VM 的 Host 端提供寫緩存來(lái)加速 VM IO,但是我們知道在 VM 存儲(chǔ)使用共享存儲(chǔ)方式時(shí)可以得到 Live Migration 這個(gè)使 VM 能夠具備移動(dòng)能力,避免單機(jī)故障。而如果在 Host 端加入緩存,無(wú)疑使得 Live Migration 無(wú)法使用。因此,本文嘗試在所有 Host 上建立一個(gè)寫緩存”集群”來(lái)解決這個(gè)問(wèn)題,使得每次寫在本地的緩存會(huì)同步發(fā)到另一個(gè) Host,這樣使得在 Host 掛掉后仍可以在其他機(jī)器啟動(dòng) VM。

老實(shí)說(shuō),類似架構(gòu)可在 Nutanix 的存儲(chǔ)設(shè)計(jì)中得到引用,但是為了提供寫緩存的高可用性而構(gòu)建這么一個(gè)復(fù)雜的 Host Side 寫緩存集群似乎不只增加了一點(diǎn)復(fù)雜性。

BetrFS: A Right-Optimized Write-Optimized File System

看完概要就發(fā)現(xiàn)這是個(gè)利用 BufferTree 來(lái)實(shí)現(xiàn)的本地文件系統(tǒng),采用的是 TokuDB 的 Ft-index。對(duì)于 Ft-index 有興趣的可以看看其本身的 paper,本文主要是做了將 Ft-index 遷移到內(nèi)核并對(duì)接 VFS 進(jìn)行了一番工作。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看技術(shù)文章
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)