天天看點

檔案系統 FAT/FAT32/NTFS/ufs/ext3/reiserfs介紹

檔案系統 FAT/FAT32/NTFS/ufs/ext3/reiserfs介紹

FAT16/FAT32

FAT(File Allocation Table)是“檔案配置設定表”的意思。顧名思義,就是用來記錄檔案所在位置的表格,它對于硬碟的使用是非常重要的,假若丢失檔案配置設定表,那麼硬碟上的資料就會因無法定位而不能使用了。

在推出FAT32檔案系統之前,通常PC機使用的檔案系統是FAT16。像基于MS-DOS,Win 95等系統都采用了FAT16檔案系統。在Win 9X下,FAT16支援的分區最大為2GB。我們知道計算機将資訊儲存在硬碟上稱為“簇”的區域内。使用的簇越小,儲存資訊的效率就越高。在FAT16的情況下,分區越大簇就相應的要增大,存儲效率就越低,勢必造成存儲空間的浪費。并且随着計算機硬體和應用的不斷提高,FAT16檔案系統已不能很好地适應系統的要求。在這種情況下,推出了增強的檔案系統FAT32。同FAT16相比,FAT32主要具有以下特點: 

1. 同FAT16相比FAT32最大的優點是可以支援的磁盤大小達到2TB(2047GB),但是不能支援小于512MB的分區。基于FAT32的Win 2000可以支援分區最大為32GB;而基于 FAT16的Win 2000支援的分區最大為4GB。 

2. 由于采用了更小的簇,FAT32檔案系統可以更有效率地儲存資訊。如兩個分區大小都為2GB,一個分區采用了FAT16檔案系統,另一個分區采用了FAT32檔案系統。采用FAT16的分區的簇大小為32KB,而FAT32分區的簇隻有4KB的大小。這樣FAT32就比FAT16的存儲效率要高很多,通常情況下可以提高15%。 

3. FAT32檔案系統可以重新定位根目錄和使用FAT的備份副本。另外FAT32分區的啟動記錄被包含在一個含有關鍵資料的結構中,減少了計算機系統崩潰的可能性。

NTFS

1. NTFS 支援檔案加密和分别管理功能(也就是著名的EFS加密格式),可為使用者提供更高層次的安全保證。 

2. NTFS 具有更好的磁盤壓縮性能,可進一步滿足小硬碟使用者的需要(讀取會慢一些)。 

3. NTFS 最大支援高達 2TB (1TB=1024GB)的大硬碟,而且它的性能不會随着磁盤容量的增大而降低。 

由此可見,NTFS 格式具有許多獨特的優點 

不過,呵呵,它也有一個缺點,那就是該磁盤檔案格式不能被除它自己之外的其他作業系統所識别(NT 4.0也不例外),這就對資料交流造成了一定的影響,也就不支援DOS作業系統了,不過還是值得支援。

UFS

ufs現在有freebsd和solaris在使用。建立 UFS 檔案系統時,磁盤片被分成若幹個柱面組。柱面組由一個或多個連續的磁盤柱面組成。柱面組又進一步分成若幹個可尋址的塊,以控制群組織柱面組中檔案的結構。在檔案系統中,每種類型的塊都具有特定的功能。UFS 檔案系統具有以下四種類型的塊。

塊類型   所存儲資訊的類型 
引導塊  在引導系統時使用的資訊 
超級塊  有關檔案系統的詳細資訊 
Inode  有關檔案的所有資訊 
存儲塊或資料塊  每個檔案的資料 

 UFS 檔案系統的位址鍊

典型的 UFS 檔案系統

UFS 檔案系統的最大大小約為 16 TB 的可用空間減去約 1% 的開銷。稀疏檔案可以具有 1 TB 的邏輯大小。但是,由于檔案系統開銷所緻,可以存儲在檔案中的實際資料量比 1 TB 大約小 1%。

UFS 檔案系統中每目錄的最大子目錄數為 32,767。此限制是預定義的,不能進行更改。

ext3檔案系統

Linux ext2/ext3檔案系統使用索引節點來記錄檔案資訊,作用像windows的檔案配置設定表。索引節點是一個結構,它包含了一個檔案的長度、建立及修改時間、權限、所屬關系、磁盤中的位置等資訊。一個檔案系統維護了一個索引節點的數組,每個檔案或目錄都與索引節點數組中的唯一一個元素對應。系統給每個索引節點配置設定了一個号碼,也就是該節點在數組中的索引号,稱為索引節點号。 

