自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ext4文件系統(tǒng)簡介:功能列表與遷移注意事項

運維 系統(tǒng)運維
ext4是Linux系統(tǒng)下的日志文件系統(tǒng),是ext3文件系統(tǒng)的后繼版本。ext4開發(fā)的原因是因為ext3在引入新功能的時候遇到了一些問題,而歷經(jīng)四年的開發(fā),ext4文件系統(tǒng)現(xiàn)在已經(jīng)準(zhǔn)備好成為主流的Linux文件系統(tǒng)之一了。本文介紹ext4的功能以及遷移的注意事項。

Linux 支持幾個不同的文件系統(tǒng)。這些文件系統(tǒng)中,一些是專用的網(wǎng)絡(luò)文件系統(tǒng)或為其他操作系統(tǒng)開發(fā)的文件系統(tǒng),但絕大部分還是用作 Linux 本地文件系統(tǒng) — 您可以將 Linux 根(/)和系統(tǒng)目錄放在這種文件系統(tǒng)里。目前(2008年),這一類文件系統(tǒng)包括 ext2、ext3、ReiserFS、XFS 和 Journaled File System (JFS)。但是文件系統(tǒng)一直在不斷設(shè)計和開發(fā)中,新的文件系統(tǒng)也將陸續(xù)問世。

目前正在開發(fā)的最重要的 Linux 文件系統(tǒng)是 ext4 — 它是專門為 Linux 開發(fā)的原始的擴展文件系統(tǒng)(ext 或 extfs)的第四版。由于繼承了以前版本,ext4 在不久的將來很可能會成為一個重要的 Linux 標(biāo)準(zhǔn)文件系統(tǒng)(51CTO編輯注:本文撰寫于2008年,當(dāng)時ext4尚處于試驗階段。截至到2010年6月,ext4目前已在多種發(fā)行版中被接受為默認文件系統(tǒng)之一,紅帽的RHEL 6也將采用ext4作為默認文件系統(tǒng),可以說ext4技術(shù)現(xiàn)在已經(jīng)成熟)。

Ext4 與 ext3 的對比

擴展文件系統(tǒng)(ext 或 extfs)第四版產(chǎn)生的原因是開發(fā)人員在 ext3 中并入了新的高級功能。但在實現(xiàn)的過程出現(xiàn)了幾個問題:

  • 一些新功能違背向后兼容性。
  • Ext3 代碼變得更加復(fù)雜并難以維護。
  • 這些更改使原本十分可靠的 ext3 變得不可靠。

由于這些原因,從 2006 年 6 月份開始,開發(fā)人員決定把 ext4 從 ext3 中分離出來進行獨立開發(fā)。Ext4 的開發(fā)工作從那時起開始進行,但大部分 Linux 用戶和管理員都不怎么注意這件事情。隨著 2.6.19 內(nèi)核在 2006 年 11 月的發(fā)布,ext4 ***次出現(xiàn)在主流內(nèi)核里,但是它當(dāng)時還處于試驗階段(現(xiàn)在還是),因此很多人都忽視了它。

由于還處于開發(fā)階段,從 2.6.24.4 內(nèi)核開始,ext4 的功能列表就一直在變動。 Ext4 的當(dāng)前和預(yù)期功能包括從 ext3 發(fā)展而來的功能,見下表:

◆大型文件系統(tǒng)

ext4文件系統(tǒng)可支持***1 Exbibyte的分區(qū)區(qū)與***16 Tebibyte的文件。

◆Extents

ext4引進了Extent文件存儲方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續(xù)物理block,這種方式可以增加大型文件的效率并減少分裂文件。ext4支持的單一Extent,在單一block為4KB的系統(tǒng)中***可達128MB[1]。單一inode中可存儲4筆Extent;超過四筆的Extent會以Htree方式被索引。

◆向下兼容

ext4向下兼容于ext3與ext2,因此可以將ext3和ext2的文件系統(tǒng)掛載為ext4分區(qū)區(qū)。由于某些ext4的新功能可以直接運用在ext3和ext2上,直接掛載即可提升少許效能。

ext3文件系統(tǒng)可以部分向上兼容于ext4(也就是說ext4文件系統(tǒng)可以被掛載為ext3分區(qū)區(qū))。然而若是使用到Extent技術(shù)的ext4將無法被掛載為ext3。

◆預(yù)留空間

ext4允許對一文件預(yù)先保留軟盤空間。目前大多數(shù)文件系統(tǒng)做到這點的方式是直接產(chǎn)生一個填滿0的文件;ext4和XFS可以使用Linux內(nèi)核中的一個新的系統(tǒng)調(diào)用“fallocate()”取得足夠的預(yù)留空間。

◆延遲取得空間

ext4使用一種稱為allocate-on-flush的方式,可以在數(shù)據(jù)將被寫入軟盤(sync)前才開始取得空間;大多數(shù)文件系統(tǒng)會在之前便取得需要的空間。這種方式可以增加效能并減少文件分散程度。

