IceFileSystem
By Leif SalomonssonDesign goals and priorities
64bit disk filesystem supporting a high number of useful features, by a design prioritised like following: 1. Reliability 2.Scalability 3.Efficiency 4.Speed
Features
- 64bit file/partition/extent sizes (actually very close to 2^63 bytes). No self imposed fragmentation of large files unless there is not enough contigious space available.
- All metadata on disk is checksummed. This means any errors on disk will be detected a lot quicker.
- Meta level jornalling. Journalling makes operations to disk atomic.
- Hardlinks (directory and file), softlinks, notification, examine all, record locking, file comments. Fully supported.
- Supports sector sizes from 2^9 to 2^31, atleast in theory. Filesystem layout on disk is not dependant on a specific underlying sector size. Filesystem may however place data on disk so that it is optimal for the sector size used.
- Supports blocksizes from 512 bytes to 32 KiB. Still works very well with small blocksizes though.
- Filesystem does not get slower for larger partitions (scales very well), or when heavily fragmented.
- No limit in # of files/dirs in partition/dirs.
- Handles removable media.
- Supports optional recycle dir.
- Supports automatically truncated log files and file change log.
- Wastes only 128k (and preallocates another 128k for meta space) for filesystem administration data, regardless of partition size.
- Dynamic handling of cache memory. Memory is given back (progressivly) to system when not used.
Technical
- Extent based space and file data layout.
- Main space allocator is based on the TLSF algorithm, adapted for on-disk storage.
- All metadata except extent headers are located in special extents called pools and use a local bitmap to keep track of free meta space. Metadata is very compact.
- Implementation uses two level caching (sector + metadata).
- Implementation supports preallocation to minimize fragmentation (and increase speed) when several files are concurrently written to.
- Originally was supposed to have a tree-like lookup mechanism for directory entries, but this was reverted to a simple hash table for the 2.x version because the implementation was not finnished.
Download
IceFileSystem and all its support tools for MorphOS can be downloaded right here, latest version is 2.12. (released 2014.04.26)
Tools included
- FSFormat - Generic formatting application (MUI)
- IceConfig - IceFS configuration application (MUI)
- IceInfo - Displays locks and notifys on IceFS volumes (MUI)
- IceCheck - Check integrity of on-disk layout (CLI)
- LogFileCtrl - Create and change size of logfiles (CLI)
- IceSalv - Simple file salvage tool (CLI)
- ShowLinks - Lists hard and soft links (CLI)
Links
IceDoctor
Ice2Layout.PDF
See also: Filesysbox
Contact
Leif Salomonsson, dev blubbedev net