在LINUX環境中,哪種檔案系統儲存更安全?
[問題]
昨天我轉載的一文中,提到了對於ext3 reiserfs xfs jfs檔案系統不同讀寫效能的比較。見:http://zhangyu.blog.51cto.com/197148/137389
結論方面,我並不完全同意,但真沒精力做那樣系統的測試(很敬佩那位老外作者),從檔案系統的設計看,那篇文章的測試結果相對是比較符合我的判斷的。只是測試並未針對異常操作、崩潰保護方面,文中提到的也很少。
我以我個人看法,談談ext3 reiserfs xfs三種檔案系統的安全性(jfs瞭解不多),泛泛而談,應該有不當之處,歡迎提供不同的看法,以便改正。
ext3是多數LINUX上預設的檔案系統,也是從傳統UNIX檔案系統的結構上演變而來的,檔案系統設計得非常簡單明瞭,以不同的塊組進行資料、節點、塊組表的組織。優點是很簡單,尤其適用於頻繁刪除/增加檔案、同時每級檔案下的檔案總數不多的檔案系統。
因EXT3 B樹的概念用得較少,在目錄檢索方面很差,所以同一組目錄下不能放太多檔案,目錄結構也儘可能不能太複雜。
EXT3的日誌功能設計很差,經常會遇到實然斷電後,檔案系統損壞的情況,實際上ext3對日誌的檢驗、還原方面做得還很不夠。
EXT3採用的資料儲存方式相當表格化,格式化時就確定了固定數目的inode,並分配好了空間,當然會導致空間的大浪費,同時當檔案太多,達到上限時,檔案系統也無法負擔。
EXT3採用全索引的方式對資料儲存區域進行索引管理,所以,大量的檔案碎片在EXT3上並不會導致嚴重的資料風險,隨機定址會更快。當然,浪費也會大一些。
總得看,EXT3並不是一個很安全的檔案系統,如果從資料儲存安全的角度看,並不推薦。
REISERFS是一個演算法敏捷的檔案系統,無處不在的樹結構使得索引、遍歷的適應範圍極大,一個上幾千萬個檔案的檔案系統,通常也只需要約4級索引就可以到達。但因索引以整個檔案系統中所有的節點為單位組織(一顆樹),所以即使訪問一個檔案,複雜程式也不會很低。所以很容易理解的,MOUNT的時間會更長(讀取一個根目錄就需要從整個樹的根讀到葉,同時根目錄節點並不是索引B樹的根節點,也是普通的一個葉節點,這點和其他檔案系統很不相同),同時目錄節點有機地整合在整個節點樹裡,並以HASH為索引鍵值。
reiserfs的上述主要特徵決定了,它在處理少量檔案時的優勢並不明顯,反而會更慢,同時因複雜程度帶來更強的不穩定性。但在處理大量檔案時,它的穩定性也不會再下降多少,同時樹的特徵與目錄節點的特徵,遍歷目錄結構的效能也不會下降多少。所以特別適合大量檔案(郵件系統、大量檔案的網站伺服器)的使用環境。
另外,reiserfs也是一種日誌檔案系統,但日誌能力並不很強,日誌方面我分析得不多,只從結構方面看,比EXT3的好一點(更加結構化了)。
xfs本身是SGI用在IRIX上的一種檔案系統,設計結構感覺滴水不漏,隨處可見的分層定址機制(和REISERFS的設計可是大相徑庭),讓系統可以更快,更高效得處理指定檔案。同時,XFS在定址上大量運用位操作,這也使得處理大檔案時效率更高。
xfs在目錄結構組織方面比較類似於ext3,目錄也是以普通資料檔案的方式進行儲存與管理,這樣在應付大量檔案讀取時,索引效能稍差一些。
xfs檔案系統的日誌功能據其他資料講相對要強一些(本人未作分析),通常不容易崩潰。
從資料刪除與格式化角度看,XFS與REISERFS在刪除與格式化後,都有機會完整恢復(並不清除節點裡的關鍵資訊)。但EXT3恢復的難度就會大很多(清除節點)。
簡單的結論,XFS在檔案數目不是特別多的情況下是較可靠的。REISERFS在大量小檔案的檔案系統(超過百萬檔案,且多數檔案小於1MB)上是首選的。
本文轉自 張宇 51CTO部落格,原文連結:http://blog.51cto.com/zhangyu/137383,如需轉載請自行聯絡原作者
相關文章
- 在Linux系統環境下使用GFS檔案系統Linux
- 在Linux系統中儲存裝置的兩種表示方法(轉)Linux
- 在exadata環境下配置dbfs檔案系統
- linux環境下使用XFS檔案系統(轉)Linux
- 物件儲存 vs 檔案儲存 vs 塊儲存,選哪個?物件
- 04 磁碟儲存和檔案系統
- Virtual Fabrics在共享儲存環境中 提供管理靈活性
- 企業檔案安全儲存
- linux系統環境變數.bash_profile/bashrc檔案Linux變數
- 在Linux系統上部署test環境Linux
- docker檔案系統分層儲存原理Docker
- 大資料檔案儲存系統HDFS大資料
- 雲端儲存及其分散式檔案系統分散式
- 檔案系統儲存與oracle資料庫儲存對比Oracle資料庫
- 如何使用Tar命令在Linux系統中解壓各種檔案格式Linux
- 在Hadoop環境中,大資料儲存的技巧有哪些?Hadoop大資料
- 在linux系統中對檔案進行分割Linux
- 在Linux中,檔案系統概念是什麼?Linux
- 在Linux中,有哪些系統日誌檔案?Linux
- AIX儲存、LVM與檔案系統(一)AILVM
- 儲存系統實現-資料檔案格式
- Linux提供哪兩種操作環境?有何不同?Linux
- 把檔案系統的資料檔案遷移到ASM儲存ASM
- NfS網路共享檔案系統環境搭建NFS
- lustre檔案系統環境搭建及測試
- ubuntu系統環境配置檔案的區別Ubuntu
- Linux系統在儲存技術中的幾項應用(轉)Linux
- 作業系統——檔案的三種外存形式及檔案儲存空間的管理方法作業系統
- 哪個檔案系統最適合你的 Linux 系統?Linux
- Linux系統環境搭建Linux
- 塊儲存 檔案儲存 物件儲存物件
- 在Linux系統中如何刪除一個檔案?Linux
- 在Linux中,如何建立檔案系統的備份?Linux
- Blazor 在開發環境儲存機密(User Secrets)Blazor開發環境
- js中在將字串數字轉為數字時,使用哪種方式更安全JS字串
- [資料庫系統]儲存和檔案結構資料庫
- 【iOS資料儲存】iOS檔案系統介紹iOS
- Linux環境iSCSI儲存及多路徑功能配置Linux