◆突破32000子目錄限制

ext3的一個目錄下最多只能有32000個子目錄。ext4的子目錄***可達64000,且使用“dir_nlink”功能后可以達到更高(雖然父目錄的link count會停止增加)。為了避免效能受到大量目錄的影響,ext4默認打開Htree(一種特殊的B-tree)索引功能。該功能已經(jīng)實現(xiàn)于Linux內(nèi)核2.6.23版。

◆日志校驗和

Ext4使用校驗和特性來提高文件系統(tǒng)可靠性,因為日志是磁盤上被讀取最頻繁的部分之一。這個特性還有一個好處就是可以安全地避免日志處理時磁盤I/O的等待,而稍微提高一些性能。日志校驗和的技術(shù)源于威斯康辛大學(xué)的一篇名為IRON File Systems的研究論文(見第六節(jié) transaction checksums校驗和處理)[5]

◆在線磁盤整理

對于在線磁盤整理工具有許多草案,但是這些草案都沒有被包含在主流的內(nèi)核當(dāng)中。即使Ext4包含有許多避免磁盤碎片的技術(shù),但是磁盤碎片還是難免會在一個長時間使用過的文件系統(tǒng)中存在。Ext4將會有一個具有磁盤整理功能的工具[來源請求].

◆快速文件系統(tǒng)檢查

Ext4將未使用的區(qū)塊標(biāo)記在inode當(dāng)中,這樣可以使諸如e2fsck之類的工具在磁盤檢查時將這些區(qū)塊完全跳過,而節(jié)約大量的文件系統(tǒng)檢查的時間。這個特性已經(jīng)在2.6.24版本的Linux內(nèi)核中實現(xiàn)。

(以上列表引用自維基百科)

功能列表的一些功能在實際使用中不具備與 ext3 的向后兼容性 — 即可能無法使用 ext3 文件系統(tǒng)類型的代碼掛載 ext4 文件系統(tǒng)。但是 ext4 保留了向前兼容性 — 您可以像掛載 ext4 文件系統(tǒng)一樣掛載 ext3 文件系統(tǒng)。

#p#

ext4 的使用對象

Ext4 最為顯著的改進是文件和文件系統(tǒng)的大小。因此,最可能需要 ext4 的用戶是那些磁盤空間大小為幾個 TB 的用戶。然而表 1 中的功能列表還展示了其他一些吸引人的改進。例如,如果您的目錄帶有大量子目錄,或者要求時間戳的精確度小于一秒,您可能希望嘗試使用 ext4。

從2.6.28版本開始,Linux Kernel開始正式支持新的文件系統(tǒng)EXT4。

把 ext3 遷移到 ext4

當(dāng)系統(tǒng)在 ext4 的支持下啟動到內(nèi)核時,您就可以使用新的文件系統(tǒng)了。為此,必須準(zhǔn)備一個分區(qū)、獨立磁盤的冗余陣列(RAID)設(shè)備或其他存儲空間。然后就可以把它用作 ext4 文件系統(tǒng)并調(diào)整文件系統(tǒng)選項。

準(zhǔn)備一個設(shè)備

如果希望從簡單的入手,可以使用新版或舊版的 e2fsprogs 包(即 mkfs.ext3 或 mkfs.ext4)附帶的工具格式化分區(qū)或其他設(shè)備。例如, mkfs.ext4 -j /dev/sda6 準(zhǔn)備了 /dev/sda6 分區(qū)以供使用。使用 mkfs.ext4 可以產(chǎn)生一個文件系統(tǒng),并激活了很多特定于 ext4 的功能。

目前,e2fsprogs 程序還沒有完全跟上內(nèi)核文件系統(tǒng)的步伐。幸運的是,大部分內(nèi)核驅(qū)動程序的功能都不需要對 mkfs.ext4 或其他實用程序進行特殊準(zhǔn)備。當(dāng)掛載文件系統(tǒng)時,將激活 ext4 功能。如果要在大媒體上使用 ext4, 就必須進行大膽的探索,確保記錄和報告所遇到的問題!

如果想把現(xiàn)有的 ext2 或 ext3 文件系統(tǒng)用作 ext4 文件系統(tǒng),也不難實現(xiàn)。只需要按照隨后描述的方法掛載設(shè)備即可。然而如果使用某些新的功能,如 extent,該文件系統(tǒng)就不能和 ext2 或 ext3 的驅(qū)動程序一起使用。

使用 ext4

要把一個設(shè)備用作 ext4 文件系統(tǒng),就必須使用 ext4dev 文件系統(tǒng)類型代碼掛載它(當(dāng) ext4 變得穩(wěn)定時,文件系統(tǒng)類型代碼將變?yōu)?ext4)。例如,mount -t ext4dev /dev/sda6 /mnt/point 在 /mnt/point 中把 /dev/sda6 掛載為 ext4 文件系統(tǒng)。這些都是 ext4 的基本用法。注意,默認的掛載選項啟用了 extent,這會導(dǎo)致文件系統(tǒng)在作為 ext3 文件系統(tǒng)使用時變得不可用。如果您想嘗試一下 ext4 同時可以返回到 ext3,則使用 -o noextents 選項禁用 extent 功能。

