InterMezzo is a new distributed filesystem with a focus on high availability. InterMezzo will be suitable for replication of servers, mobile computing, managing system software on large clusters and for maintenance of high availability clusters.
For example, InterMezzo offers disconnected operation and automatic recovery from network outages. InterMezzo is an Open Source (GPL) project. InterMezzo entered the Linux kernel at version 2.4.15, but the latest code is at www.inter-mezzo.org.
Alan Cox says "InterMezzo is the perfect basis for building an environment where there is 'the company filesystem' and it is scalable enough to deliver that." (http://newsforge.com/article.pl?sid=01/11/07/1516223&mode=thread)
InterMezzo is currently a fast moving target, and is considered experimental. The actual kernel install is the easy part, as of kernel 2.4.15, its standard. Currently the non-kernel portion is a collection of 10 RPM files or 1 tarball with alot of hard to track down dependencies. The base install requires: Perl (5.60 for the RPM), ext3 support, including the latest mount utility, and the latest version of libext2.
Characteristics of Network Filesystems
NFS or SMB
- Centralized storage
- Single point of failure
- File level locking
- Redundant distributed filesystem
- Writes are journaled and propagated
- Disconnected operation
- Highly scalable
Laptop and server: While connected to the network the laptop acts as a typical network filesystem client. The user can then take the laptop home and make changes. When they show up for work the next day the changes will be automatically integrated back into the server.
Multiple file servers: File servers can be maintained at multiple locations with identical filesets. Changes made in location A are transparently sent to location B (C and D). If the network connection breaks between the two, users can continue in a disconnected state, unaware of the interruption of service.
Fault tolerant servers: Multiple file or web servers can use InterMezzo as a file store - changes to one will replicate to the others. If one server fails, clients will get a short (30-60 second) interruption of service and will then be connected to a redundant server (using heartbeat or a similar protocol). This is better than shared SCSI drives because it eliminates the possibility of failure of the shared RAID array causing downtime.
How it works
InterMezzo works with the journaling filesystem (currently ext3 only) to keep track of file changes and propagates them to other servers.
When you open a file, it becomes read-only to others. When you save changes, it propagates the change to all other servers. Propagation can be done using an internal utility or much more efficiently using rsync.