InterMezzo (file system)
Encyclopedia
InterMezzo is an obsolete distributed file system
written for Linux
, distributed under the GPL
. The kernel component is not included in the current 2.6 kernel. It was included in the standard Linux kernel from kernel version 2.4.15 but was dropped from the 2.6 kernel. InterMezzo is designed to work on top of an existing journaling file system
such as ext3
, JFS, ReiserFS
and XFS
.
An InterMezzo system consists of a server, which holds the master copy of the file system, and one or more clients with a cache of the file system. It works either in a replication mode, in which a client maintains a duplicate of the entire file system, or in an on-demand mode in which the client only requests files that it needs. It does this by capturing all writes to the server's file system journal and streaming them to the client systems to be replayed.
It is described as a "high availability file system" since a client can continue to operate even if the connection to the server is lost. During a period of disconnection, updates are logged and will be propagated when the connection is restored. Conflicts are detected and handled according to a "conflict resolution policy" (although the best policy is likely to be to avoid conflicts).
Typical applications of replication mode are:
Typical applications of on-demand mode are:
InterMezzo was started as part of the Coda
file system project at Carnegie Mellon University
and takes many design decisions from Coda. It was designed for enhanced scalability, performance, modularity, and easy integration with existing file systems.
Although it was supported in the standard Linux kernel in version 2.4, it was removed in the 2.6 series. It is apparently no longer under development, and its developers have moved on to a new project named Lustre
.
Distributed file system
Network file system may refer to:* A distributed file system, which is accessed over a computer network* Network File System , a specific brand of distributed file system...
written for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, distributed under the GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. The kernel component is not included in the current 2.6 kernel. It was included in the standard Linux kernel from kernel version 2.4.15 but was dropped from the 2.6 kernel. InterMezzo is designed to work on top of an existing journaling file system
Journaling file system
A journaling file system is a file system that keeps track of the changes that will be made in a journal before committing them to the main file system...
such as ext3
Ext3
The ext3 or third extended filesystem is a journaled file system that is commonly used by the Linux kernel. It is the default file system for many popular Linux distributions, including Debian...
, JFS, ReiserFS
ReiserFS
ReiserFS is a general-purpose, journaled computer file system designed and implemented by a team at Namesys led by Hans Reiser. ReiserFS is currently supported on Linux . Introduced in version 2.4.1 of the Linux kernel, it was the first journaling file system to be included in the standard kernel...
and XFS
XFS
XFS is a high-performance journaling file system created by Silicon Graphics, Inc. It is the default file system in IRIX releases 5.3 and onwards and later ported to the Linux kernel. XFS is particularly proficient at parallel IO due to its allocation group based design...
.
An InterMezzo system consists of a server, which holds the master copy of the file system, and one or more clients with a cache of the file system. It works either in a replication mode, in which a client maintains a duplicate of the entire file system, or in an on-demand mode in which the client only requests files that it needs. It does this by capturing all writes to the server's file system journal and streaming them to the client systems to be replayed.
It is described as a "high availability file system" since a client can continue to operate even if the connection to the server is lost. During a period of disconnection, updates are logged and will be propagated when the connection is restored. Conflicts are detected and handled according to a "conflict resolution policy" (although the best policy is likely to be to avoid conflicts).
Typical applications of replication mode are:
- A cluster of servers operating on a shared file system.
- Computers that are not always connected to the network, such as laptops.
Typical applications of on-demand mode are:
- Distributed file serving, e.g., FTPFile Transfer ProtocolFile Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...
or WWW servers could be mirrored in a remote location without needing to propagate files that are never accessed. - Desktop workstations.
InterMezzo was started as part of the Coda
Coda (file system)
Coda is a distributed file system developed as a research project at Carnegie Mellon University since 1987 under the direction of Mahadev Satyanarayanan. It descended directly from an older version of AFS and offers many similar features. The InterMezzo file system was inspired by Coda...
file system project at Carnegie Mellon University
Carnegie Mellon University
Carnegie Mellon University is a private research university in Pittsburgh, Pennsylvania, United States....
and takes many design decisions from Coda. It was designed for enhanced scalability, performance, modularity, and easy integration with existing file systems.
Although it was supported in the standard Linux kernel in version 2.4, it was removed in the 2.6 series. It is apparently no longer under development, and its developers have moved on to a new project named Lustre
Lustre (file system)
Lustre is a massively parallel distributed file system, generally used for large scale cluster computing. The name Lustre is a portmanteau word derived from Linux and cluster...
.
See also
- UnisonUnison (file synchronizer)Unison is a file synchronization program. It is used for synchronizing files between two directories, either on one computer, or between a computer and another storage device Unison is a file synchronization program. It is used for synchronizing files between two directories, either on one...
(a file synchronizationFile synchronizationFile synchronization in computing is the process of ensuring that computer files in two or more locations are updated via certain rules....
program). - rsyncRsyncrsync is a software application and network protocol for Unix-like and Windows systems which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate. An important feature of rsync not found in most similar...
- CodaCoda (file system)Coda is a distributed file system developed as a research project at Carnegie Mellon University since 1987 under the direction of Mahadev Satyanarayanan. It descended directly from an older version of AFS and offers many similar features. The InterMezzo file system was inspired by Coda...
External links
- Archive of the InterMezzo home page
- Using the InterMezzo Distributed Filesystem, Bill von Hagen, LinuxPlanet, August 12, 2002.
- Debian Bug report logs on InterMezzo, mentioning Lustre.