一種新型FLASH文件系統UBI/UBIFS—-很不錯的開源項目

http://www.cqumzh.cn/topic_show.php?tid=507319

 

UBIFS:
由IBM、nokia工程師Thomas Gleixner,Artem Bityutskiy等人於2006年發起,致力於開發性能卓越、擴展性高的FLASH專用文件系統,以解決當前嵌入式環境下以FLASH作爲MTD設備使用時的技術瓶頸,

開發背景:
FLASH特性:
FLASH是一類電可擦出可編程存儲體,在使用方式上與硬磁盤最大不同是:
faq/general.html
What are the differences between flash devices and hard drives?

FLASH文件系統所必須的關鍵技術:
1. 由於FLASH的“先擦除後寫”的特性決定,必須(或者說所被公認爲)採用異地更新策略(out-of-place update)。相關問題討論可參考:
http://www.linux-mtd.infradead.org 文檔 A Brief Introduction to the Design of UBIFS。

2. 採用異地更新策略就必須(或者說所被公認爲)採用日誌文件系統來管理。

3. 採用日誌文件系統就必須(或者說所被公認爲)實現垃圾回收(garbage collection)

4. 由於FLASH的物理擦除塊(Physical Erase Block)只有有限次有效擦除,所以必須 (或者說所被公認爲)採用“負載平衡”(我比較喜歡翻譯爲“損益均衡”——一個經濟學術語)(Wear-Leveling)技術,即保證上的(幾乎)所有PEB的擦除次數趨向於均衡化,從而避免小部分PEB大大先於其他PEB而”壞“掉。

當前嵌入式FLASH解決方案多采用:
1.  無文件系統直接使用FLASH:缺點很明顯
2. 採用傳統文件系統,如ext2,ext3, FAT16/32, dos,Cramfs 等:這些文件系統本來是爲傳統的磁盤體開發的,他們無法高效的管理以FLASH作爲介質的文件系統,特別是在FLASH的使用壽命上。於是出現了第3中方案。
3. 採用FTL/NFTL(flash 轉換層/nand flash轉換層)+ 傳統文件系統:FTL的使用就是針對FLASH的特有屬性,通過硬件的方式來實現日誌管理、損益均衡等技術。但實踐證明,由於各方面因素導致本方案有一定的侷限性。
4. FLASH專用文件系統,如JFFS1/2,YAFFS等,他們從一定程度上緩解了flash使用上的技術瓶頸。但也仍然存在諸多問題:如內存消耗大,對FLASH容量、文件系統大小、內容、訪問模式等的線性依賴,損益均衡能力差活過渡損益。隨作FLASH容量逐漸暴漲(我見到的資料已經有64GFLASH已經實用化),JFFS,YAFFS幾乎無法管理如此大的FLASH——雖然JFFS目前還在改進中,但前途不看好,一個很好的例子JFFS的主要開發者大多倒向了UBIFS。:)
爲什麼要開發UBI/UBIFS:
參考
http://www.linux-mtd.infradead.org/faq/ubifs.html

UBI:一種類似於LVM的邏輯卷管理層。主要實現損益均衡,邏輯擦除塊、卷管理,壞塊管理等。
UBIFS:基於UBI的FLASH日誌文件系統。
http://www.linux-mtd.infradead.org/faq/ubifs.html
UBIdocumentation section
UBIFSdocumentation section
中有詳細闡訴。

UBI/UBIFS現狀:
2007年底08年初,已經發布了linux-2.6.x的可運行的版本。但目前仍在活躍的開發中。

相關開發社區:
Send linux-mtd mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.infradead.org/mailman/listinfo/linux-mtd
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

郵件列表:
http://lists.infradead.org/pipermail/linux-mtd/

GIT站點(源碼下載、版本管理)
http://git.infradead.org/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章