Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Ext3
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Disadvantages== ===Functionality=== Because ext3 aims to be [[Backward compatibility|backward-compatible]] with the earlier ext2, many of the on-disk structures are similar to those of ext2. Consequently, ext3 lacks recent features, such as [[Extent (file systems)|extents]], dynamic allocation of [[inode]]s, and [[block sub-allocation]].<ref>{{cite web | url=http://ext2.sourceforge.net/2005-ols/paper-html/node18.html | title=Extents, Delayed Allocation | first=Rob | last=Radez | year=2005 | work=future of ext3 | access-date=2008-07-30 | archive-date=2008-07-08 | archive-url=https://web.archive.org/web/20080708205131/http://ext2.sourceforge.net/2005-ols/paper-html/node18.html | url-status=dead }}</ref> A directory can have at most 31998 ''subdirectories'', because an inode can have at most 32,000 links (each direct subdirectory increases their parent folder inode link counter in the ".." reference).<ref>Robert Nichols (2007-04-03) [http://linux.derkeiler.com/Newsgroups/comp.os.linux.misc/2007-04/msg00153.html Re: How many sub-directories ?] {{Webarchive|url=https://web.archive.org/web/20081006043647/http://linux.derkeiler.com/Newsgroups/comp.os.linux.misc/2007-04/msg00153.html |date=2008-10-06 }} linux.derkeiler.com</ref> On ext3, like for most current Linux filesystems, the system tool "[[fsck]]" should not be used while the filesystem is mounted for writing.<ref name=":0" /> Attempting to check a filesystem that is already mounted in read/write mode will (very likely) detect inconsistencies in the filesystem metadata. Where filesystem metadata is changing, and fsck applies changes in an attempt to bring the "inconsistent" metadata into a "consistent" state, the attempt to "fix" the inconsistencies will corrupt the filesystem. ===Defragmentation=== {{Update section|date=January 2020}} There is no online ext3 [[defragmentation]] tool that works on the filesystem level. There is an offline ext2 defragmenter, <code>e2defrag</code>. However, <code>e2defrag</code> may destroy data, depending on the feature bits turned on in the filesystem; it does not know how to handle many of the newer ext3 features.<ref>{{cite web|url=http://marc.info/?l=ext3-users&m=116231468911590&w=2|title=Post to the ext3-users mailing list|author=Andreas Dilger|work=ext3-users mailing list post}}</ref> There are userspace defragmentation tools, like Shake<ref>[http://vleu.net/shake/ Shake]. Vleu.net. Retrieved on 2013-06-22.</ref> and defrag.<ref>[http://ck.kolivas.org/apps/defrag/ Defrag written in shell]. Ck.kolivas.org (2012-08-19). Retrieved on 2013-06-22.</ref><ref>[http://bazaar.launchpad.net/~jdong/pyfragtools/trunk/files Defrag written in Python]. Bazaar.launchpad.net. Retrieved on 2013-06-22.</ref> Shake works by allocating space for the whole file as one operation, which will generally cause the allocator to find contiguous disk space. If there are files which are used at the same time, Shake will try to write them next to one another. Defrag works by copying each file over itself. However, this strategy works only if the file system has enough free space. A true defragmentation tool does not exist for ext3.<ref>[http://www.redhat.com/archives/ext3-users/2005-March/msg00013.html RE: searching for ext3 defrag/file move program]. Redhat.com (2005-03-04). Retrieved on 2013-06-22.</ref> However, as the Linux System Administrator Guide states, "Modern Linux filesystem(s) keep fragmentation at a minimum by keeping all blocks in a file close together, even if they can't be stored in consecutive sectors. Some filesystems, like ext3, effectively allocate the free block that is nearest to other blocks in a file. Therefore it is not necessary to worry about fragmentation in a Linux system."<ref>[http://www.tldp.org/LDP/sag/html/filesystems.html 5.10. Filesystems]. Tldp.org (2002-11-09). Retrieved on 2013-06-22.</ref> While ext3 is resistant to file fragmentation, ext3 can get fragmented over time or for specific usage patterns, like slowly writing large files.<ref>{{cite web|url=http://trac.transmissionbt.com/ticket/849 |quote=The default Ubuntu filesystem ("ext3") will fragment large (>1GB), slowly growing files (<1 MB/s)| title=#849 closed Enhancement (fixed) - preallocation to prevent fragmentation |work=trac.transmissionbt.com}}</ref><ref>{{cite web|quote=We found heavily fragmented free areas on an intensively used IMAP server which stores all its emails in individual files β although more than 900 GB of the total disk space of 1.4 TB were still available|url= http://www.heise-online.co.uk/open/Tuning-the-Linux-file-system-Ext3--/features/110398/3|date=27 October 2008|author=Oliver Diedrich|title=Tuning the Linux file system Ext3}}</ref> Consequently, ext4 (the successor to ext3) has an online filesystem defragmentation utility e4defrag<ref>[http://kernelnewbies.org/Ext4#head-38e6ac2b5f58f10989d72386e6f9cc2ef7217fb0 Ext4 β Linux Kernel Newbies]. Kernelnewbies.org (2011-05-19). Retrieved on 2013-06-22.</ref> and currently supports [[extent (file systems)|extents]] (contiguous file regions). ===Undelete=== ext3 does not support the recovery of deleted files. The ext3 driver actively deletes files by wiping file inodes<ref>[http://batleth.sapienti-sat.org/projects/FAQs/ext3-faq.html Linux ext3 FAQ]. Batleth.sapienti-sat.org. Retrieved on 2013-06-22.</ref> for crash safety reasons. There are still several techniques<ref>[http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html HOWTO recover deleted files on an ext3 file system] {{webarchive|url=https://web.archive.org/web/20100919000253/http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html |date=2010-09-19 }}. Xs4all.nl (2008-02-07). Retrieved on 2013-06-22.</ref> and some free<ref>[http://www.cgsecurity.org/wiki/PhotoRec PhotoRec β GPL'd File Recovery]. Cgsecurity.org. Retrieved on 2013-06-22.</ref> and proprietary<ref>[http://www.ufsexplorer.com/download_stdr.php UFS Explorer Standard Recovery version 4]. Ufsexplorer.com. Retrieved on 2013-06-22.</ref> software for recovery of deleted or lost files using file system journal analysis; however, they do not guarantee any specific file recovery. ===Compression=== e3compr<ref>[[SourceForge:projects/e3compr/|e3compr β ext3 compression]]. Sourceforge.net. Retrieved on 2013-06-22.</ref> is an [[unofficial patch]] for ext3 that does transparent [[data compression|compression]]. It is a direct port of e2compr and still needs further development. It compiles and boots well with upstream kernels{{Citation needed|date=December 2008}}, but journaling is not implemented yet. ===Lack of snapshots support=== Unlike a number of modern file systems, ext3 does not have native support for [[Snapshot (computer storage)|snapshots]], the ability to quickly capture the state of the filesystem at arbitrary times. Instead, it relies on less-space-efficient, volume-level snapshots provided by the Linux [[Logical Volume Manager (Linux)|LVM]]. The [[Next3]] file system is a modified version of ext3 which offers snapshots support, yet retains compatibility with the ext3 on-disk format.<ref name="next3">{{cite web|author=Jonathan Corbet|title=The Next3 filesystem|url=https://lwn.net/Articles/387231/|publisher=LWN}}</ref> ===No checksumming in journal=== ext3 does not do [[checksum]]ming when writing to the journal. On a storage device with extra cache, if ''barrier=1'' is not enabled as a mount option (in [[/etc/fstab]]), and if the hardware is doing out-of-order write caching, one runs the risk of severe filesystem corruption during a crash.<ref name="archives.free">[http://archives.free.net.ph/message/20070518.134838.52e26369.en.html Re: Frequent metadata corruption with ext3 + hard power-off] {{Webarchive|url=https://web.archive.org/web/20070928031902/http://archives.free.net.ph/message/20070518.134838.52e26369.en.html |date=2007-09-28 }}. Archives.free.net.ph. Retrieved on 2013-06-22.</ref><ref>[http://archives.free.net.ph/message/20070519.014256.ac3a2e07.en.html Re: Frequent metadata corruption with ext3 + hard power-off] {{Webarchive|url=https://web.archive.org/web/20070928031908/http://archives.free.net.ph/message/20070519.014256.ac3a2e07.en.html |date=2007-09-28 }}. Archives.free.net.ph. Retrieved on 2013-06-22.</ref><ref>Red Hat Enterprise Linux, [https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/writebarr.html ''Chapter 20. Write Barriers'']</ref> This is because storage devices with write caches report to the system that the data has been completely written, even if it was written to the (volatile) cache. If hard disk writes are done out-of-order (due to modern hard disks caching writes in order to [[amortized analysis|amortize]] write speeds), it is likely that one will write a commit block of a transaction before the other relevant blocks are written. If a power failure or unrecoverable crash should occur before the other blocks get written, the system will have to be rebooted. Upon reboot, the file system will replay the log as normal, and replay the "winners" (transactions with a commit block, including the invalid transaction above, which happened to be tagged with a valid commit block). The unfinished disk write above will thus proceed, but using corrupt journal data. The file system will thus mistakenly overwrite normal data with corrupt data while replaying the journal. If checksums had been used, where the blocks of the "fake winner" transaction were tagged with a mutual checksum, the file system could have known better and not replayed the corrupt data onto the disk. Journal checksumming has been added to ext4.<ref>[http://article.gmane.org/gmane.linux.file-systems/21373 ext4: Add the journal checksum feature]. Article.gmane.org (2008-02-26). Retrieved on 2013-06-22.</ref> Filesystems going through the device mapper interface (including software [[RAID]] and LVM implementations) may not support barriers, and will issue a warning if that mount option is used.<ref>[http://oss.sgi.com/archives/xfs/2007-12/msg00080.html Re: write barrier over device mapper supported or not?] {{Webarchive|url=https://web.archive.org/web/20090504120507/http://oss.sgi.com/archives/xfs/2007-12/msg00080.html |date=2009-05-04 }}. Oss.sgi.com. Retrieved on 2013-06-22.</ref><ref>[http://madduck.net/blog/2006.08.11:xfs-zeroes/ XFS and zeroed files] {{Webarchive|url=https://web.archive.org/web/20080430221349/http://madduck.net/blog/2006.08.11:xfs-zeroes/ |date=2008-04-30 }}. Madduck.net (2008-07-11). Retrieved on 2013-06-22.</ref> There are also some disks that do not properly implement the write cache flushing extension necessary for barriers to work, which causes a similar warning.<ref>[https://web.archive.org/web/20110727154012/http://forums.opensuse.org/archives/sls-archives/suse-linux/desktop-environments/379681-barrier-sync.html Barrier Sync]. forums.opensuse.org (March 2007)</ref> In these situations, where barriers are not supported or practical, reliable write ordering is possible by turning off the disk's write cache and using the {{code|1=data=journal}} mount option.<ref name="archives.free" /> Turning off the disk's write cache may be required even when barriers are available. Applications like databases expect a call to [[sync (Unix)|fsync()]] to flush pending writes to disk, and the barrier implementation doesn't always clear the drive's write cache in response to that call.<ref>[http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg272253.html Re: Proposal for "proper" durable fsync() and fdatasync()]. Mail-archive.com (2008-02-26). Retrieved on 2013-06-22.</ref> There is also a potential issue with the barrier implementation related to error handling during events, such as a drive failure.<ref>[http://www.mjmwired.net/kernel/Documentation/block/barrier.txt I/O Barriers, as of kernel version 2.6.31]. Mjmwired.net. Retrieved on 2013-06-22.</ref> It is also known that sometimes some [[virtualization]] technologies do not properly forward fsync or flush commands to the underlying devices (files, volumes, disk) from a guest operating system.<ref>[http://www.mysqlperformanceblog.com/2011/03/21/virtualization-and-io-modes-extra-complexity/ Virtualization and IO Modes = Extra Complexity]. Mysqlperformanceblog.com (2011-03-21). Retrieved on 2013-06-22.</ref> Similarly, some hard disks or controllers implement cache flushing incorrectly or not at all, but still advertise that it is supported, and do not return any error when it is used.<ref>[http://www.mysqlperformanceblog.com/2009/03/02/ssd-xfs-lvm-fsync-write-cache-barrier-and-lost-transactions/ SSD, XFS, LVM, fsync, write cache, barrier and lost transactions]. Mysqlperformanceblog.com (2009-03-02). Retrieved on 2013-06-22.</ref> There are so many ways to handle fsync and write cache handling incorrectly, it is safer to assume that cache flushing does not work unless it is explicitly tested, regardless of how reliable individual components are believed to be. ===Near-time extinction due to date-stamp limitation=== Ext3 stores dates as [[Unix time]] using four bytes in the file header. 32 bits does not give enough scope to continue processing files beyond January 18, 2038 - the [[Year 2038 problem]].<ref>{{Cite web |last=Clark |first=Libby |title=10 Highlights of Jon Corbet's Linux Kernel Report |date=19 February 2015 |url=https://www.linux.com/blog/10-highlights-jon-corbets-linux-kernel-report |access-date=2019-01-26}}{{cbignore|bot=medic}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)