From owner-freebsd-current@FreeBSD.ORG Thu Jan 5 00:22:40 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 97E2316A41F; Thu, 5 Jan 2006 00:22:40 +0000 (GMT) (envelope-from ivoras@fer.hr) Received: from geri.cc.fer.hr (geri.cc.fer.hr [161.53.72.121]) by mx1.FreeBSD.org (Postfix) with ESMTP id 939FD43D49; Thu, 5 Jan 2006 00:22:38 +0000 (GMT) (envelope-from ivoras@fer.hr) Received: from geri.cc.fer.hr (localhost.cc.fer.hr [127.0.0.1]) by geri.cc.fer.hr (8.13.4/8.13.1) with ESMTP id k050LVOT037299; Thu, 5 Jan 2006 01:21:31 +0100 (CET) (envelope-from ivoras@fer.hr) Received: from localhost (ivoras@localhost) by geri.cc.fer.hr (8.13.4/8.13.1/Submit) with ESMTP id k050LVdE037296; Thu, 5 Jan 2006 01:21:31 +0100 (CET) (envelope-from ivoras@fer.hr) X-Authentication-Warning: geri.cc.fer.hr: ivoras owned process doing -bs Date: Thu, 5 Jan 2006 01:21:31 +0100 (CET) From: Ivan Voras Sender: ivoras@geri.cc.fer.hr To: hackers@freebsd.org Message-ID: <20060105005633.H36895@geri.cc.fer.hr> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: current@freebsd.org Subject: A sort-of distributed filesystem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jan 2006 00:22:40 -0000 I've threatened several times to make a distributed filesystem (or something like it) using FUSE, so I found the time over the holiday and did it. http://ivoras.sharanet.org/stuff/tdfs-r0.tgz This is a FUSE (userland) filesystem that propagates write requests to a remote daemon, while implementing read (and fstat and the like) requests locally. In short, this implements single-writer-multiple-readers scenario, where on one machine the filesystem is both readable and writeable and on multiple others it's only readable. (Actually, it's also writeable there, but the changes are not propagated). It's not a complete new filesystem but acts on existing filesystems, like an overlay / stacked filesystem (it's completely independant of the underlying filesystem type, but it's not tested on msdosfs :) ). The idea is that this could be used for hot-backups, load balancing, etc. This is only a proof of concept implementation, undertested and possibly with several bugs (I noticed late that timestamps are not always correctly propagated but will look into it tomorrow). To make it faster and possibly more robust for general usage it would have to be reimplemented in kernel. It's developed and tested on FreeBSD 6-stable and is currently not very portable to other operating systems (except 7-current and up). FUSE libraries and kernel module are required for operation. Don't forget to load the fuse.ko module. More information is provided in the README file so read it before trying to use it. If anyone wants to contact me off-list, please use the address in the README file. -- Preserve wildlife -- pickle a squirrel today!