From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sunil Mushran Subject: Re: 'Subset' Hard Links Date: Thu, 17 Sep 2009 18:31:10 -0700 Message-ID: <4AB2E2DE.2030800@oracle.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: linux-fsdevel@vger.kernel.org To: Micah Dombrowski Return-path: Received: from acsinet11.oracle.com ([141.146.126.233]:35735 "EHLO acsinet11.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751664AbZIRBbL (ORCPT ); Thu, 17 Sep 2009 21:31:11 -0400 In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Micah Dombrowski wrote: > I couldn't think of anywhere else to ask such a question, and google > is useless as I have no unique keywords. I am wondering if it is > possible with some/any filesystems to have multiple hard links to a > file, some of which only point to a subset of the file's data. > > Eg: > firstname -> all data bytes 1 to 10 > secondname -> bytes 3 to 10 > thirdname -> bytes 5 to 7 > > This would clearly require some interesting locking of the file WRT > writes, but it seems like it should be possible, and even easy for > read-only access. I deal with moderately large data files (50+GB), > and such a thing would be incredibly useful to me for pulling out > interesting bits of my data without having to make copies of the data > itself. > > A related method I was wishing existed would allow concatenation of > files simply by deleting all but one hard link, and changing the > remaining one to point to all of the original files' data as > fragments. This would be great, as 'cat'ing together six 10GB files > is pretty slow, and it seems silly to be copying all of that data > around when I only need one actual instance of the full data on disk, > and that instance already exists, albeit in a fragmented manner. > > Do any tools for doing this sort of thing exist? > btrfs should able to handle most of this. http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-unstable.git;a=commitdiff;h=c5c9cd4d1b827fe545ed2a945e91e3a6909f3886 However, note that file systems operate in terms of blocks. So the start offset would need to be block aligned.