"I'm please to announce [the] POHMEL high performance network filesystem. POHMELFS stands for Parallel Optimized Host Message Exchange Layered File System," began Evgeniy Polyakov, explaining:
"This is a high performance network filesystem with local coherent cache of data and metadata. Its main goal is distributed parallel processing of data. Network filesystem is a client transport. POHMELFS protocol was proven to be superior to NFS in lots (if not all, then it is in a roadmap) operations."
This latest release prompted Jeff Garzik to reply, "this continues to be a neat and interesting project :)" New features include fast transactions, round-robin failover, and near-wire limit performance. This adds to existing features which include a local coherent data and metadata cache, async processing of most events, and a fast and scalable multi threaded user space server. Planned features include a server extension to allow mirroring data across multiple devices, strong authentication, and possible data encryption when transferring data over the network. Evgeniy linked to several benchmarks in his blog.
From: Evgeniy Polyakov To: <linux-kernel@...> Subject: POHMELFS high performance network filesystem. Transactions, failover, performance. Date: Tuesday, May 13, 2008 - 12:45 pm Hi. I'm please to announce POHMEL high performance network filesystem. POHMELFS stands for Parallel Optimized Host Message Exchange Layered File System. Development status can be tracked in filesystem section [1]. This is a high performance network filesystem with local coherent cache of data and metadata. Its main goal is distributed parallel processing of data. Network filesystem is a client transport. POHMELFS protocol was proven to be superior to NFS in lots (if not all, then it is in a roadmap) operations. This release brings following features: * Fast transactions. System will wrap all writings into transactions, which will be resent to different (or the same) server in case of failure. Details in notes [1]. * Failover. It is now possible to provide number of servers to be used in round-robin fasion when one of them dies. System will automatically reconnect to others and send transactions to them. * Performance. Super fast (close to wire limit) metadata operations over the network. By courtesy of writeback cache and transactions the whole kernel archive can be untarred by 2-3 seconds (including sync) over GigE link (wire limit! Not comparable to NFS). Basic POHMELFS features: * Local coherent (notes [5]) cache for data and metadata. * Completely async processing of all events (hard and symlinks are the only exceptions) including object creation and data reading. * Flexible object architecture optimized for network processing. Ability to create long pathes to object and remove arbitrary huge directoris in single network command. * High performance is one of the main design goals. * Very fast and scalable multithreaded userspace server. Being in userspace it works with any underlying filesystem and still is much faster than async ni-kernel NFS one. Roadmap includes: * Server extension to allow storing data on multiple devices (like creating mirroring), first by saving data in several local directories (think about server, which mounted remote dirs over POHMELFS or NFS, and local dirs). * Client/server extension to report lookup and readdir requests not only for local destination, but also to different addresses, so that reading/writing could be done from different nodes in parallel. * Strong authentification and possible data encryption in network channel. * Async writing of the data from receiving kernel thread into userspace pages via copy_to_user() (check development tracking blog for results). One can grab sources from archive or git [2] or check homepage [3]. Benchmark section can be found in the blog [4]. The nearest roadmap (scheduled or the end of the month) includes: * Full transaction support for all operations (only writeback is guarded by transactions currently, default network state just reconnects to the same server). * Data and metadata coherency extensions (in addition to existing commented object creation/removal messages). (next week) * Server redundancy. Thank you. 1. POHMELFS development status. http://tservice.net.ru/~s0mbre/blog/devel/fs/index.html 2. Source archive. http://tservice.net.ru/~s0mbre/archive/pohmelfs/ Git tree. http://tservice.net.ru/~s0mbre/archive/pohmelfs/pohmelfs.git/ 3. POHMELFS homepage. http://tservice.net.ru/~s0mbre/old/?section=projects&item=pohmelfs 4. POHMELFS vs NFS benchmark. http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_18.html http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_14.html http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_05_12.html 5. Cache-coherency notes. http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_21.html http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_22.html Signed-off-by: Evgeniy Polyakov fs/Kconfig | 2 + fs/Makefile | 1 + fs/pohmelfs/Kconfig | 6 + fs/pohmelfs/Makefile | 3 + fs/pohmelfs/config.c | 148 +++++ fs/pohmelfs/dir.c | 1009 ++++++++++++++++++++++++++++++ fs/pohmelfs/inode.c | 1543 ++++++++++++++++++++++++++++++++++++++++++++++ fs/pohmelfs/net.c | 800 ++++++++++++++++++++++++ fs/pohmelfs/netfs.h | 426 +++++++++++++ fs/pohmelfs/path_entry.c | 278 +++++++++ fs/pohmelfs/trans.c | 469 ++++++++++++++ 11 files changed, 4685 insertions(+), 0 deletions(-)
Linux
Does it run only on Linux? I mean, it's built on kernel space?
There is a Linux kernel
There is a Linux kernel client, which connects to multiple servers, which reside in userspace and thus can be ported to other OSes.
Protocol is rather simple, so one can create clients for different OSes.
DRUNK fs is cool
DRUNK fs is cool
what an intuitive name
POHMELFS: what an intuitive and easy to spell name for a filesystem ;)