shell 编程 云计算 Firefox nginx Android centos Python php Windows 微软 开源 apache linux wordpress mysql java Ubuntu google 程序员

介绍一些常用的文件系统与数据资料

 用戶在硬件存儲設備中執行的文件建立、寫入、讀取、修改、轉存與控制等操作都是依靠文件系統來完成的。文件系統的作用是合理規劃硬盤,以保證用戶正常的使用需求。Linux系統支持數十種的文件系統,而最常見的文件系統如下所示。

 Ext3:是一款日誌文件系統,能夠在系統異常宕機時避免文件系統資料丟失,並能自動修復數據的不一致與錯誤。然而,當硬盤容量較大時,所需的修復時間也會很長,而且也不能百分之百地保證資料不會丟失。它會把整個磁盤的每個寫入動作的細節都預先記錄下來,以便在發生異常宕機後能回溯追蹤到被中斷的部分,然後嘗試進行修復。

 Ext4:Ext3的改進版本,作為RHEL 6系統中的默認文件管理系統,它支持的存儲容量高達1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4文件系統能夠批量分配block塊,從而極大地提高了讀寫效率。

 XFS:是一種高性能的日誌文件系統,而且是RHEL 7中默認的文件管理系統,它的優勢在發生意外宕機後尤其明顯,即可以快速地恢復可能被破壞的文件,而且強大的日誌功能只用花費極低的計算和存儲性能。並且它最大可支持的存儲容量為18EB,這幾乎滿足了所有需求。

 RHEL 7系統中一個比較大的變化就是使用了XFS作為文件系統,這不同於RHEL 6使用的Ext4。從紅帽公司官方發布的說明來看,這確實是一個不小的進步,但是劉遄老師在實測中發現並不完全屬實。因為單純就測試一款文件系統的“讀取”性能來說,到底要讀取多少個文件,每個文件的大小是多少,讀取文件時的CPU、內存等系統資源的占用率如何,以及不同的硬件配置是否會有不同的影響,因此在充分考慮到這些不確定因素後,實在不敢直接照抄紅帽官方的介紹。我個人認為XFS雖然在性能方面比Ext4有所提升,但絕不是壓倒性的,因此XFS文件系統最卓越的亮點應該當屬可支持高達18EB的存儲容量吧。

 就像拿到了一張未裁切的完整紙張那樣,我們首先要進行裁切以方便使用,然後在裁切後的紙張上畫格以便能書寫工整。在拿到了一塊新的硬盤存儲設備後,也需要先分區,然後再格式化文件系統,最後才能掛載並正常使用。硬盤的分區操作取決於您的需求和硬盤大小;您也可以選擇不進行分區,但是必須對硬盤進行格式化處理。接下來劉遄老師再向大家簡單地科普一下硬盤在格式化後發生的事情。再次強調,不用刻意去記住,只要能看懂就行了。

 日常在硬盤需要保存的數據實在太多了,因此Linux系統中有一個名為super block的“硬盤地圖”。Linux並不是把文件內容直接寫入到這個“硬盤地圖”裏面,而是在裏面記錄著整個文件系統的信息。因為如果把所有的文件內容都寫入到這裏面,它的體積將變得非常大,而且文件內容的查詢與寫入速度也會變得很慢。Linux只是把每個文件的權限與屬性記錄在inode中,而且每個文件占用一個獨立的inode表格,該表格的大小默認為128字節

延伸阅读

评论