123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- Ext3 Filesystem
- ===============
- ext3 was originally released in September 1999. Written by Stephen Tweedie
- for 2.2 branch, and ported to 2.4 kernels by Peter Braam, Andreas Dilger,
- Andrew Morton, Alexander Viro, Ted Ts'o and Stephen Tweedie.
- ext3 is ext2 filesystem enhanced with journalling capabilities.
- Options
- =======
- When mounting an ext3 filesystem, the following option are accepted:
- (*) == default
- jounal=update Update the ext3 file system's journal to the
- current format.
- journal=inum When a journal already exists, this option is
- ignored. Otherwise, it specifies the number of
- the inode which will represent the ext3 file
- system's journal file.
- noload Don't load the journal on mounting.
- data=journal All data are committed into the journal prior
- to being written into the main file system.
- data=ordered (*) All data are forced directly out to the main file
- system prior to its metadata being committed to
- the journal.
- data=writeback Data ordering is not preserved, data may be
- written into the main file system after its
- metadata has been committed to the journal.
- commit=nrsec (*) Ext3 can be told to sync all its data and metadata
- every 'nrsec' seconds. The default value is 5 seconds.
- This means that if you lose your power, you will lose,
- as much, the latest 5 seconds of work (your filesystem
- will not be damaged though, thanks to journaling). This
- default value (or any low value) will hurt performance,
- but it's good for data-safety. Setting it to 0 will
- have the same effect than leaving the default 5 sec.
- Setting it to very large values will improve
- performance.
- barrier=1 This enables/disables barriers. barrier=0 disables it,
- barrier=1 enables it.
- orlov (*) This enables the new Orlov block allocator. It's enabled
- by default.
- oldalloc This disables the Orlov block allocator and enables the
- old block allocator. Orlov should have better performance,
- we'd like to get some feedback if it's the contrary for
- you.
- user_xattr (*) Enables POSIX Extended Attributes. It's enabled by
- default, however you need to confifure its support
- (CONFIG_EXT3_FS_XATTR). This is neccesary if you want
- to use POSIX Acces Control Lists support. You can visit
- http://acl.bestbits.at to know more about POSIX Extended
- attributes.
- nouser_xattr Disables POSIX Extended Attributes.
- acl (*) Enables POSIX Access Control Lists support. This is
- enabled by default, however you need to configure
- its support (CONFIG_EXT3_FS_POSIX_ACL). If you want
- to know more about ACLs visit http://acl.bestbits.at
- noacl This option disables POSIX Access Control List support.
- reservation
- noreservation
- resize=
- bsddf (*) Make 'df' act like BSD.
- minixdf Make 'df' act like Minix.
- check=none Don't do extra checking of bitmaps on mount.
- nocheck
- debug Extra debugging information is sent to syslog.
- errors=remount-ro(*) Remount the filesystem read-only on an error.
- errors=continue Keep going on a filesystem error.
- errors=panic Panic and halt the machine if an error occurs.
- grpid Give objects the same group ID as their creator.
- bsdgroups
- nogrpid (*) New objects have the group ID of their creator.
- sysvgroups
- resgid=n The group ID which may use the reserved blocks.
- resuid=n The user ID which may use the reserved blocks.
- sb=n Use alternate superblock at this location.
- quota Quota options are currently silently ignored.
- noquota (see fs/ext3/super.c, line 594)
- grpquota
- usrquota
- Specification
- =============
- ext3 shares all disk implementation with ext2 filesystem, and add
- transactions capabilities to ext2. Journaling is done by the
- Journaling block device layer.
- Journaling Block Device layer
- -----------------------------
- The Journaling Block Device layer (JBD) isn't ext3 specific. It was
- design to add journaling capabilities on a block device. The ext3
- filesystem code will inform the JBD of modifications it is performing
- (Call a transaction). the journal support the transactions start and
- stop, and in case of crash, the journal can replayed the transactions
- to put the partition on a consistent state fastly.
- handles represent a single atomic update to a filesystem. JBD can
- handle external journal on a block device.
- Data Mode
- ---------
- There's 3 different data modes:
- * writeback mode
- In data=writeback mode, ext3 does not journal data at all. This mode
- provides a similar level of journaling as XFS, JFS, and ReiserFS in its
- default mode - metadata journaling. A crash+recovery can cause
- incorrect data to appear in files which were written shortly before the
- crash. This mode will typically provide the best ext3 performance.
- * ordered mode
- In data=ordered mode, ext3 only officially journals metadata, but it
- logically groups metadata and data blocks into a single unit called a
- transaction. When it's time to write the new metadata out to disk, the
- associated data blocks are written first. In general, this mode
- perform slightly slower than writeback but significantly faster than
- journal mode.
- * journal mode
- data=journal mode provides full data and metadata journaling. All new
- data is written to the journal first, and then to its final location.
- In the event of a crash, the journal can be replayed, bringing both
- data and metadata into a consistent state. This mode is the slowest
- except when data needs to be read from and written to disk at the same
- time where it outperform all others mode.
- Compatibility
- -------------
- Ext2 partitions can be easily convert to ext3, with `tune2fs -j <dev>`.
- Ext3 is fully compatible with Ext2. Ext3 partitions can easily be
- mounted as Ext2.
- External Tools
- ==============
- see manual pages to know more.
- tune2fs: create a ext3 journal on a ext2 partition with the -j flags
- mke2fs: create a ext3 partition with the -j flags
- debugfs: ext2 and ext3 file system debugger
- References
- ==========
- kernel source: file:/usr/src/linux/fs/ext3
- file:/usr/src/linux/fs/jbd
- programs: http://e2fsprogs.sourceforge.net
- useful link:
- http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html
- http://www-106.ibm.com/developerworks/linux/library/l-fs7/
- http://www-106.ibm.com/developerworks/linux/library/l-fs8/
|