linux檔案系統将檔案索引節點号和檔案名同時儲存在目錄中。是以,目錄隻是将檔案的名稱和它的索引節點号結合在一起的一張表,目錄中每一對檔案名稱和索引節點号稱為一個連接配接。 對于一個檔案來說有唯一的索引節點号與之對應,對于一個索引節點号,卻可以有多個檔案名與之對應。是以,在磁盤上的同一個檔案可以通過不同的路徑去通路它。 

Ext3檔案系統是直接從Ext2檔案系統發展而來,目前ext3檔案系統已經非常穩定可靠。它完全相容ext2檔案系統。使用者可以平滑地過渡到一個日志功能健全的檔案系統中來。這實際上了也是ext3日志檔案系統初始設計的初衷。

Ext3日志檔案系統的特點 

1、高可用性 

系統使用了ext3檔案系統後,即使在非正常關機後,系統也不需要檢查檔案系統。當機發生後,恢複ext3檔案系統的時間隻要數十秒鐘。 

2、資料的完整性: 

ext3檔案系統能夠極大地提高檔案系統的完整性,避免了意外當機對檔案系統的破壞。在保證資料完整性方面,ext3檔案系統有2種模式可供選擇。其中之一就是“同時保持檔案系統及資料的一緻性”模式。采用這種方式,你永遠不再會看到由于非正常關機而存儲在磁盤上的垃圾檔案。 

3、檔案系統的速度: 

盡管使用ext3檔案系統時,有時在存儲資料時可能要多次寫資料,但是,從總體上看來,ext3比ext2的性能還要好一些。這是因為ext3的日志功能對磁盤的驅動器讀寫頭進行了優化。是以,檔案系統的讀寫性能較之Ext2檔案系統并來說,性能并沒有降低。 

4、資料轉換 

由ext2檔案系統轉換成ext3檔案系統非常容易,隻要簡單地鍵入兩條指令即可完成整個轉換過程,使用者不用花時間備份、恢複、格式化分區等。用一個ext3檔案系統提供的小工具tune2fs,它可以将ext2檔案系統輕松轉換為ext3日志檔案系統。另外,ext3檔案系統可以不經任何更改,而直接加載成為ext2檔案系統。 

5、多種日志模式 

Ext3有多種日志模式,一種工作模式是對所有的檔案資料及metadata(定義檔案系統中資料的資料,即資料的資料)進行日志記錄(data=journal模式);另一種工作模式則是隻對metadata記錄日志,而不對資料進行日志記錄,也即所謂data=ordered或者data=writeback模式。系統管理人員可以根據系統的實際工作要求,在系統的工作速度與檔案資料的一緻性之間作出選擇。 

實際使用Ext3檔案系統 

建立新的ext3檔案系統,例如要把磁盤上的hda8分區格式化ext3檔案系統,并将日志記錄在/dev/hda1分區,那麼操作過程如下: 

[root@server root]# mke2fs -j /dev/hda8 

mke2fs 1.24a (02-Sep-2001) 

Filesystem label= 

OS type: Linux 

Block size=1024 (log=0) 

.. .. .. 

Creating journal (8192 blocks): done 

Writing superblocks and filesystem accounting information: done 

This filesystem will be automatically checked every 30 mounts or 

180 days, whichever comes first. Use tune2fs -c or -i to override.

在建立新的檔案系統時,可以看到,ext3檔案系統執行自動檢測的時間為180天或每第31次被mount時,實際上這個參數可以根據需要随意調節。 

以下将新的檔案系統mount到主分區/data目錄下: 

[[email protected] root]# mount -t ext3 /dev/hda8 /data 

說明:以上将已格式化為ext3檔案系統的/dev/hda8分區加載到/data目錄下。 

ext3 基于ext2 的代碼,它的磁盤格式和 ext2 的相同;這意味着,一個幹淨卸裝的 ext3 檔案系統可以作為 ext2 檔案系統重新挂裝。Ext3檔案系統仍然能被加載成ext2檔案系統來使用,你可以把一個檔案系統在ext3和ext2自由切換。 

這時在ext2檔案系統上的ext3日志檔案仍然存在,隻是ext2不能認出日志而已

将ext2檔案系統轉換為ext3檔案系統 

将linux系統的檔案系統由ext2轉至ext3,有以下幾處優點:第一系統的可用性增強了,第二資料內建度提高,第三啟動速度提高了,第四ext2與ext3檔案系統之間互相轉換容易。 

以轉換檔案系統為例,将ext2檔案系統轉換為ext3檔案系統,指令如下: 

[[email protected] root]# tune2fs -j /dev/hda9 

tune2fs 1.24a (02-Sep-2001) 

Creating journal inode: done 

This filesystem will be automatically checked every 31 mounts or 

180 days, whichever comes first. Use tune2fs -c or -i to override.

