linux ext3是什么
在Linux中,ext3全稱“Third extended filesystem”,中文意思為“第三代擴(kuò)展文件系統(tǒng)”,是一個(gè)日志文件系統(tǒng);它最大支持的容量為32TB,單個(gè)文件最大限制為16TB,支持32000個(gè)子目錄。ext3文件系統(tǒng)能夠極大地提高文件系統(tǒng)的完整性,避免了意外宕機(jī)對(duì)文件系統(tǒng)的破壞。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux ext3文件
EXT3是第三代擴(kuò)展文件系統(tǒng)(英語(yǔ):Third extended filesystem,縮寫(xiě)為ext3),是一個(gè)日志文件系統(tǒng),常用于Linux操作系統(tǒng)。單個(gè)文件最大限制16TB,該文件系統(tǒng)最大支持32TB的容量。
它是很多Linux發(fā)行版的默認(rèn)文件系統(tǒng)。Stephen Tweedie在1999年2月的內(nèi)核郵件列表中,最早顯示了他使用擴(kuò)展的ext2,該文件系統(tǒng)從2.4.15版本的內(nèi)核開(kāi)始,合并到內(nèi)核主線中。
EXT3日志文件系統(tǒng)的特點(diǎn)
1、高可用性
系統(tǒng)使用了ext3文件系統(tǒng)后,即使在非正常關(guān)機(jī)后,系統(tǒng)也不需要檢查文件系統(tǒng)。宕機(jī)發(fā)生后,恢復(fù)ext3文件系統(tǒng)的時(shí)間只要數(shù)十秒鐘。
2、數(shù)據(jù)的完整性
ext3文件系統(tǒng)能夠極大地提高文件系統(tǒng)的完整性,避免了意外宕機(jī)對(duì)文件系統(tǒng)的破壞。在保證數(shù)據(jù)完整性方面,ext3文件系統(tǒng)有2種模式可供選擇。其中之一就是“同時(shí)保持文件系統(tǒng)及數(shù)據(jù)的一致性”模式。采用這種方式,你永遠(yuǎn)不再會(huì)看到由于非正常關(guān)機(jī)而存儲(chǔ)在磁盤(pán)上的垃圾文件。
3、文件系統(tǒng)的速度
盡管使用ext3文件系統(tǒng)時(shí),有時(shí)在存儲(chǔ)數(shù)據(jù)時(shí)可能要多次寫(xiě)數(shù)據(jù),但是,從總體上看來(lái),ext3比ext2的性能還要好一些。這是因?yàn)閑xt3的日志功能對(duì)磁盤(pán)的驅(qū)動(dòng)器讀寫(xiě)頭進(jìn)行了優(yōu)化。所以,文件系統(tǒng)的讀寫(xiě)性能較之Ext2文件系統(tǒng)并來(lái)說(shuō),性能并沒(méi)有降低。
4、數(shù)據(jù)轉(zhuǎn)換
由ext2文件系統(tǒng)轉(zhuǎn)換成ext3文件系統(tǒng)非常容易,只要簡(jiǎn)單地鍵入兩條命令即可完成整個(gè)轉(zhuǎn)換過(guò)程,用戶不用花時(shí)間備份、恢復(fù)、格式化分區(qū)等。用一個(gè)ext3文件系統(tǒng)提供的小工具tune2fs,它可以將ext2文件系統(tǒng)輕松轉(zhuǎn)換為ext3日志文件系統(tǒng)。另外,ext3文件系統(tǒng)可以不經(jīng)任何更改,而直接加載成為ext2文件系統(tǒng)。
5、多種日志模式
Ext3有多種日志模式,一種工作模式是對(duì)所有的文件數(shù)據(jù)及metadata(定義文件系統(tǒng)中數(shù)據(jù)的數(shù)據(jù),即數(shù)據(jù)的數(shù)據(jù))進(jìn)行日志記錄(data=journal模式);另一種工作模式則是只對(duì)metadata記錄日志,而不對(duì)數(shù)據(jù)進(jìn)行日志記錄,也即所謂data=ordered或data=writeback模式。系統(tǒng)管理人員可以根據(jù)系統(tǒng)的實(shí)際工作要求,在系統(tǒng)的工作速度與文件數(shù)據(jù)的一致性之間作出選擇。
為什么你需要從ext2遷移到ext3(EXT3的優(yōu)點(diǎn))
主要有四個(gè)原因:可用性、數(shù)據(jù)完整性、速度、易于遷移。
1、可用性
在非正常當(dāng)機(jī)后(停電、系統(tǒng)崩潰),只有在通過(guò)e2fsck進(jìn)行一致性校驗(yàn)后,ext2文件系統(tǒng)才能被裝載使用。運(yùn)行e2fsck的時(shí)間主要取決于 ext2文件系統(tǒng)的大小。校驗(yàn)稍大一些的文件系統(tǒng)(幾十GB)需要很長(zhǎng)時(shí)間。如果文件系統(tǒng)上的文件數(shù)量多,校驗(yàn)的時(shí)間則更長(zhǎng)。校驗(yàn)幾百個(gè)GB的文件系統(tǒng)可能需要一個(gè)小時(shí)或更長(zhǎng)。這極大地限制了可用性。相比之下,除非發(fā)生硬件故障,即使非正常關(guān)機(jī),ext3也不需要文件系統(tǒng)校驗(yàn)。這是因?yàn)閿?shù)據(jù)是以文件系統(tǒng)始終保持一致方式寫(xiě)入磁盤(pán)的。在非正常關(guān)機(jī)后,恢復(fù)ext3文件系統(tǒng)的時(shí)間不依賴于文件系統(tǒng)的大小或文件數(shù)量,而依賴于維護(hù)一致性所需“日志”的大小。使用缺省日志設(shè)置,恢復(fù)時(shí)間僅需一秒(依賴于硬件速度)。
2、數(shù)據(jù)完整性
使用ext3文件系統(tǒng),在非正常關(guān)機(jī)時(shí),數(shù)據(jù)完整性能得到可靠的保障。你可以選擇數(shù)據(jù)保護(hù)的類型和級(jí)別。你可以選擇保證文件系統(tǒng)一致,但是允許文件系統(tǒng)上的數(shù)據(jù)在非正常關(guān)機(jī)時(shí)受損;這是可以在某些狀況下提高一些速度(但非所有狀況)。你也可以選擇保持?jǐn)?shù)據(jù)的可靠性與文件系統(tǒng)一致;這意味著在當(dāng)機(jī)后,你不會(huì)在新近寫(xiě)入的文件中看到任何數(shù)據(jù)垃圾。這個(gè)保持?jǐn)?shù)據(jù)的可靠性與文件系統(tǒng)一致的安全的選擇是缺省設(shè)置。
3、速度
盡管ext3寫(xiě)入數(shù)據(jù)的次數(shù)多于ext2,但是ext3常常快于ext2(高數(shù)據(jù)流)。這是因?yàn)閑xt3的日志功能優(yōu)化硬盤(pán)磁頭的轉(zhuǎn)動(dòng)。你可以從3種日志模式中選擇1種來(lái)優(yōu)化速度,有選擇地犧牲一些數(shù)據(jù)完整性。
4、易于遷移
你可以不重新格式化硬盤(pán),并且很方便的從ext2遷移至ext3而享受可靠的日志文件系統(tǒng)的好處。對(duì),不需要做長(zhǎng)時(shí)間的、枯燥的、有可能失誤的“備份-重新格式化-恢復(fù)”操作,就可以體驗(yàn)ext3的優(yōu)點(diǎn)。
有兩種遷移的方法:如果你升級(jí)你的系統(tǒng),Red Hat Linux安裝程序會(huì)協(xié)助遷移。需要你做的工作 就是為每一個(gè)文件系統(tǒng)按一下選擇按鈕。
使用tune2fs程序可以為現(xiàn)存的ext2文件系統(tǒng)增加日志功能。如果文件系統(tǒng)在轉(zhuǎn)換的過(guò)程已經(jīng)被裝載了(mount),那么在root目錄下會(huì)出現(xiàn)文件”.journal”;如果文件系統(tǒng)沒(méi)有被裝載,那么文件系統(tǒng)中不會(huì)出現(xiàn)該文件。
轉(zhuǎn)換文件系統(tǒng),只需要運(yùn)行tune2fs –j /dev/hda1(或者你要轉(zhuǎn)換的文件系統(tǒng)所在的任何設(shè)備名稱),同時(shí)把文件/etc/fstab中的ext2修改為ext3。
如果你要轉(zhuǎn)換自己的根文件系統(tǒng),你必須使用initrd引導(dǎo)啟動(dòng)。參照mkinitrd的手冊(cè)描述運(yùn)行程序,同時(shí)確認(rèn)自己的LILO或GRUB配置中裝載了initrd(如果沒(méi)有成功,系統(tǒng)仍然能啟動(dòng),但是根文件系統(tǒng)會(huì)以ext2形式裝載,而不是ext3,你可以使用命令cat /proc/mounts 來(lái)確認(rèn)這一點(diǎn)。)
擴(kuò)展知識(shí):EXT3與EXT4的主要區(qū)別
Linux kernel自2.6.28開(kāi)始正式支持新的文件系統(tǒng) Ext4。 Ext4是Ext3的改進(jìn)版,修改了Ext3中部分重要的數(shù)據(jù)結(jié)構(gòu),而不僅僅像Ext3對(duì)Ext2那樣,只是增加了一個(gè)日志功能而已。Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能:
1.與Ext3兼容
執(zhí)行若干條命令,就能從Ext3在線遷移到Ext4,而無(wú)須重新格式化磁盤(pán)或重新安裝系統(tǒng)。原有Ext3數(shù)據(jù)結(jié)構(gòu)照樣保留,Ext4作用于新數(shù)據(jù),當(dāng)然,整個(gè)文件系統(tǒng)因此也就獲得了Ext4所支持的更大容量。
2.更大的文件系統(tǒng)和更大的文件
較之Ext3目前所支持的最大16TB文件系統(tǒng)和最大2TB文件,Ext4分別支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系統(tǒng),以及16TB 的文件。
3.無(wú)限數(shù)量的子目錄
Ext3目前只支持32,000個(gè)子目錄,而Ext4支持無(wú)限數(shù)量的子目錄。
4.Extents
Ext3采用間接塊映射,當(dāng)操作大文件時(shí),效率極其低下。比如一個(gè) 100MB 大小的文件,在Ext3中要建立25,600個(gè)數(shù)據(jù)塊(每個(gè)數(shù)據(jù)塊大小為 4KB)的映射表。而Ext4引入了現(xiàn)代文件系統(tǒng)中流行的extents概念,每個(gè) extent 為一組連續(xù)的數(shù)據(jù)塊,上述文件則表示為“該文件數(shù)據(jù)保存在接下來(lái)的25,600個(gè)數(shù)據(jù)塊中”,提高了不少效率。
5.多塊分配
當(dāng)寫(xiě)入數(shù)據(jù)到 Ext3 文件系統(tǒng)中時(shí),Ext3 的數(shù)據(jù)塊分配器每次只能分配一個(gè) 4KB 的塊,寫(xiě)一個(gè) 100MB 文件就要調(diào)用 25,600 次數(shù)據(jù)塊分配器,而 Ext4 的多塊分配器“multiblock allocator”(mballoc) 支持一次調(diào)用分配多個(gè)數(shù)據(jù)塊。
6.延遲分配
Ext3的數(shù)據(jù)塊分配策略是盡快分配,而 Ext4 和其它現(xiàn)代文件操作系統(tǒng)的策略是盡可能地延遲分配,直到文件在 cache 中寫(xiě)完才開(kāi)始分配數(shù)據(jù)塊并寫(xiě)入磁盤(pán),這樣就能優(yōu)化整個(gè)文件的數(shù)據(jù)塊分配,與前兩種特性搭配起來(lái)可以顯著提升性能。
7.快速 fsck
以前執(zhí)行 fsck 第一步就會(huì)很慢,因?yàn)樗獧z查所有的 inode,現(xiàn)在 Ext4 給每個(gè)組的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系統(tǒng)就可以跳過(guò)它們而只去檢查那些在用的 inode 了。
8.日志校驗(yàn)
日志是最常用的部分,也極易導(dǎo)致磁盤(pán)硬件故障,而從損壞的日志中恢復(fù)數(shù)據(jù)會(huì)導(dǎo)致更多的數(shù)據(jù)損壞。Ext4的日志校驗(yàn)功能可以很方便地判斷日志數(shù)據(jù)是否損壞,而且它將Ext3 的兩階段日志機(jī)制合并成一個(gè)階段,在增加安全性的同時(shí)提高了性能。
9.“無(wú)日志”(No Journaling)模式
日志總歸有一些開(kāi)銷,Ext4允許關(guān)閉日志,以便某些有特殊需求的用戶可以借此提升性能。
10.在線碎片整理
盡管延遲分配、多塊分配和extents能有效減少文件系統(tǒng)碎片,但碎片還是不可避免會(huì)產(chǎn)生。Ext4支持在線碎片整理,并將提供e4defrag工具進(jìn)行個(gè)別文件或整個(gè)文件系統(tǒng)的碎片整理。
11.inode 相關(guān)特性
Ext4支持更大的inode,較之Ext3默認(rèn)的inode大小128字節(jié),Ext4為了在 inode 中容納更多的擴(kuò)展屬性(如納秒時(shí)間戳或inode版本),默認(rèn)inode大小為256字節(jié)。Ext4 還支持快速擴(kuò)展屬性(fast extended attributes)和inode保留(inodes reservation)。
12.持久預(yù)分配(Persistent preallocation)
P2P軟件為了保證下載文件有足夠的空間存放,常常會(huì)預(yù)先創(chuàng)建一個(gè)與所下載文件大小相同的空文件,以免未來(lái)的數(shù)小時(shí)或數(shù)天之內(nèi)磁盤(pán)空間不足導(dǎo)致下載失敗。 Ext4在文件系統(tǒng)層面實(shí)現(xiàn)了持久預(yù)分配并提供相應(yīng)的API(libc 中的 posix_fallocate()),比應(yīng)用軟件自己實(shí)現(xiàn)更有效率。
13.默認(rèn)啟用 barrier
磁盤(pán)上配有內(nèi)部緩存,以便重新調(diào)整批量數(shù)據(jù)的寫(xiě)操作順序,優(yōu)化寫(xiě)入性能,因此文件系統(tǒng)必須在日志數(shù)據(jù)寫(xiě)入磁盤(pán)之后才能寫(xiě)commit記錄,若commit 記錄寫(xiě)入在先,而日志有可能損壞,那么就會(huì)影響數(shù)據(jù)完整性。Ext4默認(rèn)啟用barrier,只有當(dāng)barrier之前的數(shù)據(jù)全部寫(xiě)入磁盤(pán),才能寫(xiě)barrier之后的數(shù)據(jù)。(可通過(guò)“mount -o barrier=0″命令禁用該特性。)
相關(guān)推薦:《Linux視頻教程》
以上就是linux ext3是什么的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注其它相關(guān)文章!
版權(quán)聲明:
本站所有文章和圖片均來(lái)自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系網(wǎng)站客服處理。