一旦掛載以后,可以像其他任何文件系統(tǒng)一樣使用 ext4:復(fù)制文件、直接創(chuàng)建文件等等。 除了遇到 bug 或執(zhí)行基準(zhǔn)測試以外,您不會覺察到任何差別。

調(diào)整 ext4 性能選項

可以使用 tune2fs 程序調(diào)優(yōu) ext4 文件系統(tǒng),與調(diào)優(yōu) ext2 或 ext3 文件系統(tǒng)的方式一樣。目前, tune2fs 不提供任何特定于 ext4 的選項,但是可以使用標(biāo)準(zhǔn)的 -O 參數(shù)設(shè)置 ext4 選項,例如 extent。

當(dāng)把文件系統(tǒng)掛載為 ext4 時,內(nèi)核開始使用特定于文件系統(tǒng)的功能,如 extent。這樣做的結(jié)果是不能再把文件系統(tǒng)掛載為 ext3 文件系統(tǒng),至少會變得非常困難。

盡管把 ext3 文件系統(tǒng)掛載為 ext4 能夠?qū)崿F(xiàn)特定于 ext4 的功能,掛載本身并不把舊數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為新的格式。例如,現(xiàn)有文件保持塊狀方式分配, 而不是使用 extent 進行分配。因此,舊文件沒有從新功能獲得好處。然而,ext4 的開發(fā)人員已經(jīng)考慮到這種情況并且提供了一種解決辦法:可以使用(正處于 試驗階段的)e4defrag 工具(隨后將介紹)轉(zhuǎn)換分配方式來利用 extent 功能。另一個新工具(尚不可用)將改變 inode 的大小,使它變?yōu)樾碌母袷健?/p>

維護 ext4 文件系統(tǒng)

可以使用標(biāo)準(zhǔn)的 e2fsprogs 工具來維護 ext4 文件系統(tǒng),例如使用 tune2fs 在創(chuàng)建文件系統(tǒng)之后調(diào)整選項,使用 fsck.ext4 執(zhí)行文件系統(tǒng)檢查等等。這些程序在 ext4 與 ext3 之間沒有很大的差別。但是,如前面提到的一樣,ext4 包含一些能夠提升 fsck 性能的增強功能。

除了這些工具以外,有一個新工具特別值得注意:e4defrag。該程序能夠?qū)σ褣燧d的 ext4 文件系統(tǒng)進行磁盤碎片整理。這能夠提高性能,尤其是文件系統(tǒng)空間快要用完的時候。同時,這也有利于將 ext2/3 樣式的分配轉(zhuǎn)換為基于 extent 的 ext4 樣式的分配,因此能夠提高曾經(jīng)作為 ext3 文件系統(tǒng)的文件系統(tǒng)的性能。不幸的是,e4defrag 還不是標(biāo)準(zhǔn)的 e2fsprogs 包的一部分,因此需要單獨下載。

【編輯推薦】

  1. 下一代Linux文件系統(tǒng)前瞻:是BTRFS還是ext4
  2. 當(dāng)心: Ext4 可能造成數(shù)據(jù)丟失
  3. 猞猁的選擇:升級Ubuntu 9.10選擇Ext3還是Ext4
責(zé)任編輯:yangsai 來源: IBMDW
相關(guān)推薦

2012-05-21 09:48:58

Ext4

2010-12-17 09:37:13

ext4文件系統(tǒng)

2010-12-28 09:51:06

ext4文件系統(tǒng)

2012-05-21 10:42:02

Ext4

2012-07-27 09:44:41

RISC

2012-05-08 10:56:15

Linux

2011-06-27 10:17:15

EXT4 Btrfs

2017-11-23 09:30:01

Linux文件系統(tǒng)sudo命令

2009-11-30 09:46:45

Ubuntu文件系統(tǒng)選擇

2018-09-12 15:48:35

ext4Linux文件系統(tǒng)

2025-03-28 09:44:17

2010-04-23 18:03:55

Aix 5.1

2018-02-05 09:18:46

主機服務(wù)器安全

2009-08-04 08:28:10

2009-10-27 12:47:29

linux Ext3文

2011-01-06 09:57:31

Linux Kerne

2017-07-12 12:29:54

2009-03-24 14:29:04

LinuxExt4數(shù)據(jù)丟失

2009-03-25 08:32:33

Windows Ser微軟操作系統(tǒng)

2012-09-20 09:32:23

Ubuntu 12.1文件系統(tǒng)Ubuntu
點贊
收藏

51CTO技術(shù)棧公眾號