這樣,原來的ext2檔案系統就轉換成了ext3檔案系統。注意将ext2檔案系統轉換為ext3檔案系統時,不必要将分區缷載下來轉換。 

轉換完成後,不要忘記将/etc/fstab檔案中所對應分區的檔案系統由原來的ext2更改為ext3。

ext3日志的存放位置 

可以将日志放置在另外一個儲存設備上,例如存放到分區/dev/hda8。例如要在/dev/hda8上建立一個ext3檔案系統,并将日志存放在外部裝置/dev/hda2上,則運作以下指令: 

[root @stationxx root]#mke2fs -J device=/dev/hda8 /dev/hda2 

ext3檔案系統修複

新的e2fsprogs中的e2fsck支援ext3檔案系統。當一個ext3檔案系統被破壞時,先解除安裝該裝置,在用 

e2fsck修複: 

[root @stationxx root] # umount /dev/hda8 

[root @stationxx root] #e2fsck -fy /dev/hda8 

總而言之,ext3日志檔案系統是目前linux系統由ext2檔案系統過度到日志檔案系統最為簡單的一種選擇,實作方式也最為簡潔。由于是直接從ext2檔案系統發展而來,系統由ext2檔案系統過渡到ext3日志檔案系統更新過程平滑,可以最大限度地保證系統資料的安全性。目前linux系統要使用日志檔案系統,最保險的方式就是選擇ext3檔案系統。

ReiserFS檔案系統

  ReiserFS是一種新型的檔案系統,它通過一種與衆不同的方式--完全平衡樹結構來容納資料,包括檔案資料,檔案名以及日志支援。ReiserFS還以支援海量磁盤和磁盤陣列,并能在上面繼續保很快的搜尋速度和很高的效率。

  

ReiserFS的特點(與ext2的對比):

  ReiserFS相對于Linux上傳統的檔案系統--ext2有很多優點,在下面一一介紹。

  搜尋方式

  ReiserFS是基于平衡樹(STree)的檔案系統結構,尤其對于大量檔案的巨型檔案系統,如伺服器上的檔案系統,搜尋速度要比ext2快;ext2使用局部的二分查找法,綜合性能比不上ReiserFS。

  在Reiser4中還運用了檔案即是目錄的設計來管理meta-data,并且運用了Hans Reiser自己發明的Dancing B-tree,效率提升非常明顯。

  空間配置設定和利用情況

  ReiserFS裡的目錄是完全動态配置設定的,是以不存在ext2中常見的無法回收巨型目錄占用的磁盤空間的情況。ReiserFS裡小檔案(< 4K)可以直接存儲進樹,小檔案讀取和寫入的速度更快,樹内節點是按位元組對齊的,小的檔案可共享同一個硬碟塊,節約大量空間。Ext2使用固定大小的塊配置設定政策,也就是說,不到4K的小檔案也要占據4K的空間,導緻的空間浪費比較嚴重。

  先進的日志機制

  ReiserFS有先進的日志(Journaling/logging)機制,在系統意外崩潰的時候,未完成的檔案操作不會影響到整個檔案系統結構的完整性。 ext2雖然健壯性很強,但一旦檔案系統被不正常地斷開,在下一次啟動時它将不得不進行漫長的檢查系統資料結構的完整性的過程,這是為了防止資料丢失而必需的操作。對于較大型的伺服器檔案系統,這種"檔案系統檢查"可能要持續好幾個小時,在很多場合下這樣長的時間是無法接受的。解決這個問題的一種技術"日志檔案系統"。在日志的幫助下,每個對資料結構的改變都被記錄下來,日志在機制保證了在每個實際資料修改之前,相應的日志已經寫入硬碟。正因為如此,在系統突然崩潰時,在下次啟動幾秒鐘後就能恢複成一個完整的系統,系統也就能很快的使用了。

  在ext2的更新版本ext3中也運用了journaling機制。

  支援海量磁盤和優秀的綜合性能

  ReiserFS是一個相當現代化的檔案系統,相比之下,ext2雖然性能已經很好了,但其設計還隻是20世紀80年代的水準。ReiserFS的出現,使Linux擁有了像Irix/AIX那樣的高檔商用Unix才有的進階檔案系統。ReiserFS可輕松管理上百G的檔案系統,在企業級應用中有其用武之地,由于它的高效存儲和快速小檔案I/O特點,它在桌面系統上也表現出色:啟動X視窗系統的時間ReiserFS比ext2少1/3。

  3.缺點

  出現異常斷電的時候,會出現大量的未寫入完全的資料。ReiserFS會在恢複的時候進行rebuild-tree。而這個過程是非常慢的。在ReiserFS的更新版本Reiser4中有所改觀。

繼續閱讀